<SEC-DOCUMENT>0001537435-25-000018.txt : 20250318
<SEC-HEADER>0001537435-25-000018.hdr.sgml : 20250318
<ACCEPTANCE-DATETIME>20250318122307
ACCESSION NUMBER:		0001537435-25-000018
CONFORMED SUBMISSION TYPE:	10-K
PUBLIC DOCUMENT COUNT:		103
CONFORMED PERIOD OF REPORT:	20241231
FILED AS OF DATE:		20250318
DATE AS OF CHANGE:		20250318

FILER:

	COMPANY DATA:	
		COMPANY CONFORMED NAME:			TECOGEN INC.
		CENTRAL INDEX KEY:			0001537435
		STANDARD INDUSTRIAL CLASSIFICATION:	AIR COND & WARM AIR HEATING EQUIP & COMM & INDL REFRIG EQUIP [3585]
		ORGANIZATION NAME:           	06 Technology
		IRS NUMBER:				043536131
		STATE OF INCORPORATION:			DE
		FISCAL YEAR END:			1231

	FILING VALUES:
		FORM TYPE:		10-K
		SEC ACT:		1934 Act
		SEC FILE NUMBER:	001-36103
		FILM NUMBER:		25747119

	BUSINESS ADDRESS:	
		STREET 1:		45 FIRST AVENUE
		CITY:			WALTHAM
		STATE:			MA
		ZIP:			02451
		BUSINESS PHONE:		781-466-6400

	MAIL ADDRESS:	
		STREET 1:		45 FIRST AVENUE
		CITY:			WALTHAM
		STATE:			MA
		ZIP:			02451

	FORMER COMPANY:	
		FORMER CONFORMED NAME:	TECOGEN INC
		DATE OF NAME CHANGE:	20111215
</SEC-HEADER>
<DOCUMENT>
<TYPE>10-K
<SEQUENCE>1
<FILENAME>tgen-20241231.htm
<DESCRIPTION>10-K
<TEXT>
<XBRL>
<?xml version='1.0' encoding='ASCII'?>
<!--XBRL Document Created with the Workiva Platform-->
<!--Copyright 2025 Workiva-->
<!--r:27a45c8e-ccb7-4ee0-baf8-e027f6202253,g:a67c4460-f12d-456b-86fe-b4f9ec620b6c,d:c4bfd2faeedf4470adc28b9f3bba3b4c-->
<html xmlns:cyd="http://xbrl.sec.gov/cyd/2024" xmlns:ixt-sec="http://www.sec.gov/inlineXBRL/transformation/2015-08-31" xmlns:srt="http://fasb.org/srt/2024" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:utr="http://www.xbrl.org/2009/utr" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dei="http://xbrl.sec.gov/dei/2024" xmlns:ecd="http://xbrl.sec.gov/ecd/2024" xmlns:xbrldi="http://xbrl.org/2006/xbrldi" xmlns:ixt="http://www.xbrl.org/inlineXBRL/transformation/2020-02-12" xmlns:ix="http://www.xbrl.org/2013/inlineXBRL" xmlns:xbrli="http://www.xbrl.org/2003/instance" xmlns:iso4217="http://www.xbrl.org/2003/iso4217" xmlns:tgen="http://www.tecogen.com/20241231" xmlns="http://www.w3.org/1999/xhtml" xmlns:us-gaap="http://fasb.org/us-gaap/2024" xmlns:link="http://www.xbrl.org/2003/linkbase" xml:lang="en-US"><head><meta http-equiv="Content-Type" content="text/html"/>


<title>tgen-20241231</title></head><body><div style="display:none"><ix:header><ix:hidden><ix:nonNumeric contextRef="c-1" name="dei:EntityCentralIndexKey" id="f-30">0001537435</ix:nonNumeric><ix:nonNumeric contextRef="c-1" name="dei:DocumentFiscalYearFocus" id="f-31">2024</ix:nonNumeric><ix:nonNumeric contextRef="c-1" name="dei:DocumentFiscalPeriodFocus" id="f-32">FY</ix:nonNumeric><ix:nonNumeric contextRef="c-1" name="dei:AmendmentFlag" id="f-33">false</ix:nonNumeric><ix:nonNumeric contextRef="c-36" name="us-gaap:PropertyPlantAndEquipmentUsefulLife" id="f-343">P3Y</ix:nonNumeric><ix:nonNumeric contextRef="c-54" name="us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" id="f-397">P1Y</ix:nonNumeric><ix:nonNumeric contextRef="c-55" name="us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" id="f-398">P2Y</ix:nonNumeric><ix:nonNumeric contextRef="c-92" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="f-585">P1Y</ix:nonNumeric><ix:nonNumeric contextRef="c-166" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" id="f-831">P4Y</ix:nonNumeric><ix:nonNumeric contextRef="c-168" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" id="f-838">P2Y</ix:nonNumeric></ix:hidden><ix:references xml:lang="en-US"><link:schemaRef xlink:type="simple" xlink:href="tgen-20241231.xsd"/></ix:references><ix:resources><xbrli:unit id="usd"><xbrli:measure>iso4217:USD</xbrli:measure></xbrli:unit><xbrli:unit id="shares"><xbrli:measure>xbrli:shares</xbrli:measure></xbrli:unit><xbrli:unit id="usdPerShare"><xbrli:divide><xbrli:unitNumerator><xbrli:measure>iso4217:USD</xbrli:measure></xbrli:unitNumerator><xbrli:unitDenominator><xbrli:measure>xbrli:shares</xbrli:measure></xbrli:unitDenominator></xbrli:divide></xbrli:unit><xbrli:unit id="segment"><xbrli:measure>tgen:segment</xbrli:measure></xbrli:unit><xbrli:unit id="number"><xbrli:measure>xbrli:pure</xbrli:measure></xbrli:unit><xbrli:unit id="cogenerationsystem"><xbrli:measure>tgen:cogenerationSystem</xbrli:measure></xbrli:unit><xbrli:unit id="vehicle"><xbrli:measure>tgen:vehicle</xbrli:measure></xbrli:unit><xbrli:unit id="employee"><xbrli:measure>tgen:employee</xbrli:measure></xbrli:unit><xbrli:unit id="maintenancecontract"><xbrli:measure>tgen:maintenanceContract</xbrli:measure></xbrli:unit><xbrli:unit id="cogenerationunit"><xbrli:measure>tgen:cogenerationUnit</xbrli:measure></xbrli:unit><xbrli:unit id="cad"><xbrli:measure>iso4217:CAD</xbrli:measure></xbrli:unit><xbrli:unit id="leaseagreement"><xbrli:measure>tgen:leaseAgreement</xbrli:measure></xbrli:unit><xbrli:unit id="building"><xbrli:measure>tgen:building</xbrli:measure></xbrli:unit><xbrli:unit id="sqft"><xbrli:measure>utr:sqft</xbrli:measure></xbrli:unit><xbrli:unit id="option"><xbrli:measure>tgen:option</xbrli:measure></xbrli:unit><xbrli:unit id="company"><xbrli:measure>tgen:company</xbrli:measure></xbrli:unit><xbrli:context id="c-1"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-2"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2024-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-3"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2025-03-18</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-4"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2024-10-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-5"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-6"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-7"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-8"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-9"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ServiceMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-10"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ServiceMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-11"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:EnergyServiceMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-12"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:EnergyServiceMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-13"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-14"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-15"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-16"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-17"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:NoncontrollingInterestMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-18"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-19"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:NoncontrollingInterestMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-20"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-21"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-22"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-23"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-24"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-25"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:NoncontrollingInterestMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-26"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-27"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-28"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:NoncontrollingInterestMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-29"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-30"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-31"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-32"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-33"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:NoncontrollingInterestMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-34"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">tgen:OneCustomerMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:AccountsReceivableMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-35"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">tgen:OneCustomerMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:AccountsReceivableMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-36"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-37"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-38"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:GeneralAndAdministrativeExpenseMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-39"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:GeneralAndAdministrativeExpenseMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-40"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tgen:CogenerationMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tgen:ProductsSegmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-41"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tgen:CogenerationMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tgen:ProductsSegmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-42"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tgen:ChillerMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tgen:ProductsSegmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-43"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tgen:ChillerMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tgen:ProductsSegmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-44"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tgen:EngineeredAccessoriesMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tgen:ProductsSegmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-45"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tgen:EngineeredAccessoriesMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tgen:ProductsSegmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-46"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tgen:ProductsSegmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-47"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tgen:ProductsSegmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-48"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tgen:InstallationServicesMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tgen:ServicesSegmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-49"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tgen:InstallationServicesMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tgen:ServicesSegmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-50"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tgen:EnergyProductionMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tgen:ServicesSegmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-51"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tgen:EnergyProductionMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tgen:ServicesSegmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-52"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tgen:ServicesSegmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-53"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tgen:ServicesSegmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-54"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:typedMember dimension="us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis"><us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain>2025-01-01</us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain></xbrldi:typedMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-55"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:typedMember dimension="us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis"><us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain>2026-01-01</us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain></xbrldi:typedMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-56"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-57"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-58"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">tgen:AmericanDgEnergyMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2017-05-18</xbrli:startDate><xbrli:endDate>2017-05-18</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-59"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">tgen:AmericanDgEnergyMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2017-05-18</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-60"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AssetAcquisitionAxis">tgen:AegisEnergyServicesLLCMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-04-01</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-61"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AssetAcquisitionAxis">tgen:AegisEnergyServicesLLCMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-04-01</xbrli:startDate><xbrli:endDate>2023-04-01</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-62"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AssetAcquisitionAxis">tgen:AegisEnergyServicesLLCMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-02-01</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-63"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AssetAcquisitionAxis">tgen:AegisEnergyServicesLLCMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-05-01</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-64"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AssetAcquisitionAxis">tgen:AegisEnergyServicesLLCMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2024-02-01</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-65"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AssetAcquisitionAxis">tgen:AegisEnergyServicesLLCMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-05-01</xbrli:startDate><xbrli:endDate>2024-05-01</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-66"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AssetAcquisitionAxis">tgen:AegisEnergyServicesLLCMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-04-01</xbrli:startDate><xbrli:endDate>2024-05-01</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-67"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AssetAcquisitionAxis">tgen:AegisEnergyServicesLLCMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-68"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AssetAcquisitionAxis">tgen:AegisEnergyServicesLLCMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-69"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:MeasurementInputTypeAxis">us-gaap:MeasurementInputDiscountRateMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:AssetAcquisitionAxis">tgen:AegisEnergyServicesLLCMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-04-01</xbrli:startDate><xbrli:endDate>2023-04-01</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-70"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:AssetAcquisitionAxis">tgen:AegisEnergyServicesLLCMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-04-01</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-71"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:AssetAcquisitionAxis">tgen:AegisEnergyServicesLLCMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-04-01</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-72"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AssetAcquisitionAxis">tgen:AegisEnergyServicesLLCMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-73"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2019-01-01</xbrli:startDate><xbrli:endDate>2019-03-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-74"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:PatentsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-75"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:PatentsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-76"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">tgen:ProductCertificationMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-77"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">tgen:ProductCertificationMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-78"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:PatentsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-79"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:PatentsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-80"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:DevelopedTechnologyRightsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-81"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:DevelopedTechnologyRightsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-82"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IndefiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TrademarksMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-83"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IndefiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TrademarksMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-84"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IndefiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:InProcessResearchAndDevelopmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-85"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IndefiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:InProcessResearchAndDevelopmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-86"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">tgen:FavorableContractAssetMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-87"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">tgen:FavorableContractAssetMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-88"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerContractsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-89"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerContractsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-90"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="tgen:FiniteLivedIntangibleLiabilityAxis">tgen:UnfavorableContractLiabilityMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-91"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="tgen:FiniteLivedIntangibleLiabilityAxis">tgen:UnfavorableContractLiabilityMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-92"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:ContractBasedIntangibleAssetsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-93"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:ContractBasedIntangibleAssetsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-94"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">tgen:NonContractRelatedIntangibleAssetsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-95"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:ContractBasedIntangibleAssetsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-96"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:EnergyEquipmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-97"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:EnergyEquipmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-98"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:EnergyEquipmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-99"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:EnergyEquipmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-100"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:MachineryAndEquipmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-101"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:MachineryAndEquipmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-102"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:MachineryAndEquipmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-103"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:MachineryAndEquipmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-104"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:FurnitureAndFixturesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-105"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:FurnitureAndFixturesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-106"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:ComputerSoftwareIntangibleAssetMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-107"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:ComputerSoftwareIntangibleAssetMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-108"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:ComputerSoftwareIntangibleAssetMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-109"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:ComputerSoftwareIntangibleAssetMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-110"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:LeaseholdImprovementsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-111"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:LeaseholdImprovementsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-112"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RestatementAxis">srt:RestatementAdjustmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-113"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tgen:ProductsSegmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-114"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tgen:ServicesSegmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-115"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tgen:EnergyProductionMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-116"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tgen:EnergyProductionMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-117"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tgen:ProductsSegmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-118"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tgen:ServicesSegmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-119"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tgen:EnergyProductionMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-120"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tgen:EnergyProductionMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-121"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tgen:ProductsSegmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-122"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tgen:ServicesSegmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-123"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tgen:EnergyProductionMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-124"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">us-gaap:RelatedPartyMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">tgen:JohnN.HatsopoulosAndEarlR.LewisIIIMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-10-09</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-125"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">us-gaap:RelatedPartyMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">tgen:EarlR.LewisIIIMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-10-09</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-126"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">us-gaap:RelatedPartyMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">tgen:EarlR.LewisIIIMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-10-10</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-127"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">srt:DirectorMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionAxis">tgen:October2023PromissoryNoteMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-10-10</xbrli:startDate><xbrli:endDate>2023-10-10</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-128"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">srt:DirectorMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionAxis">tgen:July2024PromissoryNoteMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-07-23</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-129"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">srt:DirectorMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionAxis">tgen:July2024PromissoryNoteMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-07-23</xbrli:startDate><xbrli:endDate>2024-07-23</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-130"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">us-gaap:RelatedPartyMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionAxis">tgen:July2024PromissoryNoteMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-07-23</xbrli:startDate><xbrli:endDate>2024-07-23</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-131"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">srt:DirectorMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionAxis">tgen:October2023PromissoryNoteMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-03-21</xbrli:startDate><xbrli:endDate>2024-03-21</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-132"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">srt:DirectorMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionAxis">tgen:September2024PromissoryNoteMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-09-18</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-133"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">srt:DirectorMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionAxis">tgen:September2024PromissoryNoteMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-09-18</xbrli:startDate><xbrli:endDate>2024-09-18</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-134"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">srt:DirectorMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:SubsequentEventTypeAxis">us-gaap:SubsequentEventMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionAxis">tgen:AverageClosingSharePriceMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-01-14</xbrli:startDate><xbrli:endDate>2025-01-14</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-135"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">srt:DirectorMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:SubsequentEventTypeAxis">us-gaap:SubsequentEventMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionAxis">tgen:AverageClosingSharePriceMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-02-18</xbrli:startDate><xbrli:endDate>2025-02-18</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-136"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">srt:DirectorMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">tgen:JohnN.HatsopoulosMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-137"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">srt:DirectorMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">tgen:EarlR.LewisIIIMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-138"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">tgen:OfficeSpaceAndWarehouseFacilitiesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-139"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">tgen:OfficeSpaceAndWarehouseFacilitiesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-140"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:LitigationCaseAxis">tgen:TheCorporationOfTheTownOfMiltonMiltonEnergyGenerationSolutionsInc.AndMiltonHydroDistributionIncMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-11-23</xbrli:startDate><xbrli:endDate>2022-11-23</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-141"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:LitigationCaseAxis">tgen:TheCorporationOfTheTownOfMiltonMiltonEnergyGenerationSolutionsInc.AndMiltonHydroDistributionIncMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-142"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:LitigationCaseAxis">tgen:TheCorporationOfTheTownOfMiltonMiltonEnergyGenerationSolutionsInc.AndMiltonHydroDistributionIncMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:SubsequentEventTypeAxis">us-gaap:SubsequentEventMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-01-13</xbrli:startDate><xbrli:endDate>2025-01-13</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-143"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:LitigationCaseAxis">tgen:TheCorporationOfTheTownOfMiltonMiltonEnergyGenerationSolutionsInc.AndMiltonHydroDistributionIncMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:SubsequentEventTypeAxis">us-gaap:SubsequentEventMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-02-07</xbrli:startDate><xbrli:endDate>2025-02-07</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-144"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2020-07-09</xbrli:startDate><xbrli:endDate>2020-07-09</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-145"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2023-03-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-146"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-01-01</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-147"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-01-01</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-148"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-01-01</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-149"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2024-01-01</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-150"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2024-02-01</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-151"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2024-02-01</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-152"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2024-06-17</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-153"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:SubsequentEventTypeAxis">us-gaap:SubsequentEventMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-01-15</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-154"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:SubsequentEventTypeAxis">us-gaap:SubsequentEventMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-01-15</xbrli:startDate><xbrli:endDate>2025-01-15</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-155"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:VehiclesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-156"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:VehiclesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-157"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">tgen:BoilerMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-158"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">tgen:BoilerMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-159"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2013-02-13</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-160"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tgen:AmendnedStockOptionAndIncentivePlan2006Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">srt:ParentCompanyMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-161"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tgen:AmendnedStockOptionAndIncentivePlan2006Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">srt:ParentCompanyMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-162"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tgen:AmendnedStockOptionAndIncentivePlan2006Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">srt:ParentCompanyMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-163"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tgen:AmendnedStockOptionAndIncentivePlan2006Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">srt:ParentCompanyMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-164"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tgen:A2022StockIncentivePlanMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">srt:ParentCompanyMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-03-01</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-165"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tgen:A2022StockIncentivePlanMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">srt:ParentCompanyMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-03-01</xbrli:startDate><xbrli:endDate>2022-03-01</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-166"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:TitleOfIndividualAxis">srt:DirectorMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">srt:ParentCompanyMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-167"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:TitleOfIndividualAxis">srt:DirectorMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">srt:ParentCompanyMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-168"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">srt:ParentCompanyMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:TitleOfIndividualAxis">srt:DirectorMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-169"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">srt:ParentCompanyMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:TitleOfIndividualAxis">srt:DirectorMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-170"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tgen:A2022StockIncentivePlanMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">srt:ParentCompanyMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-171"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">srt:ParentCompanyMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-172"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">srt:ParentCompanyMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-173"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">srt:ParentCompanyMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-174"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">srt:ParentCompanyMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-175"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">srt:ParentCompanyMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-176"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">srt:ParentCompanyMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-177"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementBasisAxis">us-gaap:EstimateOfFairValueFairValueDisclosureMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="dei:LegalEntityAxis">tgen:EurositePowerIncMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-178"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel1Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="dei:LegalEntityAxis">tgen:EurositePowerIncMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-179"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="dei:LegalEntityAxis">tgen:EurositePowerIncMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-180"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel3Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="dei:LegalEntityAxis">tgen:EurositePowerIncMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-181"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="dei:LegalEntityAxis">tgen:EurositePowerIncMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-182"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementBasisAxis">us-gaap:EstimateOfFairValueFairValueDisclosureMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-183"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel1Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-184"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-185"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel3Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-186"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-187"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementBasisAxis">us-gaap:EstimateOfFairValueFairValueDisclosureMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="dei:LegalEntityAxis">tgen:EurositePowerIncMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-188"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel1Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="dei:LegalEntityAxis">tgen:EurositePowerIncMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-189"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="dei:LegalEntityAxis">tgen:EurositePowerIncMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-190"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel3Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="dei:LegalEntityAxis">tgen:EurositePowerIncMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-191"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="dei:LegalEntityAxis">tgen:EurositePowerIncMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-192"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementBasisAxis">us-gaap:EstimateOfFairValueFairValueDisclosureMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-193"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel1Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-194"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-195"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel3Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-196"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-197"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementBasisAxis">us-gaap:EstimateOfFairValueFairValueDisclosureMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-198"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-199"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FairValueByLiabilityClassAxis">tgen:ContingentConsiderationCurrentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-200"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FairValueByLiabilityClassAxis">tgen:ContingentConsiderationNoncurrentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-201"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-202"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FairValueByLiabilityClassAxis">tgen:ContingentConsiderationCurrentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-203"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FairValueByLiabilityClassAxis">tgen:ContingentConsiderationNoncurrentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-204"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-205"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-206"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2023-07-01</xbrli:startDate><xbrli:endDate>2023-07-01</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-207"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tgen:ProductsSegmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-208"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tgen:ServicesAndOtherSegmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-209"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tgen:EnergyProductionMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-210"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">us-gaap:CorporateAndOtherMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-211"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-212"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tgen:ServicesAndOtherSegmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-213"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">us-gaap:CorporateAndOtherMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-214"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tgen:ServicesAndOtherSegmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-215"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">us-gaap:CorporateAndOtherMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-216"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tgen:ProductsSegmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-217"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tgen:ServicesAndOtherSegmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-218"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tgen:EnergyProductionMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-219"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">us-gaap:CorporateAndOtherMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-220"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-221"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tgen:ServicesAndOtherSegmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-222"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">us-gaap:CorporateAndOtherMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-223"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tgen:ServicesAndOtherSegmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-224"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">us-gaap:CorporateAndOtherMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-225"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">tgen:BenefitforIncomeTaxesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-226"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">tgen:BenefitforIncomeTaxesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-227"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:InternalRevenueServiceIRSMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-228"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:StateAndLocalJurisdictionMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-229"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:OwnershipAxis">tgen:AmericanDgEnergyMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2017-01-01</xbrli:startDate><xbrli:endDate>2017-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-230"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:OwnershipAxis">tgen:AmericanDgEnergyMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-231"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:SubsequentEventTypeAxis">us-gaap:SubsequentEventMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-01-01</xbrli:startDate><xbrli:endDate>2025-03-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-232"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001537435</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:SubsequentEventTypeAxis">us-gaap:SubsequentEventMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-02-28</xbrli:startDate><xbrli:endDate>2025-02-28</xbrli:endDate></xbrli:period></xbrli:context><ix:relationship arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" fromRefs="f-626 f-627" linkRole="http://www.xbrl.org/2003/role/link" toRefs="fn-1" order="1"/></ix:resources></ix:header></div><div id="ic4bfd2faeedf4470adc28b9f3bba3b4c_1"></div><div style="min-height:42.75pt;width:100%"><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span><br/></span></div></div><div style="margin-bottom:5pt;margin-top:10pt;text-indent:36pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"><tr><td style="width:1.0%"/><td style="width:98.900%"/><td style="width:0.1%"/></tr><tr style="height:3pt"><td colspan="3" style="border-bottom:1pt solid #000000;border-top:2pt solid #000000;padding:0 1pt"/></tr></table></div><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">UNITED STATES</span></div><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">SECURITIES AND EXCHANGE COMMISSION</span></div><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Washington, DC 20549</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:18pt;font-weight:700;line-height:120%">FORM <ix:nonNumeric contextRef="c-1" name="dei:DocumentType" id="f-1">10-K</ix:nonNumeric>&#160;</span></div><div style="margin-top:5pt;text-align:center"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:95.760%"><tr><td style="width:1.0%"/><td style="width:3.022%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:1.479%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:93.099%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="c-1" name="dei:DocumentAnnualReport" format="ixt-sec:boolballotbox" id="f-2">&#9745;</ix:nonNumeric></span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">ANNUAL REPORT PURSUANT TO SECTION 13 OR 15(d) OF THE SECURITIES EXCHANGE ACT OF 1934</span></td></tr></table></div><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">For the fiscal year ended <ix:nonNumeric contextRef="c-1" name="dei:DocumentPeriodEndDate" format="ixt:date-monthname-day-year-en" id="f-4"><ix:nonNumeric contextRef="c-1" name="dei:CurrentFiscalYearEndDate" format="ixt:date-monthname-day-en" id="f-3">December&#160;31</ix:nonNumeric>, 2024</ix:nonNumeric> </span></div><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">or</span></div><div style="margin-top:5pt;text-align:center"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:95.760%"><tr><td style="width:1.0%"/><td style="width:3.022%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:1.479%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:93.099%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonNumeric contextRef="c-1" name="dei:DocumentTransitionReport" format="ixt-sec:boolballotbox" id="f-5">&#9744;</ix:nonNumeric></span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:100%">TRANSITION REPORT PURSUANT TO SECTION 13 OR 15(d) OF THE SECURITIES EXCHANGE ACT OF 1934</span></td></tr></table></div><div style="margin-bottom:3pt;margin-top:3pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Commission file number <ix:nonNumeric contextRef="c-1" name="dei:EntityFileNumber" id="f-6">001-36103</ix:nonNumeric></span></div><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:14pt;font-weight:700;line-height:120%"><ix:nonNumeric contextRef="c-1" name="dei:EntityRegistrantName" id="f-7">TECOGEN INC.</ix:nonNumeric></span></div><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:120%">(Exact name of Registrant as specified in its charter)</span></div><div style="margin-top:5pt;text-align:center"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:80.409%"><tr><td style="width:1.0%"/><td style="width:48.900%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:48.900%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="c-1" name="dei:EntityIncorporationStateCountryCode" format="ixt-sec:stateprovnameen" id="f-8">Delaware</ix:nonNumeric></span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="c-1" name="dei:EntityTaxIdentificationNumber" id="f-9">04-3536131</ix:nonNumeric></span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">(State or Other Jurisdiction of Incorporation or Organization)</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">(IRS Employer Identification No.)</span></td></tr></table></div><div style="margin-bottom:3pt;text-align:center"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:80.409%"><tr><td style="width:1.0%"/><td style="width:48.900%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:48.900%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="c-1" name="dei:EntityAddressAddressLine1" id="f-10">76 Treble Cove Road, Bldg. 1</ix:nonNumeric></span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="c-1" name="dei:EntityAddressCityOrTown" id="f-11">North Billerica</ix:nonNumeric>, <ix:nonNumeric contextRef="c-1" name="dei:EntityAddressStateOrProvince" format="ixt-sec:stateprovnameen" id="f-12">Massachusetts</ix:nonNumeric> <ix:nonNumeric contextRef="c-1" name="dei:EntityAddressPostalZipCode" id="f-13">01862</ix:nonNumeric></span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonNumeric contextRef="c-1" name="dei:CityAreaCode" id="f-14">781</ix:nonNumeric>) <ix:nonNumeric contextRef="c-1" name="dei:LocalPhoneNumber" id="f-15">466-6400</ix:nonNumeric></span></div></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">(Address of Principal Executive Offices and Zip Code)</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">(Registrant's telephone number, including area code)</span></td></tr></table></div><div style="text-align:center"><span><br/></span></div><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%">Securities registered pursuant to Section 12(g) of the Securities Exchange Act: </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:120%"><ix:nonNumeric contextRef="c-1" name="dei:Security12gTitle" id="f-16">Common Stock, $.001 par value per share</ix:nonNumeric></span></div><div><span><br/></span></div><div style="margin-bottom:6pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%">Indicate by check mark if the registrant is a well-known seasoned issuer, as defined in Rule 405 of the Securities Act.Yes </span><span style="color:#000000;font-family:'Wingdings',sans-serif;font-size:9pt;font-weight:400;line-height:120%">&#168;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%"> <ix:nonNumeric contextRef="c-1" name="dei:EntityWellKnownSeasonedIssuer" id="f-17">No</ix:nonNumeric> </span><span style="color:#000000;font-family:'Wingdings',sans-serif;font-size:9pt;font-weight:400;line-height:120%">&#253;</span></div><div style="margin-bottom:6pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%">Indicate by check mark if the registrant is not required to file reports pursuant to Section 13 or Section 15(d) of the Act.  Yes </span><span style="color:#000000;font-family:'Wingdings',sans-serif;font-size:9pt;font-weight:400;line-height:120%">&#168;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%"> <ix:nonNumeric contextRef="c-1" name="dei:EntityVoluntaryFilers" id="f-18">No</ix:nonNumeric> </span><span style="color:#000000;font-family:'Wingdings',sans-serif;font-size:9pt;font-weight:400;line-height:120%">&#253;</span></div><div style="margin-bottom:6pt;margin-top:3pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%">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. <ix:nonNumeric contextRef="c-1" name="dei:EntityCurrentReportingStatus" id="f-19">Yes</ix:nonNumeric> </span><span style="color:#000000;font-family:'Wingdings',sans-serif;font-size:9pt;font-weight:400;line-height:120%">&#253;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%"> No </span><span style="color:#000000;font-family:'Wingdings',sans-serif;font-size:9pt;font-weight:400;line-height:120%">&#168;</span></div><div style="margin-bottom:6pt;margin-top:3pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%">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 (&#167;232.405 of this chapter) during the preceding 12 months (or for such shorter period that the registrant was required to submit such files).   <ix:nonNumeric contextRef="c-1" name="dei:EntityInteractiveDataCurrent" id="f-20">Yes</ix:nonNumeric> </span><span style="color:#000000;font-family:'Wingdings',sans-serif;font-size:9pt;font-weight:400;line-height:120%">&#253;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%"> No </span><span style="color:#000000;font-family:'Wingdings',sans-serif;font-size:9pt;font-weight:400;line-height:120%">&#168;</span></div><div style="margin-bottom:3pt;margin-top:3pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%">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 &#8220;large accelerated filer&#8221;, &#8220;accelerated filer&#8221;, &#8220;smaller reporting company&#8221; and "emerging growth company" in Rule 12b-2 of the Exchange Act. </span></div><div style="margin-bottom:3pt;margin-top:3pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%">Large accelerated filer &#160;&#160;&#160;&#160;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:120%">&#9744;</span><span style="color:#000000;font-family:'Wingdings',sans-serif;font-size:9pt;font-weight:400;line-height:120%"> </span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%">&#160;&#160;&#160;&#160;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%">Accelerated filer &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="color:#000000;font-family:'Wingdings',sans-serif;font-size:9pt;font-weight:400;line-height:120%">o </span></div><div style="margin-bottom:3pt;margin-top:3pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%"><ix:nonNumeric contextRef="c-1" name="dei:EntityFilerCategory" format="ixt-sec:entityfilercategoryen" id="f-21">Non&#8211;Accelerated Filer</ix:nonNumeric> &#160;&#160;&#160;&#160;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%">&#9746;</span><span style="color:#000000;font-family:'Wingdings',sans-serif;font-size:9pt;font-weight:400;line-height:120%"> </span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%">&#160;&#160;&#160;&#160;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%">Smaller reporting company &#160;&#160;&#160;&#160;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%"><ix:nonNumeric contextRef="c-1" name="dei:EntitySmallBusiness" format="ixt-sec:boolballotbox" id="f-22">&#9746;</ix:nonNumeric></span></div><div style="text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%">Emerging growth company &#160;&#160;&#160;&#160;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:120%"><ix:nonNumeric contextRef="c-1" name="dei:EntityEmergingGrowthCompany" format="ixt-sec:boolballotbox" id="f-23">&#9744;</ix:nonNumeric></span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%">&#160;</span></div><div style="text-align:justify;text-indent:36pt"><span><br/></span></div><div style="margin-bottom:3pt;margin-top:3pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%">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. </span><span style="color:#000000;font-family:'Wingdings',sans-serif;font-size:9pt;font-weight:400;line-height:120%">&#168;</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%">Indicate by check mark whether the registrant has filed a report on and attestation to its management&#8217;s assessment of the effectiveness of its internal control over financial reporting under Section 404(b) of the Sarbanes-Oxley Act (15 U.S.C. 7262(b)) by the registered public accounting firm that prepared or issued its audit report.</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%"> </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%">Yes </span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%">&#9744;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%"> No </span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:12pt;font-weight:400;line-height:120%"><ix:nonNumeric contextRef="c-1" name="dei:IcfrAuditorAttestationFlag" format="ixt:fixed-false" id="f-24">&#9746;</ix:nonNumeric></span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">       </span></div><div style="margin-bottom:3pt;margin-top:3pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%">If securities are registered pursuant to Section 12(b) of the Act, indicate by check mark whether the financial statements of the registrant included in the filing reflect the correction of an error to previously issued financial statements. Yes </span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%">&#9744;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%">  No </span><span style="color:#000000;font-family:'Wingdings',sans-serif;font-size:9pt;font-weight:400;line-height:120%"><ix:nonNumeric contextRef="c-1" name="dei:DocumentFinStmtErrorCorrectionFlag" format="ixt:fixed-false" id="f-25">&#253;</ix:nonNumeric></span></div><div style="margin-bottom:6pt;margin-top:6pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%">Indicate by check mark whether any of those error corrections are restatements that required a recovery analysis of incentive-based compensation received by any of the registrant's executive officers during the relevant recovery period pursuant to (&#167;240.10D-1(b).  </span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%">&#9744;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%">  </span></div><div style="margin-bottom:3pt;margin-top:3pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%">Indicate by check mark whether the registrant is a shell company (as defined in Rule 12b-2 of the Act). Yes </span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%">&#9744;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%">  No </span><span style="color:#000000;font-family:'Wingdings',sans-serif;font-size:9pt;font-weight:400;line-height:120%"><ix:nonNumeric contextRef="c-1" name="dei:EntityShellCompany" format="ixt:fixed-false" id="f-26">&#253;</ix:nonNumeric></span></div><div style="margin-bottom:3pt;margin-top:3pt;text-align:justify"><span><br/></span></div><div style="margin-bottom:3pt;margin-top:3pt;text-align:justify"><span><br/></span></div><div style="margin-bottom:3pt;margin-top:3pt;text-align:justify"><span><br/></span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span><br/></span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span><br/></span></div></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%">As of June&#160;30, 2024, the last day of the registrant&#8217;s most recently completed second fiscal quarter, the aggregate market value of the voting and non-voting common equity held by non-affiliates was: $<ix:nonFraction unitRef="usd" contextRef="c-2" decimals="0" name="dei:EntityPublicFloat" format="ixt:num-dot-decimal" scale="0" id="f-27">13,555,089</ix:nonFraction>.  Solely for purposes of this disclosure, shares of common stock held by executive officers and directors of the registrant have been excluded because such persons may be deemed to be affiliates. This determination of affiliate status is not necessarily a conclusive determination for other purposes.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%">As of March&#160;18, 2025, <ix:nonFraction unitRef="shares" contextRef="c-3" decimals="INF" name="dei:EntityCommonStockSharesOutstanding" format="ixt:num-dot-decimal" scale="0" id="f-28">24,985,261</ix:nonFraction> shares of common stock, $.001 par value per share, of the registrant were issued and outstanding.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:center"><span><br/></span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:120%">DOCUMENTS INCORPORATED BY REFERENCE</span></div><ix:nonNumeric contextRef="c-1" name="dei:DocumentsIncorporatedByReferenceTextBlock" id="f-29" escape="true"><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%">Certain information required for Part III of this Annual Report on Form 10-K is incorporated by reference to Tecogen Inc.'s definitive proxy statement for its 2024 Annual Meeting of Stockholders to be filed with the Securities and Exchange Commission pursuant to Regulation 14A under the Securities Exchange Act of 1934, as amended, within 120 days following its fiscal year ended December&#160;31, 2024.</span></div></ix:nonNumeric><div style="margin-bottom:3pt;margin-top:3pt;text-align:justify;text-indent:36pt"><span><br/></span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span><br/></span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span><br/></span></div></div><div style="margin-bottom:6pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%;text-decoration:underline">CAUTIONARY NOTE CONCERNING FORWARD-LOOKING STATEMENTS</span></div><div style="margin-bottom:6pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">&#160;</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">This Annual Report on Form 10-K </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">("report")</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> and the filings and other documents incorporated herein by reference contain forward-looking statements </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">within the meaning of Section 27A of the Securities Act of 1933, as amended </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">(&#8220;Securities Act&#8221;)</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">, Section 21E of the Securities Exchange Act of 1934, as amended </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">(&#8220;Securities Exchange Act&#8221;)</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">, the Private Securities Litigation Reform Act of 1995 and other federal securities laws</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%"> </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">that involve a number of risks and uncertainties.</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">  </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Forward-looking statements generally can be identified by the use of forward-looking terminology such as &#8220;believe,&#8221; &#8220;expect&#8221; &#8220;anticipate,&#8221; &#8220;intend,&#8221; &#8220;plan,&#8221; &#8220;estimate,&#8221; &#8220;project,&#8221; &#8220;target,&#8221; &#8220;potential,&#8221; &#8220;will,&#8221; &#8220;should,&#8221; &#8220;seek,&#8221; &#8220;could,&#8221; &#8220;likely&#8221; &#8220;may,&#8221; &#8220;pro-forma,&#8221; &#8220;anticipate,&#8221; &#8220;continue&#8221; or other variations thereof (including their use in the negative), or by discussions of strategies, plans or intentions.</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%"> </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">All statements, other than statements of historical fact, included in this report regarding our strategy, future operations, future financial position, future revenues, projected costs, prospects and plans and objectives of management are forward-looking statements. </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The outcome of the events described in these forward-looking statements is subject to known and unknown risks, uncertainties and other factors that may cause us, our customers&#8217; or our industry&#8217;s actual results, levels of activity, performance or achievements expressed or implied by these forward-looking statements to differ. See </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">"Item 1A. Risk Factors," "Item 7.Management's Discussion and Analysis of Financial Condition and Results of Operations,"</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> and </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">"Item 1. Business,</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">" as well as other sections in this report that discuss some of the factors that could contribute to these differences. </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In addition, such forward-looking statements are necessarily dependent upon assumptions and estimates that may prove to be incorrect.</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">  </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Although we believe that the assumptions and estimates reflected in such forward-looking statements are reasonable, we cannot guarantee that our plans, intentions, or expectations will be achieved.</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">  </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The information contained in this report, including the section discussing risk factors, identifies important factors that could cause such differences.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The cautionary statements made in this report are intended to be applicable to all related forward-looking statements wherever they appear in this report.</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">  </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The forward-looking statements made in this report relate only to events as of the date on which the statements are made. Except as required by law, we undertake no obligation to update or release any forward-looking statements as a result of new information, future events, or otherwise, and assume no obligation to update the reasons why actual results could differ materially from those anticipated in such forward-looking statements.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our logo, trademarks and service marks are the property of Tecogen.  Other trademarks or service marks appearing in this report are the property of their respective holders.  Solely for convenience, the trademarks, service marks, trade names and copyrights referred to in this report may appear without the TM, SM, </span><span style="color:#008080;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">&#174; or &#169;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> symbols, but such references are not intended to indicate in any way that we or any third-party will not assert, to the fullest extent under applicable law, their rights or the right of the applicable licensor to these trademarks, service marks, trade names and copyrights.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">This report also contains or may contain market data related to our business and industry and any such market data may include projections that are based on certain assumptions. If these assumptions turn out to be incorrect, actual results may differ from the projections based on these assumptions. As a result, our markets may not grow at the rates projected by this data, or at all. The failure of these markets to grow at these projected rates may have a material adverse effect on our business, results of operations, financial condition, and the trading price of our common stock.</span></div><div style="text-indent:36pt"><span><br/></span></div><div style="margin-bottom:6pt;margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"><tr><td style="width:1.0%"/><td style="width:98.900%"/><td style="width:0.1%"/></tr><tr style="height:3pt"><td colspan="3" style="border-bottom:2pt solid #000000;border-top:1pt solid #000000;padding:0 1pt"/></tr></table></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span><br/></span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span><br/></span></div></div></div><div id="ic4bfd2faeedf4470adc28b9f3bba3b4c_7"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">TECOGEN INC.</span></div></div><div style="margin-bottom:6pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">ANNUAL REPORT ON FORM 10-K</span></div><div style="margin-bottom:6pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">FOR THE FISCAL YEAR ENDED DECEMBER&#160;31, 2024 </span></div><div style="margin-bottom:6pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">TABLE OF CONTENTS</span></div><div style="margin-bottom:6pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#160;</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"/><td style="width:12.536%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:71.627%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.537%"/><td style="width:0.1%"/></tr><tr><td colspan="9" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">PART I</span></div></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Item 1.</span></div></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Business.</span></div></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:right"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#ic4bfd2faeedf4470adc28b9f3bba3b4c_10">1</a></span></div></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Item 1A.</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Risk Factors.</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:right"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#ic4bfd2faeedf4470adc28b9f3bba3b4c_13">14</a></span></div></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Item 1B.</span></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Unresolved Staff Comments.</span></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:right"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#ic4bfd2faeedf4470adc28b9f3bba3b4c_16">27</a></span></div></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Item 1C.</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Cybersecurity Risk Management.</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:right"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#ic4bfd2faeedf4470adc28b9f3bba3b4c_16">27</a></span></div></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Item 2.</span></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Properties.</span></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:right"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#ic4bfd2faeedf4470adc28b9f3bba3b4c_22">28</a></span></div></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Item 3.</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Legal Proceedings.</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:right"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#ic4bfd2faeedf4470adc28b9f3bba3b4c_25">29</a></span></div></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Item 4.</span></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Mine Safety Disclosures.</span></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:right"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#ic4bfd2faeedf4470adc28b9f3bba3b4c_28">29</a></span></div></td></tr><tr style="height:14pt"><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/></tr><tr><td colspan="9" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">PART II</span></td></tr><tr style="height:14pt"><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Item 5.</span></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Market for the Registrant&#8217;s Common Equity, Related Stockholder Matters and Issuer Purchases of Equity Securities.</span></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="text-align:right"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#ic4bfd2faeedf4470adc28b9f3bba3b4c_31">29</a></span></div></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Item 6.</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">[Reserved].</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:right"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#ic4bfd2faeedf4470adc28b9f3bba3b4c_34">30</a></span></div></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Item 7.</span></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Management&#8217;s Discussion and Analysis of Financial Condition and Results of Operations.</span></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:right"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#ic4bfd2faeedf4470adc28b9f3bba3b4c_37">30</a></span></div></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Item 7A.</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Quantitative and Qualitative Disclosures About Market Risk.</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:right"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#ic4bfd2faeedf4470adc28b9f3bba3b4c_40">41</a></span></div></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Item 8.</span></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Financial Statements and Supplementary Data.</span></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:right"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#ic4bfd2faeedf4470adc28b9f3bba3b4c_43">41</a></span></div></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Item 9.</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Changes in and Disagreements with Accountants on Accounting and Financial Disclosure.</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:right"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#ic4bfd2faeedf4470adc28b9f3bba3b4c_46">41</a></span></div></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Item 9A.</span></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Controls and Procedures.</span></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:right"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#ic4bfd2faeedf4470adc28b9f3bba3b4c_49">41</a></span></div></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Item 9B.</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Other Information.</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:right"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#ic4bfd2faeedf4470adc28b9f3bba3b4c_52">43</a></span></div></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Item 9C.</span></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Disclosure Regarding Foreign Jurisdictions that Prevent Inspections.</span></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:right"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#ic4bfd2faeedf4470adc28b9f3bba3b4c_52">43</a></span></div></td></tr><tr style="height:14pt"><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/></tr><tr><td colspan="9" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">PART III</span></td></tr><tr style="height:14pt"><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Item 10.</span></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Directors, Executive Officers and Corporate Governance.</span></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:right"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#ic4bfd2faeedf4470adc28b9f3bba3b4c_58">44</a></span></div></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Item 11.</span></td><td colspan="3" style="background-color:#bfe4ff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Executive Compensation.</span></td><td colspan="3" style="background-color:#bfe4ff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:right"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#ic4bfd2faeedf4470adc28b9f3bba3b4c_61">44</a></span></div></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Item 12.</span></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Security Ownership of Certain Beneficial Owners and Management and Related Stockholder Matters.</span></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="text-align:right"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#ic4bfd2faeedf4470adc28b9f3bba3b4c_64">44</a></span></div></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Item 13.</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Certain Relationships and Related Transactions, and Director Independence.</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:right"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#ic4bfd2faeedf4470adc28b9f3bba3b4c_67">44</a></span></div></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Item 14.</span></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Principal Accounting Fees and Services.</span></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:right"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#ic4bfd2faeedf4470adc28b9f3bba3b4c_70">44</a></span></div></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td></tr><tr><td colspan="9" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">PART IV</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Item 15.</span></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Exhibits and Financial Statement Schedules.</span></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:right"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#ic4bfd2faeedf4470adc28b9f3bba3b4c_73">44</a></span></div></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Item 16.</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Form 10-K Summary.</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:right"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#ic4bfd2faeedf4470adc28b9f3bba3b4c_76">44</a></span></div></td></tr><tr style="height:14pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">SIGNATURES</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:right"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#ic4bfd2faeedf4470adc28b9f3bba3b4c_82">47</a></span></div></td></tr></table></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span><br/></span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span><br/></span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span><br/></span></div></div></div><div id="ic4bfd2faeedf4470adc28b9f3bba3b4c_10"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">TECOGEN INC.</span></div></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%;text-decoration:underline">PART 1</span></div><div style="margin-bottom:6pt;margin-top:6pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%;text-decoration:underline">Item 1.  Business</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">The Company</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Tecogen Inc. (together with its subsidiaries, &#8220;we,&#8221; &#8220;our,&#8221; or &#8220;us,&#8221; or &#8220;Tecogen&#8221;) designs, manufactures, markets, and maintains high efficiency, ultra-clean cogeneration products including natural gas engine driven combined heat and power, chillers, air conditioning systems, and water heaters for multi-family residential, commercial, recreational and industrial use.</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%"> </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We provide cost efficient, environmentally friendly and reliable products for distributed power generation that deliver substantial energy savings, resiliency from utility power outages, and nearly eliminate criteria pollutants including nitrogen oxide ("NOx") and carbon monoxide ("CO"), significantly reducing customers' carbon footprint.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Tecogen's cogeneration systems (also known as combined heat and power or "CHP") are efficient because they drive electric generators or compressors which reduce the amount of electricity purchased from the utility grid while recovering the engine's waste heat for water heating, space heating, and/or providing cooling or air conditioning at the customer's facility.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We were incorporated in the State of Delaware on September 15, 2000.  We have wholly-owned subsidiaries American DG Energy, Inc. ("ADGE") and Tecogen CHP Solutions, Inc., and we own a 51% interest in American DG New York, LLC ("ADGNY"), a joint venture. ADGE and ADGNY distribute, own, and operate clean, on-site energy systems that produce electricity, hot water, heat and cooling. ADGE and ADGNY own the equipment that is installed at customers' facilities and sell the energy produced to the customer on a long-term contractual basis. </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our business operations is comprised of three business segments:</span></div><div style="margin-bottom:6pt;margin-top:6pt;padding-left:54pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:12pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%;padding-left:13.8pt">Products Segment</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> - designs, manufactures and sells industrial and commercial cogeneration systems; </span></div><div style="margin-bottom:6pt;margin-top:6pt;padding-left:54pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%;padding-left:14.5pt">Services Segment</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> - provides operations and maintenance ("O&amp;M") services for our products under long term service contracts; and</span></div><div style="margin-bottom:6pt;margin-top:6pt;padding-left:54pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:12pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%;padding-left:13.8pt">Energy Production Segment</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> - installs, operates and maintains distributed generation electricity systems that we own and sell the energy generated by such systems in the form of electricity, heat, hot water and cooling to our customers under long-term energy sales agreements.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Products.</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">  Typical customers for our cogeneration and chiller systems include hospitals and nursing homes, schools and universities, health clubs and spas, hotels and motels, office and retail buildings, food and beverage processors, multi-unit residential buildings, laundries, ice rinks, swimming pools, factories, municipal buildings, indoor agriculture, military installations, and indoor growing facilities. Our refrigeration compressors are applied primarily to industrial applications that include cold storage, wineries, dairies, ice rinks and food processing. </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Market drivers include the price of natural gas, local electricity rates, environmental regulations, and governmental energy policies, as well as customers&#8217; desire to become more environmentally responsible.  The majority of our customers are located in regions with the highest utility rates, typically California, the Midwest and the Northeast. We have shipped over 3,200 units, some of which have been operating for almost 35 years.  </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Services.</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">  Our Services business consists of maintenance services, primarily for our own CHP products, provided by our specialized technical staff through our factory service centers located in California, Connecticut, Florida, Massachusetts, Michigan, New Jersey, New York, and Toronto, Canada.  </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As of December 31, 2024, our Services business provided maintenance services for approximately 215 chillers and 1,046 cogeneration units pursuant to maintenance services agreements.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Energy Production.</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">  Our Energy Production business is conducted by our subsidiary American DG Energy Inc. (&#8220;ADGE&#8221;) which sells energy in the form of electricity, heat, hot water and cooling to customers under long-term energy sales agreements (typically with terms of 10 to 15 years). The typical sales model is to install and own energy systems in customers' buildings and sell the energy produced by those systems back to the customers at a cost set by a negotiated formula in customer contracts. </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As of December 31, 2024, ADGE owned 25 operational energy systems, representing an aggregate of approximately 1,195 kilowatts of electrical capacity from cogeneration units and 850 cooling ton capacity from chillers. </span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="margin-bottom:6pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">1</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">TECOGEN INC.</span></div></div><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Recent Developments</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Vertiv Sales and Marketing Agreement - Data Center Cooling Market</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On February 28, 2025, we entered into a Sales and Marketing Agreement with Vertiv Corporation (&#8220;Vertiv&#8221;) relating to sales of Tecogen DTx chillers for data center cooling applications (the &#8220;Vertiv Agreement&#8221;). The Vertiv Agreement has a term of two years and provides that Vertiv will establish a budget for marketing activities and use commercially reasonable efforts to sell our DTx chillers for cooling applications in data centers. The Vertiv Agreement also provides the basis for the negotiation of a definitive supply agreement between us and Vertiv. We have agreed to provide Vertiv with reasonable discounts for purchases of significant volumes of our chillers, and Vertiv has agreed to use commercially reasonable efforts to assist us in securing favorable terms for engineering components and supplies for manufacturing our chillers. Pursuant to the Vertiv Agreement we have granted Vertiv the exclusive right to market and sell our DTx chillers for data center cooling applications outside the United States, and the non-exclusive right to market and sell our DTx chillers within the United States.  We have also agreed to grant Vertiv the exclusive right to market and sell our DTx chillers for data center cooling applications in the United States if Vertiv achieves and maintains agreed sales levels of DTx chillers. The foregoing description of the Vertiv Agreement is not complete and is qualified in its entirety by reference to the full text thereof, a copy of which was filed as Exhibit 99.01 to our Current Report on Form 8-K filed with the Securities and Exchange Commission on February 28, 2025, and incorporated herein by reference as Exhibit 10.30 hereto.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Assumption of Aegis Energy Services Maintenance Agreements   </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On March 15, 2023, we entered into an agreement ("Agreement") with Aegis Energy Services, LLC (&#8220;Aegis&#8221;) pursuant to which Aegis agreed to assign to us and we agreed to assume certain </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Aegis</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> maintenance agreements, we agreed to purchase certain assets, and related matters (&#8220;Acquisition&#8221;). On April 1, 2023, the Acquisition closed. Under the Agreement, we agreed to acquire from Aegis and assume Aegis' rights and obligations arising on or after April 1, 2023 under maintenance agreements pursuant to which Aegis provided maintenance services for approximately 200 cogeneration systems, and acquired certain vehicles and inventory used by Aegis in connection with the performance of such maintenance services, and following closing, hired eight (8) Aegis employees to provide services with respect to such maintenance agreements. At closing, we acquired eight (8) Aegis vehicles for consideration consisting of $170,000 in cash. Also, we issued credits against outstanding accounts receivable due from Aegis in the amount of $300,000 for the acquisition of inventory that Aegis used to provide maintenance services. </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On February 1, 2024, Tecogen and Aegis amended the Agreement to add eighteen (18) additional maintenance service agreements (the "Amendment"). The Amendment includes an undertaking by Aegis to use commercially reasonable efforts to support and assist our execution of maintenance service agreements for an additional thirty-six (36) cogeneration units sold to customers by Aegis. </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On May 1, 2024,  Tecogen and Aegis amended the Agreement to add thirty-one (31) additional maintenance contracts (the "Second Amendment"). The Second Amendment includes an undertaking by Aegis to use commercially reasonable efforts to support and assist our execution of maintenance service agreements for an additional forty-eight (48) cogeneration units sold to customers by Aegis. </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">See Note 5. ""Aegis Contract and Related Asset Acquisition" "of the Notes to the Consolidated Financial Statements.&#160;&#160;&#160;&#160; </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Facilities Relocation</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In April, 2024, we moved our manufacturing operations and corporate offices from 45 First Avenue, Waltham, Massachusetts to 76 Treble Cove Road, Building 1, North Billerica, Massachusetts. As a result of the relocation, product revenues were negatively impacted during 2024. The factory relocation also necessitated construction activities to install equipment test cells and comply with local regulations. We resumed manufacturing operations during the latter-half of the third quarter of 2024. </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Impact of Anti-fossil Fuel Sentiment</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In some key markets such as New York City, the regulatory push to eliminate fossil fuels from buildings has impacted cogeneration unit sales. We believe that as regulations take into account scope 2 emissions and products like our hybrid chiller that can choose the cleanest fuel source will have a significant advantage in decarbonization efforts. The political environment following the 2024 elections in the United States may have a material impact on anti-fossil fuel sentiment and the regulatory environment that may be favorable to our business. We have also diversified our sales activities to reduce our reliance on markets like New York City. </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Impact of Utility Power Constraints, Data Center Construction</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As more load is added to the utility grid in the form of data centers, EV charging, and other demands for power, customers are facing power constraints. Tecogen believes that these power constrained customers, in particular data centers and </span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="margin-bottom:6pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">2</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">TECOGEN INC.</span></div></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">industrial facilities, represent a significant opportunity for growth. The customer need is driven by the ability to expand an existing facility or open a new facility quickly while taking advantage of utility expense savings long term. Our chiller products can reduce the electrical capacity needed on-site by 30% or more. Our InVerde product can provide on-site power generation which allows customers to eliminate long lead times associated with electrical switch gear and bridge any short fall in power from the utility. </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Residual Impacts of Covid-19 Pandemic</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Supply chains were adversely impacted during Covid, resulting in significant delays or lack of availability of critical components such as engines. This has continued to have long term impact on product and service margins. The direct impact has been certain costs increasing faster than inflation. The indirect impact is from increased engine related costs in the service segment as replacements were deferred or overhauled components were used due to lack of parts. We have instituted a service price increase and have also been making engineering improvements to increase service intervals to increase gross margins. </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Tecochill Hybrid-Drive Air-Cooled Chiller Development</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">During the third quarter of 2021, we began development of the Tecochill Hybrid-Drive Air-Cooled Chiller. We recognized that there were many applications where the customer wanted an easy to install roof top chiller. Using the inverter design from our InVerde e+ cogeneration module, the system can simultaneously take two inputs, one from the grid or a renewable energy source and one from our natural gas engine. This allows a customer to seek the optimum blend of operational cost savings and greenhouse gas benefits while providing added resiliency from two power sources. We introduced the Tecochill Hybrid-Drive Air-Cooled Chiller at the AHR Expo in February 2023 and received an order on February 8, 2024 for three hybrid-drive air-cooled chillers for a utility company in Florida. In March 2024, the US Patent and Trademark Office granted patent 11,936,327: "Hybrid Power System With Electric Generator and Auxiliary Power Source."  </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Controlled Environment Agriculture  </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On July 20, 2022, we announced our intention to focus on opportunities for the use of our cogeneration equipment in low carbon Controlled Environment Agriculture ("CEA"). We believe that CEA offers an exciting opportunity to apply our expertise in clean cooling, power generation, and greenhouse gas reduction to address critical issues affecting food and energy security.  </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">CEA facilities enable multiple crop cycles (15 to 20 cycles) in one year compared to one or two crop cycles in conventional farming.  In addition, growing produce close to the point of sale reduces food spoilage during transportation.  Food crops grown in greenhouses typically have lower yields per square foot than in CEA facilities, and the push to situate facilities close to consumers in cities requires minimizing land area and maximizing yield per square foot.  Yields are increased in CEA facilities by supplementing or replacing natural light with grow lights in a climate-controlled environment - which requires significant energy use.  </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#201f1e;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In recent years, our cogeneration equipment has been used in numerous cannabis cultivation facilities because our systems reduce the facility's need for power, significantly reduce operating costs and the facility GHG footprint, and offer resiliency to grid outages. Our experience providing clean energy solutions to cannabis cultivation facilities has given us significant insight into requirements relating to energy-intensive indoor agriculture applications that we expect to be transferable to CEA facilities for food production.  </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Impact of Geopolitical Tensions</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We have no operations or customers in Russia, the Ukraine, or in the Middle East. The higher energy prices for natural gas as a result of the war may affect the performance of our Energy Production Segment and the cost differential between grid generated energy and natural gas sourced energy using our cogeneration equipment. However, we have also seen higher electricity prices as much of the electricity production in the United States is generated from fossil fuels. If the electricity prices continue to rise, the economic savings generated by our products are likely to increase. In addition to the direct result of changes in natural gas and electricity prices, the war in Ukraine and the conflict in the Middle East may result in higher cybersecurity risks, increased or ongoing supply chain challenges, and volatility related to the trading prices of commodities.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Impact of Tariffs</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The majority of our vendors are domestic. Although we have some exposure to Chinese and European suppliers, we do not anticipate any increases in tariffs to materially affect our operations. </span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="margin-bottom:6pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">3</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">TECOGEN INC.</span></div></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#201f1e;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Related Party Notes</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On October 9, 2023, we entered into note subscription agreements with each of John N. Hatsopoulos and Earl R. Lewis, III, each a director and shareholder of Tecogen, pursuant to which Mr. Hatsopoulos agreed to provide financing to us of up to $1&#160;million, and Mr. Lewis agreed to provide financing to us of $500,000, and at his discretion an additional $500,000. On October 10, 2023, we borrowed $500,000 from Mr. Hatsopoulos and issued a one-year promissory note with interest accruing at 5.12% per annum. On July 23, 2024, we borrowed an additional $500,000 from Mr. Hatsopoulos, and executed a one-year promissory note with interest accruing at 5.06% per annum. On March 21, 2024, John H. Hatsopoulos amended the terms of the promissory note, dated October 10, 2023, extending the maturity date by one year, making the maturity date October 10, 2025. On September 18, 2024, we borrowed $500,000 from Mr. Lewis and issued a one-year promissory note with interest accruing at 4.57% per annum. </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On January 14, 2025 we agreed to permit Mr. Lewis to either receive repayment of his note in cash or, at his discretion, convert the balance of the promissory note into shares of our common stock.  In the event of such a conversion, the number of shares we will be required to issue will be determined by dividing the balance due under the promissory note by the average closing price per share of our shares during the thirty-day period prior to the date of conversion.  </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On February 18, 2025 we amended the promissory notes with Mr. Hatsopoulos to extend the maturity dates for both promissory notes to July 31, 2026. We also agreed to permit Mr. Hatsopoulos to either receive repayment of his notes in cash, or, at his discretion, convert the balances of one or both of the promissory notes into shares of our common stock.  In the event of such a conversion, the number of shares we will be required to issue will be determined by dividing the balance(s) due under the promissory note(s) by the average closing price per share of our shares during the thirty-day period prior to the date of conversion. </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">See Note 11."Related Party Notes" of the Notes to the Consolidated Financial Statements.</span></div><div style="margin-bottom:6pt;margin-top:3pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Overview of Our Business</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our operations are comprised of three business segments. Our Products segment designs, manufactures and sells industrial and commercial cogeneration systems. Our Services segment provides O&amp;M services for our products under long term service contracts. Our Energy Production segment sells energy in the form of electricity, heat, hot water and cooling to our customers under long-term sales agreements.</span></div><div style="margin-bottom:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Products </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our products offer customers energy savings, resiliency and a cleaner environmental footprint. Our cogeneration, chiller, and heat pump systems use an engine to generate electricity or shaft work and recover the waste heat from the engine. Our systems are greater than 88% efficient compared to typical electrical grid efficiencies of 40% to 50%. As a result, our greenhouse gas (GHG) emissions are typically half that of the electrical grid. Our systems generate electricity and hot water or in the case of our Tecochill product, both chilled water and hot water.  Our products are expected to run on Renewable Natural Gas (RNG) as it is introduced into the US gas pipeline infrastructure.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our natural gas-powered cogeneration systems (also known as combined heat and power or &#8220;CHP&#8221;) are efficient because they drive electric generators or compressors, which reduce the amount of electricity purchased from the utility while recovering the engine&#8217;s waste heat for water heating, space heating, and/or air conditioning at the customer&#8217;s building.  </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our commercial product lines include:</span></div><div style="margin-bottom:6pt;padding-left:54pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:115%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:115%;padding-left:13.8pt">the InVerde e+</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7.8pt;font-weight:400;line-height:115%;position:relative;top:-4.2pt;vertical-align:baseline">&#174; </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:115%">and TecoPower</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7.8pt;font-weight:400;line-height:115%;position:relative;top:-4.2pt;vertical-align:baseline">&#174;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:115%"> cogeneration units that supply electricity and hot water;</span></div><div style="margin-bottom:6pt;padding-left:54pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:12pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:13.8pt">Tecochill</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7.8pt;font-weight:400;line-height:120%;position:relative;top:-4.2pt;vertical-align:baseline">&#174;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> air-conditioning and refrigeration chillers that produce chilled water and hot water;</span></div><div style="margin-bottom:6pt;padding-left:54pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:12pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:13.8pt">Tecochill</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7.8pt;font-weight:400;line-height:120%;position:relative;top:-4.2pt;vertical-align:baseline">&#174;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> hybrid-drive air-cooled chiller; gas engine-driven chillers that provide air conditioning and hot water;</span></div><div style="margin-bottom:6pt;padding-left:54pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:12pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:13.8pt">Tecofrost</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7.8pt;font-weight:400;line-height:120%;position:relative;top:-4.2pt;vertical-align:baseline">&#174; </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">gas engine-driven refrigeration compressors that circulate refrigerant and provide hot water as a byproduct; and,</span></div><div style="margin-bottom:6pt;padding-left:54pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:12pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:13.8pt">Ultera</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7.8pt;font-weight:400;line-height:120%;position:relative;top:-4.2pt;vertical-align:baseline">&#174;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> emissions control technology.</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Typical customers for our InVerde and TecoPower cogeneration products have a simultaneous need for electrical power and hot water. These include hospitals, nursing homes, schools, universities, health clubs, spas, hotels and motels, office and multi-unit residential buildings. Our Tecochill chiller products benefit customers who have a simultaneous need for cooling and hot water which is typical in sites such as hospitals, ice rinks, indoor agriculture and food processing. Our Tecofrost refrigeration compressors are applied primarily to industrial applications that include cold storage, wineries, dairies, ice rinks and food processing. The factors that drive the demand for such products include the price of natural gas, local electricity rates, </span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="margin-bottom:6pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">4</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">TECOGEN INC.</span></div></div><div style="margin-bottom:6pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">environmental regulations, and governmental energy policies, as well as customers&#8217; desire to become more environmentally responsible.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our Tecochill and Tecofrost cooling and refrigeration products provide both cooling and make use of high-grade waste heat. This is of particular advantage in facilities that control both temperature and humidity. In such facilities, climate control is achieved by cooling the facility to remove humidity and then reheating to the required temperature. Using engine waste heat to perform the reheat while utilizing natural gas to generate the cooling provides significant economic and environmental benefits. As a result our products have significant competitive advantages in applications that operate year-round such as controlled environment agriculture, indoor ice rinks, and hospitals.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our CHP products are designed as compact modular units that are intended to be installed in multiples. This approach has significant advantages over utilizing a single larger cogeneration or chiller unit, allowing placement in constrained urban settings and redundancy to mitigate service outages.</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">  </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Redundancy is particularly relevant in regions where the electric utility has formulated tariff structures that include high &#8220;peak demand&#8221; charges.</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">  </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Such tariffs are common in many areas of the country, and are applied by such utilities as Southern California Edison, Pacific Gas and Electric, Consolidated Edison of New York, and National Grid of Massachusetts.</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">  </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Because these tariffs are assessed based on customers&#8217; peak monthly demand charge over a very short interval, typically only 15 minutes, a brief service outage for a system comprised of a single unit can create a high demand charge, and therefore be highly detrimental to the monthly savings of the system.</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">  M</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">ultiple unit sites dramatically reduce the likelihood of a full system outage that would result in a high demand charge, giving customers with multiple units a greater probability of capturing peak demand savings.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our products are sold directly to customers by our in-house marketing team and by established independent sales agents and representatives.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Ultera Low Emissions Technology</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">.  </span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">All of our CHP products are available with the patented Ultera low-emissions technology as an equipment option.</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">  </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">This breakthrough technology was developed in 2009 and 2010 as part of a research effort partially funded by the California Energy Commission and Southern California Gas Company in response to the changing regulatory requirements for stationary engines to economically remove air pollutants from engine exhaust.</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%"> </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">United States and foreign patents for the technology were granted beginning in October 2013 and additional domestic and foreign patents granted or applications are pending.</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">  </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Branded Ultera&#174;, this ultra-clean emissions technology repositions our engine driven products in the marketplace, making them comparable environmentally with other technologies such as fuel cells, but at a much lower cost and greater efficiency.</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%"> </span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Multiple Tecogen CHP modules fitted with the patented Ultera emissions control technology have been permitted under the current regulatory limits in the Los Angeles area for unrestricted operation, the first natural gas engines to do so without operating time limits or other exemption. These engines were permitted to levels matching</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%"> </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">the California Air Resources Board ("CARB") stringent 2007 emissions requirements, the same emissions standard used to certify fuel cells, and the same emissions levels as a state-of-the-art central power plant.</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%"> </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As of December 31, 2024, our Ultera CHP, and fuel cell technologies, are the only technologies we are aware of that comply with California's air quality standards for CO and NOx, the world's strictest air quality standards. </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%"> </span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We offer our Ultera emissions control technology as standard on all our products or as a stand-alone application for retrofitting other rich-burn spark-ignited reciprocating internal combustion engines such as the engine-generators described above. As demand response programs become more economically attractive and air quality regulations become more stringent, there could be increased demand for retrofitting standby generators with our Ultera emissions control technology to provide a cost-effective solution to keep the installed base of standby generators operational and in compliance with regulatory requirements. Our engine-generators have also been used in California to power dispersed loads in a fire-prone area where frequent de-energizing of the electric overhead power lines is required for safety. </span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Services</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Through our factory service centers in California, Connecticut, Florida, Massachusetts, Michigan, New Jersey, New York, and Ontario, Canada, our specialized technical staff maintains our products via long-term service contracts. To date we have shipped over 3,200 units, some of which have been operating for almost 35 years. We established a service center in Toronto, Canada in August 2020 to support our existing fleet of chillers and cogeneration units including 26 cogeneration units sold in this territory during 2020 to serve public housing facilities. </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We provide service maintenance contracts, parts sales, and installation for our products through a network of eleven well-established field service centers in California, the Midwest, the Northeast, the Southeast and in Toronto, Canada.</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">  </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">These centers are staffed by our full-time technicians, working from local leased facilities which provide office and warehouse space </span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="margin-bottom:6pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">5</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">TECOGEN INC.</span></div></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">for inventory. Most of our service revenue is in the form of annual service contracts which typically provide all-inclusive &#8220;bumper-to-bumper&#8221; coverage, with service fees based on equipment operating hours for the relevant period.</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%"> </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Customers are therefore invoiced in level, predictable amounts without unforeseen add-ons for unscheduled repairs or engine replacements.</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We strive to maintain product service contracts for many years and work to maintain the integrity and performance of our equipment.</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">  </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our products have a long history of reliable operation.</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">  </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Since 1995, we have had a remote monitoring system in place that connects to hundreds of units daily and reports their &#8220;availability,&#8221; which is the amount of time a unit is running or is ready to run.</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">  </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In 2017, we improved our remote monitoring system capability through the introduction of a cloud-based system called CHPInsight.</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%"> </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The CHPInsight platform allows us to collect, analyze and manage data regarding equipment operation continuously and in real time, providing improved insight into the functionality of our CHP fleet. Our factory service agreements have directly impacted these positive results and represent an important long-term annuity-like stream of revenue for us.</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">New equipment sold beginning in 2016 and select upgrades to the existing installed equipment fleet includes an industrial internet solution which enables Tecogen to collect, analyze, and manage valuable asset data continuously and in real-time. This provides the service team with improved insight into the functionality of our installed CHP fleet. Specifically, it enables the service department to perform remote monitoring and diagnostics and to view system results in real time via a computer, smart phone or tablet. Consequently, we can utilize monitoring data better, ensuring customers are capturing maximum possible savings and efficiencies from their installation. Through constant monitoring and analysis of equipment data, Tecogen expects to enhance the performance of installed equipment by ensuring machinery consistently operates at peak performance and is available to deliver maximum potential value for customers. In 2018, we migrated our cloud-based system from a third-party system to our CHP Insight&#174; system developed in-house to access and store operating data on the cloud and provide user interface features specific to CHP operation as well as sophisticated data analysis tools.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Energy Production </span></div><div style="text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our wholly owned subsidiary, ADGE, distributes, owns and operates clean, on-site energy systems that produce electricity, hot water, heat, and cooling. ADGE owns the equipment that it installs at customers' facilities and sells the energy produced by these systems to customers on a long-term contractual basis.</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">  </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">ADGE utilizes energy equipment supplied by Tecogen and other cogeneration manufacturers. Our cogeneration systems produce electricity from an internal combustion engine driving a generator, while the heat from the engine and exhaust is recovered and typically used to produce heat and hot water for use on-site. ADGE also distributes and operates water chiller systems for building cooling applications that operate in a similar manner, except that the engines in the water chiller systems drive a large air-conditioning compressor while recovering heat for hot water.</span></div><div style="text-align:justify;text-indent:36pt"><span><br/></span></div><div style="text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Cogeneration systems reduce the amount of electricity that a customer must purchase from the local utility and produce valuable heat and hot water on-site to use as required. By simultaneously providing electricity, hot water, and heat, cogeneration systems also have a significant positive impact on the environment by reducing the carbon dioxide, or CO</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.47pt;font-weight:400;line-height:120%;position:relative;top:1.4pt;vertical-align:baseline">2</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">, produced by replacing a portion of the traditional energy supplied by the electric grid and conventional hot water boilers. Distributed generation of electricity, or DG, often referred to as cogeneration systems or combined heat and power systems, or CHP, is an attractive option for reducing energy costs and increasing the reliability of available energy.</span></div><div style="text-align:justify"><span><br/></span></div><div style="text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We believe that the primary opportunity for our cogeneration and chiller DG systems are in regions of the U.S. where commercial electricity rates range between $0.14 and $0.28 per kW hour, or kWh, which are predominantly in the Northeast, Mid-Atlantic, Florida, California, and parts of Canada. Attractive DG economics are currently attainable in applications that include hospitals, nursing homes, multi-tenant residential housing, hotels, schools and colleges, recreational facilities, food processing plants, dairies, and other light industrial facilities. We also believe that the largest number of potential DG users in the U.S. require less than 1 MW of electric power and less than 1,200 tons of cooling capacity. We are able to design our systems to suit a particular customer's needs because of our ability to place multiple units at a site. This approach is part of what allows our products and services to meet changing power and cooling demands throughout the day (also from season-to-season) and greatly improves efficiency.</span></div><div style="text-align:justify;text-indent:36pt"><span><br/></span></div><div style="text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our Energy Production segment sells energy in the form of electricity, heat, hot water and cooling to our customers under long-term sales agreements which represented 9.3% of our consolidated revenues for the years ended December&#160;31, 2024 and 2023. See Note 18. "Segments" of the Notes to the Consolidated Financial Statements.</span></div><div style="text-align:justify;text-indent:36pt"><span><br/></span></div><div style="margin-bottom:6pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Sales &amp; Distribution</span></div><div style="text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our products are sold directly to end-users by our sales team and by established independent sales agents and representatives. We have entered into agreements with manufacturers' representatives and outside sales representatives who are </span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="margin-bottom:6pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">6</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">TECOGEN INC.</span></div></div><div style="text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">compensated on a commission basis for designated territories and product lines.</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%"> </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">During the years ended December&#160;31, 2024 and December&#160;31, 2023, no customer accounted for more than 10% of our revenues. We typically sell our chiller products through our manufacturing representatives with assistance from our internal sales team. Our combined heat and power products are typically sold direct to end customers by our internal sales team. </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Markets and Customers</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:35.7pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Worldwide, stationary power generation applications vary from huge central stationary generating facilities (traditional electric utility providers) to back-up generators as small as 2 kW.</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">  </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Historically, power generation in most developed countries such as the United States has been part of a regulated central utility system utilizing high-temperature steam turbines powered by fossil-fuels.</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%"> </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">This turbine technology, though steadily refined over the years, reached a maximum efficiency (where efficiency means electrical energy output per unit of fuel energy input) of approximately 40% to 50%.</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:35.7pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Distributed power generation </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">(&#8220;DG&#8221;)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> has been successfully implemented by others in large industrial installations over 10 Megawatts </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">("MW")</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">, where the market has been growing for a number of years and is increasingly being accepted in smaller sized units because of technology improvements, increased energy costs, and better DG economics. We believe that our target market for DG, users of up to 1 MW, has been barely penetrated and that the reduced reliability of the utility grid and increasing cost pressures experienced by energy users will drive our near-term growth and penetration of this market.</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:35.7pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Most potential new customers in the U.S. require less than 1 MW of electric power and less than 1,200 tons of cooling capacity.  We are targeting customers in states with high electricity rates in the commercial sector, such as California, Connecticut, Massachusetts, New Hampshire, New Jersey, and New York.  Most of these states also have high peak demand rates, which favor utilization of our modular units in groups so as to assure redundancy and peak demand savings.   Governmental agencies in some of these regions may also provide generous rebates that can improve the economic viability of our systems. </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">  </span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Developments related primarily to the deregulation of the utility industry as well as significant technological advances have broadened the range of power supply choices available to all types of customers. Cogeneration, which harnesses waste energy from power generation processes and puts it to work for other uses on-site, can boost the energy conversion efficiency to nearly 90%, a better than two-fold improvement over the average efficiency of a fossil fuel plant. Generating power at the point of consumption rather than through central plants eliminates the cost, complexity, inefficiency, and risks associated with electric transmission and distribution. The implications of the CHP distributed generation approach are significant. Management believes that if cogeneration were applied on a large scale, global fuel usage might be dramatically curtailed and the utility grid made more resilient. </span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our CHP products address inherent inefficiency limitations of central power plants by siting generation closer to the loads being served.  This allows customers with energy intensive building or processes to reduce energy costs and operate with a lower carbon footprint.  Furthermore, with technology we have introduced, like the Ultera low-emissions technology, our products can now contribute to better air quality at the local level while complying with the strictest air quality regulations in the United States.</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Cogeneration and chiller products can often reduce the customer&#8217;s operating costs (for the portion of the facility loads to which they are applied) by approximately 30% to 60% based on management estimates, which provides an excellent rate of return on the equipment&#8217;s capital cost in many areas of the country with high electricity rates.  Our chillers are especially suited to regions where utilities impose extra charges during times of peak usage, commonly called &#8220;demand&#8221; charges.  In these cases, the gas-fueled chiller reduces the use of electricity during the summer, the costliest time of year.</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On-site CHP not only eliminates the loss of electric power during transmission but also offsets the capital expense of upgrading or expanding the utility infrastructure. Decentralizing power generation or reducing energy requirements at a customer's site not only relieves the capacity burden on existing power plants, but also lessens the burden on transmission and distribution lines.  This ultimately improves the grid&#8217;s reliability and reduces the need for costly upgrades.</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Traditional markets for CHP systems are buildings with long hours of operation and with corresponding demand for electricity or cooling and heat. Traditional customers for our cogeneration systems include controlled environment agriculture, hospitals, nursing homes, colleges, universities, health clubs, spas, hotels, motels, office and retail buildings, food and beverage processors, multi-unit residential buildings, laundries, ice rinks, swimming pools, factories, municipal buildings, and military installations. </span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Traditional customers for our chillers, refrigeration compressors and heat pumps overlap with those for our cogeneration systems.  Engine-driven chillers are often used as replacements for aging electric chillers because they both occupy similar amounts of floor space and require similar maintenance schedules. This is also the case with refrigeration compressors. </span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="margin-bottom:6pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">7</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">TECOGEN INC.</span></div></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Inflation Reduction Act of 2022 increased Federal tax credits, including the investment tax credit (ITC), to up to thirty percent (30%) of the project cost for projects incorporating certain low emission technologies, including CHP equipment, that begin construction before January 1, 2025 and provides for an additional ten percent (10%) credit if the taxpayer satisfies additional requirements relating to domestic content. State and local governments and tax-exempt entities may also benefit from certain tax credits through direct payments or transfers of tax credits to unrelated third parties. This particular new direct pay option is especially impactful given the fact that many ideal facilities for CHP systems are not-for-profit, including many healthcare and hospital facilities, schools and universities, as well as recreation centers. These customers historically have not been able to benefit from previous iterations of the ITC. Under the federal definition for CHP systems, all of our products, including our air-conditioning and cooling models (Tecochill and Tecofrost) qualify for the tax credit when heat recovery is incorporated into the system design.  </span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As more load is added to the utility grid in the form of data centers, EV charging, and other demands for power, customers are facing power constraints. We believe that these power constrained customers, in particular data centers and industrial facilities represent a significant new market for growth opportunity.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Competition</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The markets for our products are highly competitive, although we believe that we offer customers a suite of premier best-in-class clean energy and thermal solutions. </span></div><div style="margin-bottom:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">InVerde and Tecopower</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our combined heat and power products that produce electricity and hot water compete with the utility grid, existing technologies such as other reciprocating engines and microturbine CHP systems, and other emerging distributed generation technologies including solar power, wind-powered systems, and fuel cells. Our products are highly competitive between 60KW and 1.5MW in electrical generation capacity. In this size range we have other reciprocating engine competitors, although we have strong competitive advantages when it comes to ease of utility interconnection, ease of installation in tight spaces and our microgrid capabilities. We believe that Capstone Turbine Corporation is the only microturbine manufacturer with a commercial presence in CHP. </span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Although operating solar and wind powered systems produce no emissions, the main drawbacks to these renewable powered systems are their dependence on weather conditions, their need for energy storage systems or reliance on backup utility grid-provided power, and high capital costs that can often make these systems uneconomical without government subsidies. Similarly, while the market for fuel cells is still developing, a number of fuel cell companies are focused on markets similar to ours.  Fuel cells, like solar and wind powered systems, have received higher levels of incentives for the same type of applications as CHP systems in many territories. We believe that, notwithstanding these higher government incentives, our CHP solutions provide a better value and more robust solution to end users in most applications.</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Additionally, our patents relating to the Ultera ultra-low emissions technology give our products a strong competitive advantage in markets where severe emissions limits are imposed or where very clean power is favored, such as New Jersey, California, and Massachusetts.</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Overall, we compete with end users&#8217; other options for electrical power, heating, and cooling on the basis of our technology&#8217;s ability to:</span></div><div style="margin-bottom:6pt;padding-left:54pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:115%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:115%;padding-left:14.5pt">Provide a more efficient solution that results in operational savings for a facility's energy needs including cooling, electricity and hot water;</span></div><div style="margin-bottom:6pt;padding-left:54pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:115%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:115%;padding-left:14.5pt">Provide power when a utility grid is not available or goes out of service;</span></div><div style="margin-bottom:6pt;padding-left:54pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Reduce emissions of criteria pollutants (NOx and CO) to near-zero levels and cut the emission of greenhouse gases such as carbon dioxide due to increased efficiencies compared to the electric grid;</span></div><div style="margin-bottom:6pt;padding-left:54pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Provide reliable on-site power generation, heating and cooling services.</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We believe that no other company has developed a product that provides the features and benefits provided by our inverter-based InVerde e+, which offers UL-certified grid connection and sophisticated off-grid and microgrid capabilities.  An inverter-based product with at least some of these features has been introduced by others, but we believe that they face serious challenges in duplicating all the unique features of the InVerde e+.  Competitors' product development time and costs could be significant. We have exclusive license rights to Microgrid algorithms developed by the University of Wisconsin researchers through July 26, 2027. We have exclusive rights for engine-driven systems utilizing natural gas or diesel fuel in the application of power generation where the per-unit output is less than 500kW. The software allows our products to be integrated as a Microgrid, where multiple InVerde e+ units can be seamlessly isolated from the main utility grid in the event of an outage and re-connected to it afterward. We expect that our patents and license for Microgrid software will deter others from offering certain important functions. See </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">"Business-Intellectual Property."</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="margin-bottom:6pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">8</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">TECOGEN INC.</span></div></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Similarly, in the growing Microgrid segment, neither fuel cells nor microturbines can respond to changing energy loads when the system is disconnected from the utility grid.  Engines such as those used in our equipment inherently have a fast-dynamic response to step load changes, which is why they are the primary choice for emergency generators. Fuel cells and microturbines require additional energy storage systems to be utilized for time-limited off-grid operation, giving our engine-driven solutions an advantage for Microgrid and resiliency applications.  </span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Tecochill Chillers</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our Tecochill line of chillers are the only gas-engine-driven chillers available on the market.  Natural gas can also fuel absorption chillers, which use fluids to transfer heat without an engine drive.  However, engine driven chillers continue to have an efficiency advantage over absorption machines. Tecochill chillers reach efficiencies well above levels achieved by similarly sized absorption systems.  Low natural gas prices in the United States improve the economics of natural gas-fueled chillers while their minimal electric demand on backup power systems make them ideal for facilities requiring critical precision climate control. In 2023, we expanded our Tecochill range of products with the introduction of a hybrid air cooled chiller based on the inverter design used in the InVerde. The hybrid-drive air-cooled chiller will take simultaneous inputs from the electrical grid and the natural gas engine so that it can operate with the lowest cost and/or greenhouse gas footprint at any time based on changing conditions. We anticipate initial delivery of our hybrid air cooled chiller in the first half of fiscal 2025.</span></div><div style="margin-bottom:6pt;margin-top:6pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Research &amp; Development</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our long and rich research and development tradition and sustained programs have allowed us to cultivate deep engineering expertise. We have strong core technical knowledge that is critical to product support and continuous product improvement efforts.  Our TecoDrive engine, permanent magnet generator, cogeneration and chiller products, InVerde, pumps, Ultera emissions control system, and our hybrid-drive air-cooled chiller were all created and optimized in-house with support from third-parties.</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We continue to seek alliances with utilities, government agencies, universities, research facilities, and manufacturers. We have succeeded in developing new technologies and products in collaboration with several entities, including:</span></div><div style="margin-bottom:9pt;padding-left:54pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Sacramento Municipal Utility District&#160;has provided test sites to us since 2010.</span></div><div style="margin-bottom:9pt;padding-left:54pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Southern California Gas Company and San Diego Gas &amp; Electric Company, each a Sempra Energy subsidiary, have granted us research and development contracts since 2004.</span></div><div style="margin-bottom:9pt;padding-left:54pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Department of Energy&#8217;s Lawrence Berkeley National Laboratory, with whom we have had&#160;research and development contracts since 2005, including ongoing Microgrid development work related to the InVerde.</span></div><div style="margin-bottom:9pt;padding-left:54pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Eastern Municipal Water District in Southern California has co-sponsored demonstration projects to retrofit both a natural-gas powered municipal water pump engine and a biofuel powered pumping station engine with the Ultera low emissions technology since 2012. </span></div><div style="margin-bottom:9pt;padding-left:54pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Consortium for Electric Reliability Technology Solutions&#160;executed research and development contracts with us, and has provided a test site to us since 2005.</span></div><div style="margin-bottom:9pt;padding-left:54pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">California Energy Commission&#160;with whom we had a&#160;research and development contract from 2004 until March 2013.</span></div><div style="margin-bottom:9pt;padding-left:54pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">The AVL California Technology Center performed a&#160;support role in research and development contracts as well as internal research and development on our Ultera emission control system from August 2009 to November 2011.  In addition, the Center supported our research on emissions from gasoline vehicles from January of 2016 through October 2017. AVL researchers collaborated with our engineers on several peer reviewed papers published by technology association SAE International in 2017 and 2018. </span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Also, we continue to leverage our resources with government and industry funding, which has yielded a number of successful developments, including the Ultera low-emissions technology, sponsored by the California Energy Commission and Southern California Gas Company. Pursuant to the terms of the grants from the California Energy Commission, the California Energy Commission has a royalty-free, perpetual, non-exclusive license to these technologies for government purposes.   </span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our current internal R&amp;D efforts are focused on the hybrid-drive air-cooled chiller that utilizes the basic inverter design used in the InVerde e+. Management believes that this chiller will address a significant market segment that is currently not addressed by our existing Tecochill product. For the years ended December 31, 2024 and 2023, we spent $961,837 and $840,011, respectively, on research and development activities.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="margin-bottom:6pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">9</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">TECOGEN INC.</span></div></div><div style="margin-bottom:6pt;margin-top:6pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Intellectual Property</span></div><div style="text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:174%">Currently, we hold thirteen United States patents for our technologies:</span></div><div style="margin-bottom:9pt;padding-left:54pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">10,774,720: &#8220;NOx Reduction Without Urea Using a Dual-Stage Catalyst System with Intercooling in Vehicle Gasoline Engines.&#8221; This patent, granted in September 2020, improves the removal of Non-Methane Organic Gases (NMOG) and Carbon Monoxide (CO) from vehicle emissions.  The improved performance, consisting of up to 90% reductions in NMOG and CO results from increased oxidation of NMOG and CO due to a lower temperature environment in the second stage catalyst.</span></div><div style="margin-bottom:9pt;padding-left:54pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">10,774,724: &#8220;Dual Stage Internal Combustion Engine Aftertreatment System Using Exhaust Gas Intercooling and Charger Driven Air Ejector.&#8221; This patent, granted in September 2020, relates to the use of turbo compressors and exhaust gas intercoolers in turbocharged engines to reduce the complexity and cost of Ultera emissions reduction systems. </span></div><div style="margin-bottom:9pt;padding-left:54pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">9,995,195: &#8220;Emissions control systems and methods for vehicles.&#8221;&#160;This patent, granted in June 2018, is a method for vehicle cold start to enhance the removal of CO and hydrocarbons emissions, which are extremely problematic for cold engines. &#160;Air is injected in the exhaust between the engine&#8217;s close-coupled catalyst and underbody catalyst. Once the engine is warmed (&gt; 500 F exhaust) this air stream is shut off. This method synergizes well with the Ultera system by utilizing the injection air feed for an alternative purpose during engine start.</span></div><div style="margin-bottom:9pt;padding-left:54pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">9,956,526: &#8220;Poison-Resistant Catalyst and Systems Containing Same.&#8221;  This patent, granted in May 2018, relates to a special catalyst formulation that is resistant to contaminant induced corrosion in conditions like those of the Ultera second stage. These poisons or contaminants are most commonly sulfur compounds. </span></div><div style="margin-bottom:9pt;padding-left:54pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">9,702,306: &#8220;Internal Combustion Engine Controller.&#8221;  This patent granted in July of 2017 relates to the unique control methodology used in the InVerde e+ CHP unit that maximizes engine fuel economy under variable speed operation. </span></div><div style="margin-bottom:9pt;padding-left:54pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">9,470,126: "Assembly and method for reducing ammonia in exhaust of internal combustion engines."  This patent, granted in October 2016, is related to the Ultera emission control system applicable to all our products.</span></div><div style="margin-bottom:9pt;padding-left:54pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">9,856,767: &#8220;Systems and methods for reducing emissions in exhaust of vehicles and producing electricity." This patent, filed in November 2015 and published in March 2016, relates to the development of the Ultera emission control system for vehicle applications.</span></div><div style="margin-bottom:9pt;padding-left:54pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">9,121,326: &#8220;Assembly and method for reducing nitrogen oxides, carbon monoxide and hydrocarbons in exhausts of internal combustion engines.&#8221;  This patent, granted in September 2015, is related to the Ultera emission control system applicable to all our products.</span></div><div style="margin-bottom:9pt;padding-left:54pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">9,631,534: "Assembly and Method for reducing nitrogen oxides, carbon monoxide, hydrocarbons and hydrocarbon gas in exhausts of internal combustion engines and producing and electrical output." This patent granted in April 2017, is related to the Ultera emission control system applicable to all our products.</span></div><div style="margin-bottom:9pt;padding-left:54pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">8,578,704: &#8220;Assembly and method for reducing nitrogen oxides, carbon monoxide, and hydrocarbons in exhausts of internal combustion engines.&#8221;  This patent, granted in November 2013, is for the Ultera emission control system applicable to all our products.</span></div><div style="margin-bottom:9pt;padding-left:54pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">7,243,017: &#8220;Method for controlling internal combustion engine emissions.&#8221;  This patent, granted in July 2007, applies to the specific algorithms used in our engine controller for metering fuel usage to obtain the correct combustion mixture and is technology used by most of our engines. </span></div><div style="margin-bottom:9pt;padding-left:54pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">7,239,034: "Engine driven power inverter system with cogeneration."  This patent granted in July 2007, pertains to the utilization of an engine-driven CHP module combined with an inverter and applies to our InVerde product specifically.</span></div><div style="margin-bottom:9pt;padding-left:54pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">11,936,327: "Hybrid Power System With Electric Generator and Auxiliary Power Source."  This patent, granted in March 2024, pertains to joining two power sources to optimize power use from the grid or another source by way of a proprietary DC-DC voltage converter, inverter and controller circuits.</span></div><div style="margin-bottom:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our patents expire between 2025 and 2042.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="margin-bottom:6pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">10</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">TECOGEN INC.</span></div></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In addition, we have licensed specific rights to Microgrid software algorithms developed by University of Wisconsin researchers for which we pay royalties to the assignee, The Wisconsin Alumni Research Foundation (WARF).  Pursuant to U.S. Patent 7,687,937, and titled &#8220;Control of Small Distributed Energy Resources&#8221;, granted in 2010 and expires on July 26, 2027. Our exclusive rights are for engine-driven systems utilizing natural gas or diesel fuel in the application of power generation where the per-unit output is less than 500 kW. The software allows our products to be integrated as a Microgrid, where multiple InVerde units can be seamlessly isolated from the main utility grid in the event of an outage and re-connected to it afterward. The licensed software allows us to implement such a Microgrid with minimal control devices and associated complexity and cost. We consider the Microgrid software algorithm licensed from WARF to be a key feature of our InVerde product, and one that would be difficult to duplicate outside the patent. We pay WARF a royalty for each cogeneration module sold using the licensed technology. Such royalty payments have been in the range of $5,000 to $15,000 on an annual basis through the year ended December&#160;31, 2024. In addition, WARF reserved the right to grant non-profit research institutions and governmental agencies non-exclusive licenses to practice and use, for non-commercial research purposes, the technology developed by us that is based on the licensed software.</span></div><div style="text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We consider our patents and licensed intellectual property to be important in the operation of our business.  The expiration, termination, or invalidity of one or more of these patents may have a material adverse effect on our business.  </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">One other company has developed a product that seeks to compete with our inverter-based InVerde, although it does not offer all of the same benefits and features offered by our InVerde products. We anticipate that an inverter-based product with at least some of the features offered by our InVerde products will be introduced by others, but we believe that our competitors will face serious challenges in duplicating the InVerde and that product development time and costs would likely be significant. </span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In 2013, we purchased rights to designs and technology, including patents granted or pending for our permanent magnet generators.  A key component of our InVerde module uses this acquired technology.</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our patents for the Ultera low-emissions control technology applies to all our gas engine-driven products and may have applications to other rich-burn spark-ignited internal combustion engines. We have been granted patents for this technology in Europe, Australia, Brazil, Canada, Japan, Mexico, Korea and Singapore.</span></div><div style="margin-bottom:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Copyrights</span></div><div style="margin-bottom:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our control software is protected by copyright laws or through an exclusive license agreement.  </span></div><div style="margin-bottom:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Trademarks</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We have registered the brand names of our equipment and logos used on our equipment.  These registered and pending trademarks include Tecogen, Tecochill, Tecopower, Ultera, InVerde, InVerde e+  and the associated logos.  We will continue to trademark our product names and symbols. </span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We rely on treatment of our technology as trade secrets through confidentiality agreements, which our employees and vendors are required to sign.  Also, we rely on non-disclosure agreements with others that have or may have access to confidential information to protect our trade secrets and proprietary knowledge. </span></div><div style="margin-bottom:6pt;margin-top:6pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Sourcing &amp; Manufacturing</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We are focused on continuously strengthening our manufacturing processes and increasing operational efficiencies.  Many of the components used in the manufacture of our highly-efficient clean energy equipment are readily fabricated from commonly available raw materials or are standard available parts sourced from multiple suppliers. We believe that adequate supplies exist to meet our near to medium term manufacturing needs. We have an on-going focus on developing and implementing new systems to simplify our manufacturing processes, product sourcing methods, and our supply chain. </span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On March 31, 2023, we entered into two lease agreements for two adjacent buildings, located in North Billerica, Massachusetts, containing approximately 26,412 square feet of manufacturing, storage and office space to serve as our headquarters and manufacturing facilities. In April, 2024, we relocated our manufacturing operations and corporate offices to 76 Treble Cove Road, North Billerica, MA. We have a total of approximately 21,000 square feet of manufacturing and warehouse space at the North Billerica, Massachusetts facility. The lease agreements which commenced on January 1, 2024, provide for initial lease terms of five (5) years, expiring on December 31, 2028, with two successive options to renew for additional terms of five (5) years.  </span></div><div style="margin-bottom:6pt;margin-top:6pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Government &amp; Regulation</span></div><div style="margin-bottom:3pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Several kinds of federal, state and local government regulations affect our products and services, including but not exclusive to:</span></div><div style="margin-bottom:6pt;padding-left:54pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">product safety certifications and interconnection requirements;</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="margin-bottom:6pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">11</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">TECOGEN INC.</span></div></div><div style="margin-bottom:6pt;padding-left:54pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">air pollution regulations which govern the emissions allowed in engine exhaust;</span></div><div style="margin-bottom:6pt;padding-left:54pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">state and federal incentives for CHP technology; </span></div><div style="margin-bottom:6pt;padding-left:54pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">various local building and permitting codes and third-party certifications;</span></div><div style="margin-bottom:6pt;padding-left:54pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">electric utility pricing and related regulations; and</span></div><div style="margin-bottom:6pt;padding-left:54pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">federal and state laws regarding the legalization of cannabis for medicinal and recreational use.</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our markets can be positively or negatively impacted by the effects of governmental and regulatory matters. We are impacted not only by energy policy, laws, regulations and incentives of governments in the markets in which we sell, but also by rules, regulations and costs imposed by utilities. Utility companies or governmental entities may place barriers on the installation or interconnection of our products with the electric grid.  Further, utility companies may charge additional fees to customers who install on-site power generation to reduce the electricity they take from the utility and to preserve electric capacity available from the grid for back-up or standby purposes.  These types of restrictions, fees or charges could hamper the ability to install or effectively use our product or increase the cost to our potential customers for using our systems.  This could make our systems less desirable, adversely impacting our revenue and profitability.  In addition, utility rate reductions can make our products less competitive, causing a material adverse effect on our operations.  These costs, incentives and rules are not always the same as those faced by technologies with which we compete.</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Similarly, rules, regulations, laws and incentives could also provide an advantage to our distributed generation solutions as compared with competing technologies because they enable compliance in a lower cost, more efficient manner with reduced emissions and higher fuel efficiency which helps our customers combat the effects of global warming. We may benefit from increased government regulations that impose tighter emission and fuel efficiency standards.  We encourage investors and potential investors to carefully consider the risks described under "Item 1A. Risk Factors" below regarding various aspects of the regulatory environment and other related risks.</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our products are well-suited to meet the needs of the rapidly emerging indoor agriculture market, including cannabis and other high volume leafy greens.  To date our focus in the indoor agricultural market has primarily involved cannabis, a product with high revenue generating potential. However, we have sold to other indoor agricultural growers, and we believe that the indoor food production market will provide significant opportunities for us. The indoor agriculture market in particular has the potential to be a major driver of growth as states move to legalize the use of cannabis for medicinal purposes and recreational use. However, under the Controlled Substances Act (CSA) cannabis continues to be categorized as a Schedule I drug, so that cannabis growers continue to face significant uncertainty regarding their ability to conduct business.</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">First passed by Congress in 2014, the Rohracher-Farr Amendment is an amendment to the annual appropriations bill that, among other things, funds the Department of Justice. It prohibits the US Attorney General from using funds to prosecute the medical use of cannabis. It does not address recreational use. On January 4, 2018, US Attorney General Jeff Sessions rescinded the Cole memo. Written in 2013, the Cole memo had directed US Attorneys not to allocate resources to prosecute "individuals whose actions are in clear and unambiguous compliance with existing state laws" regarding the cannabis market. As of the date of the filing of this report, we are not aware of any US Attorney who has taken action against participants in the recreational cannabis market operating in accordance with state law. The uncertainty we face regarding the potential for growth from the sales to the cannabis industry is due in part to uncertainty regarding prosecutorial priorities of the current Presidential administration as well as the ability of cannabis growers to obtain funding in an environment where national bankers are not permitted to fund cannabis growth facilities.</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our Energy Production segment is subject to extensive government regulation. We are required to file for local construction permits (electrical, mechanical and the like) and utility interconnects, and are required to make various local and state filings related to environmental emissions. </span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In the past, many electric utility companies have raised opposition to distributed generation of energy, a critical element of our business model. Such resistance has generally taken the form of stringent standards for interconnection and the use of target rate structures as disincentives to combined generation of on-site power and heating or cooling services. A distributed generation facility's ability to obtain reliable and affordable back-up power through interconnection with the grid is essential to our business model. Utility policies and regulations in most states often do not accommodate widespread on-site generation. Barriers erected by electric utility companies and unfavorable regulations, where applicable, make our ability to connect to the electric grid at customer sites more difficult or uneconomic and is an impediment to the growth of our business. The development of our business could be adversely affected by any slowdown or reversal in the utility deregulation process or by difficulties in negotiating back-up power supply agreements with electric providers in the areas where we seek to do business. </span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span><br/></span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span><br/></span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="margin-bottom:6pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">12</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">TECOGEN INC.</span></div></div><div style="margin-bottom:6pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Environmental Matters</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We are regulated by federal, state and international environmental laws governing our use, transport and disposal of substances and control of emissions. In addition to governing our manufacturing and service operations, these laws often impact the development of our products, including, but not limited to, required compliance with air emissions standards applicable to internal combustion engines. We have made, and will continue to make, the necessary research and development and capital expenditures to comply with these emissions standards.</span></div><div style="margin-bottom:6pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Human Capital Resources</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We believe our success in delivering energy efficient, ultra clean cogeneration systems, chillers and energy production services relies on our culture, values, and the creativity and commitment of our people. We strive to maintain healthy, safe, and secure working conditions and a workplace where our employees are treated with respect and dignity. Our vision is to create an inclusive, diverse and authentic community that inspires collaboration, integrity, engagement, and innovation. We are striving to create employee experience that offers opportunity for personal and professional growth, and enables work-life balance that aligns with our core values.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Employee Health and Safety</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:115%">Employee health and safety continues to be a priority in every aspect of our business. We have taken a common-sense approach to safety that helps us understand and reduce hazards in our business. Training, risk assessment, safety coaching, and employee engagement are all programs that help us consistently manage our facility and employee safety. As resources are available, we expect to continue to expand and evolve our safety programs to better meet our employee needs and workplace conditions as our business grows. </span></div><div style="text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:115%">We understand the benefits of employee health and safety and continue to invest in programs, products, and resources. We also understand the environment of trust and fairness that exists when information is openly shared. We also continue to invest in products and services to meet the health and safety needs of our customers and communities.</span></div><div style="text-align:justify;text-indent:36pt"><span><br/></span></div><div style="text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Talent Acquisition and Development</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:115%">Our values are integral to our employment process and serve as guideposts for leadership. The ultimate goal is straightforward: find great people, ask them to join, and give them a reason to stay. Reasons include fair compensation, a complete array of employee benefits to include: health, dental and life insurance; short-term and long-term disability insurance; HSA account funding; generous time off benefits; and the grant of options or awards to purchase shares of our common stock. We use web-based training for all of our employees.  </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Employees</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As of December&#160;31, 2024, we employed 91 full-time employees and 1 part-time employee, including 5 sales and marketing personnel, 61 service personnel, 17 manufacturing personnel and 9 finance and administrative personnel. Eleven of our New Jersey service employees are represented by a collective bargaining agreement which expires on December 31, 2025 and thereafter renews annually unless terminated by either party by written notice within sixty days prior to the expiration date.  </span></div><div style="margin-bottom:6pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Working Capital Requirements</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our ability to maintain sufficient working capital is highly dependent upon achieving expected operating results and cash flows. Failure to achieve the operating results could have a material adverse effect on our working capital, our ability to obtain financing, and our operations in the future. </span></div><div style="text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The consolidated financial statements have been prepared in accordance with U.S. generally accepted accounting </span></div><div style="margin-bottom:6pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">principles assuming that we will continue as a going concern, which contemplates the realization of assets and the settlement of obligations in the normal course of business. As of December&#160;31, 2024, our cash and cash equivalents were $5,405,233, compared to $1,351,270 at December&#160;31, 2023, an increase of $4,053,963. For the year ended December&#160;31, 2024 we generated $4,060,547 in cash from operations and net operating losses of $4,534,087, due to a decrease in Products revenue and gross margin. Working capital at December&#160;31, 2024 was $5,329,650, compared to $9,822,546 at December&#160;31, 2023, a decrease of $4,492,896, and our accumulated deficit was $47,639,894. </span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As a result of the above factors, management has performed an analysis to evaluate our ability to continue as a going concern for one year after the financial statements issuance date. Management&#8217;s analysis includes forecasting future revenues, expenditures and cash flows, taking into consideration past performance as well as key initiatives recently undertaken. Our forecasts are dependent on our ability to maintain margins based on the our ability to close on anticipated new business, leverage existing working capital, and effectively manage expenses. Anticipated new business includes the sale of newly developed hybrid-drive air-cooled chillers and the acquisition of additional maintenance service contracts in February 2024 and </span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="margin-bottom:6pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">13</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">TECOGEN INC.</span></div></div><div style="margin-bottom:6pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">May 2024 (see Note 5. "Aegis Contract and Related Asset Acquisition").  We also anticipate the expansion of markets served by our chiller products into the data center market, which is currently experiencing power constraints. </span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our backlog at December&#160;31, 2024 was $12,336,248. We have drawn $1,500,000 under the note subscription agreements with related parties (see Note 11. "Related Party Notes") to finance our facilities move to North Billerica, Massachusetts, continued development of the hybrid-drive air-cooled chiller product, and marketing expenses associated with identifying opportunities in the data center market. </span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Based on management's analysis, we believe that cash flows from operations will be sufficient to fund operations over the next twelve months. </span></div><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">           </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our liquidity and cash flows are discussed in "Item 7. Management's Discussion and Analysis of Financial Condition and Results of Operations."</span></div><div style="margin-bottom:6pt;margin-top:6pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Available Information</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our internet website address is http://www.tecogen.com. Our Annual Reports on Form 10-K, Quarterly Reports on Form 10-Q, Current Reports on Form 8-K and other reports and filings with the SEC are available free of charge on our website as soon as reasonably practicable after the reports are filed with, or furnished to, the SEC. Information contained on our website is not incorporated by reference into this Annual Report on Form 10-K or our other securities filings with the SEC. The SEC maintains an internet website at www.sec.gov which contains reports, proxy and information statements, and other information regarding issuers that file electronically with the SEC. </span></div><div id="ic4bfd2faeedf4470adc28b9f3bba3b4c_13"></div><div style="margin-bottom:6pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%;text-decoration:underline">Item 1A.  Risk Factors</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Our business operations, financial condition, results of operations and stock price may be affected by a number of factors. In addition to the other information in this Annual Report on Form 10-K, the following factors and the information contained under the heading ''Cautionary Note Concerning Forward-Looking Statements'' should be considered in evaluating our company and our business.   The risks described below may not be the only risks we face.  Additional risks that we do not yet know of, or that we currently think are immaterial, may also impair our business operations or financial results.  If any of the events or circumstances described in the following risk factors occur, our business, financial condition and results of operations could suffer and the trading price of our common stock could decline.</span></div><div style="margin-bottom:6pt;margin-top:6pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Risks Relating to Our Business and Financial Condition</span></div><div style="margin-bottom:3pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Our operating history is characterized by losses and there can be no assurance we will be able to increase our sales and sustain profitability in the future.</span></div><div style="margin-bottom:3pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We have historically incurred annual net losses, including  net loss of $4,760,238 in 2024. We have an accumulated deficit as of December 31, 2024 of $47,639,894 and working capital of $5,329,650.  Our business is capital intensive and, because our products generally are built to order with customized configurations, the lead time to build and deliver a unit can be significant. We may be required to purchase key components long before we can deliver a unit and receive payment.  Changes in customer orders or lack of demand may also impact our profitability.  There can be no assurance we will be able to increase our sales and achieve and sustain profitability in the future. </span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">We may need to raise additional financing if the cash generated from our operations is insufficient to fund our continued operations, which additional capital may result in restrictions on our operations or substantial dilution to our stockholders, and which capital may not be available to us or on terms acceptable to us or at all.</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">During the year ended December&#160;31, 2024, our revenues were negatively impacted due to supply chain issues, project deferrals and the reduced manufacturing capacity due to our plant relocation in 2024.  </span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">During 2024, we have funded our operations through cash generated from our operations and through financing transactions, including related party loans from our directors. See Note 11. "Related Party Notes" of the Notes to the Consolidated Financial Statements. We cannot be certain if our operations will generate sufficient cash to fund our ongoing operations or the growth of our business.  To the extent cash generated from operations in the future is insufficient to fund our operating requirements, we will be required to seek additional outside financing. Our inability to obtain necessary capital or financing to fund these working capital needs may adversely affect our ability to expand our operations.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="margin-bottom:6pt;text-align:center;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">14</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">TECOGEN INC.</span></div></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our business is capital intensive and, because our products are built to order with customized configurations, the lead time to build and deliver a unit can be significant. We may be required to purchase key components long before we can deliver a unit and receive payment. Changes in customer orders or lack of demand may also impact our profitability. There can be no assurance we will be able to increase our sales and achieve and sustain profitability in the future. Based on management's analysis and our operating and cash flow plans, we believe that anticipated cash flows from operations will be sufficient to meet our current working capital needs and fund operations over the next twelve months. There can, however, be no assurance we will be able to do so. If our cash flows from operations are insufficient to fund our business we must continue to rely upon financing provided by related parties to help fund our operations and we may need to raise additional capital through a debt or equity financing to meet our need for capital to fund operations and future growth. Furthermore, any debt financing is likely to include financial and other covenants that may impede our ability to react to changes in the economy or industry. If adequate financing is not available when needed, we may be required to implement cost-cutting strategies, delay production, curtail research and development efforts, or implement other measures, which may adversely affect our results of operations and financial conditions and the price of our stock. </span></div><div style="margin-bottom:3pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">If we experience a period of significant growth or expansion, it could place a substantial strain on our resources.</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">If our cogeneration and chiller products penetrate the market rapidly, we may be unable to deliver large volumes of products or components to our customers on a timely basis and at a reasonable cost to us.  We have never ramped up our manufacturing capabilities to meet significant large-scale production requirements.  If we were to commit to deliver large volumes of products, we may not be able to satisfy these commitments on a timely and cost-effective basis.</span></div><div style="margin-bottom:3pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">We are dependent on a limited number of third-party suppliers for the supply of key components for our products.</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We use third-party suppliers for components in all of our products. Our engines and generators required in our cogeneration products (other than the InVerde), and the compressor and vessel sets in our chillers, are all purchased from large multinational equipment manufacturers. The loss of one or more of our suppliers could materially and adversely affect our business if we are unable to replace them. While alternate suppliers for the manufacture of our engine, generators and compressors have been identified, should the need arise, there can be no assurance that alternate suppliers will be available and able to provide such items on acceptable terms or on a timely basis. </span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">From time to time, shipments of components for our products can be delayed because of industry-wide or other shortages of necessary materials and components from third-party suppliers, as well as shipping delays at points of importation.  A supplier's failure to supply components in a timely manner, or to supply components that meet our quality, quantity, or cost requirements, or our inability to obtain substitute sources of these components on a timely basis or on terms acceptable to us, could impair our ability to deliver our products in accordance with contractual obligations.</span></div><div style="margin-bottom:3pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">We depend on a small number of customers for a substantial portion of our product revenues. The loss of one or more of these customers, or our inability to collect outstanding receivables from such customers could have a material adverse effect on our financial results.</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Although we are seeking to increase and diversify our customer base and reduce our reliance upon sales to a small number of customers, we expect sales to such customers to continue to constitute a significant portion of our revenues in the near term because we actively pursue large contracts and projects. The loss of any one or more of such customers or an inability to collect resulting accounts receivables could have a material adverse effect our business, financial condition and results of operations. </span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">For the years ended December&#160;31, 2024 and December&#160;31, 2023, no customer  represented more than 10% of revenues for the respective years, and one customer represented 12% of the accounts receivable balance as of December&#160;31, 2024, and one customer represented 14% of the accounts receivable balance as of December&#160;31, 2023. The loss of any one or more of our major customers or our inability to collect on outstanding accounts receivable from one or more of these customers could have a material adverse effect on our business and financial condition. Our provision for credit losses decreased to $146,010 in the year ended December&#160;31, 2024, compared to $902,432 in the year ended December&#160;31, 2023, due to the write down of certain install receivables which were deemed uncollectible in the year ended December&#160;31, 2023. Our allowance for credit losses increased $145,940 to $295,932 in the year ended December&#160;31, 2024, compared to the year ended December&#160;31, 2023.  </span></div><div style="margin-bottom:3pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">The amount of our backlog is subject to fluctuation due to our customers&#8217; experiencing unexpected delays in financing, permitting, or modifications in specifications of the equipment.</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our backlog as of December&#160;31, 2024 was $12,336,248 compared to $7,388,145 as of December&#160;31, 2023.  Although we expect our customers to issue definitive purchase orders with respect to such backlog, there can be no assurance that such amounts will not be subject to modification in the event customers experience unexpected delays in obtaining permits, interconnection agreements, or financing. We have experienced order delays and deferrals for our products due to business closures or the inability to obtain government issued permits to conduct product installations. Any of such events may result in </span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="margin-bottom:6pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">15</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">TECOGEN INC.</span></div></div><div style="margin-bottom:6pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">customers modifying the equipment or the terms or timing of the expected installation, which may result in changes to the amount of backlog attributed to those projects.  </span></div><div style="margin-bottom:3pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">We experience significant fluctuations in revenues and product mix from quarter to quarter on our product sales which may make period to period comparisons difficult. </span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We have low volume, high dollar sales for projects that are generally non-recurring, and therefore our sales have fluctuated significantly from period to period. Fluctuations cannot be predicted because they are affected by the purchasing decisions and timing requirements of our customers, which are unpredictable. Such fluctuations may make quarter to quarter and year to year comparisons difficult. </span></div><div style="margin-bottom:3pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">We expect significant competition for our products and services.</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Many of our competitors and potential competitors are well established and have substantially greater financial, research and development, technical, manufacturing, and marketing resources than we do.  If these larger competitors decide to focus on the development of distributed power or cogeneration, they have the manufacturing, marketing, and sales capabilities to complete research, development, and commercialization of these products more quickly and effectively than we can.  There can also be no assurance that current and future competitors will not develop new or enhanced technologies or more cost-effective systems, and therefore, there can be no assurance that we will be successful in this competitive environment.</span></div><div style="margin-bottom:3pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">We may not achieve production cost reductions necessary to competitively price our products, which would adversely affect our sales.</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We may need to reduce the unit production cost of our products over time to maintain our ability to offer competitively priced products. Our ability to achieve cost reductions will depend on our ability to develop low-cost design enhancements, to obtain necessary tooling and favorable supplier contracts, and to increase sales volumes so we can achieve economies of scale. We can make no assurance that we will be able to achieve any such production cost reductions. Our failure to do so could have a material adverse effect on our business and results of operations.</span></div><div style="margin-bottom:3pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Our products involve a lengthy sales cycle and we may not anticipate sales levels appropriately, which could impair our results of operations.</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The sale of our products typically involves a significant commitment of capital by customers, with the attendant delays frequently associated with large capital expenditures.  For these and other reasons, the sales cycle associated with our products is typically lengthy and subject to a number of significant risks over which we have little or no control. We plan our production and inventory levels based on internal forecasts of customer demand, which is highly unpredictable and can fluctuate substantially.  If sales in any period fall significantly below anticipated levels, our financial condition, results of operations and cash flow would suffer. If demand in any period increases well above anticipated levels, we may have difficulties in responding, incur greater costs to respond, or be unable to fulfill the demand in sufficient time to retain the order, which would negatively impact our operations. In addition, our operating expenses are based on anticipated sales levels, and a high percentage of our expenses are generally fixed in the short term. As a result of these factors, a small fluctuation in timing of sales can cause operating results to vary materially from period to period.</span></div><div style="margin-bottom:3pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">The economic viability of our projects depends on the price spread between natural gas and other fuel and electricity, and the variability of these prices creates a risk that our projects will not be economically viable and that potential customers will avoid such energy price risks.</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The economic viability of our CHP products depends on the spread between natural gas fuel and electricity prices. Volatility in one component of the spread, such as the cost of natural gas and other fuels (e.g., propane or distillate oil), can be managed to some extent by means of futures contracts.  However, the regional rates charged for both base load and peak electricity may decline periodically due to excess generating capacity or general economic recessions, and both the cost of natural gas and the cost of electricity for base load and peak load may be adversely affected by market forces and geopolitical disruptions such as Russian expansion into the Ukraine and political and other responses to such activity.</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our products and on-site utility service could become less competitive if electric rates were to fall substantially in the future, although, historically, electric rates have not experienced any sustained decline in price. Potential customers may perceive the risk of unpredictable swings in natural gas and electricity prices as a risk of investing in on-site CHP, and may decide not to purchase CHP products.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">We may make acquisitions or take other corporate strategic actions that could harm our financial performance.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">To expedite the development of our business, including with regard to equipment installation and service functions, we anticipate investigating and potentially pursuing future acquisitions of complementary businesses, and may engage in discussions with respect to possible acquisitions, sale of assets, business combinations, and joint ventures intended to complement or expand our business, some of which may be significant transactions for us. Regardless of whether we consummate any such transaction, the negotiation of a potential transaction could require us to incur significant costs, including </span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="margin-bottom:6pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">16</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">TECOGEN INC.</span></div></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">as a result of professional fees and due diligence efforts, and cause diversion of management&#8217;s time and resources. In addition, we may be unable to identify suitable acquisition or strategic investment opportunities or may be unable to obtain any required financing or regulatory approvals and therefore may be unable to complete such acquisitions or strategic investments on favorable terms, if at all. We may decide to pursue acquisitions with which our investors may not agree, and we cannot assure investors that any acquisition or investment will be successful or otherwise provide a favorable return on investment. In addition, acquisitions and the integration thereof require significant time and resources and place significant demands on our management, as well as on our operational and financial infrastructure. If we fail to successfully close transactions or integrate new teams, or integrate the products and technologies associated with these acquisitions into our company, our business could be seriously harmed. In addition, acquisitions may expose us to operational challenges and risks, including:</span></div><div style="margin-bottom:6pt;margin-top:6pt;padding-left:54pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">the ability to profitably manage acquired businesses or successfully integrate the acquired businesses&#8217; operations, personnel, financial reporting, accounting and internal controls, technologies and products into the our business;</span></div><div style="margin-bottom:6pt;margin-top:6pt;padding-left:54pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">increased indebtedness and the expense of integrating acquired businesses, including significant administrative, operational, economic, geographic or cultural challenges in managing and integrating the expanded or combined operations;</span></div><div style="margin-bottom:6pt;margin-top:6pt;padding-left:54pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">entry into jurisdictions or acquisition of products or technologies with which we have limited or no prior experience, and the potential of increased competition with new or existing competitors as a result of such acquisitions;</span></div><div style="margin-bottom:6pt;margin-top:6pt;padding-left:54pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">diversion of management&#8217;s attention and the over-extension of our operating infrastructure and our management systems, information technology systems, and internal controls and procedures, which may be inadequate to support growth;</span></div><div style="margin-bottom:6pt;margin-top:6pt;padding-left:54pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">the ability to fund our capital needs and any cash flow shortages that may occur if anticipated revenue is not realized or is delayed, whether by general economic or market conditions, or unforeseen internal difficulties; and</span></div><div style="margin-bottom:6pt;margin-top:6pt;padding-left:54pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">the ability to retain or hire qualified personnel required for expanded operations.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our acquisition strategy may not succeed if we are unable to remain attractive to target companies or expeditiously close transactions. Issuing securities to fund an acquisition would cause dilution to existing shareholders. If we develop a reputation for being a difficult acquirer or target companies view our shares unfavorably, we may be unable to consummate key acquisition transactions essential to our corporate strategy and our business may be seriously harmed.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In addition, integrating any business that we acquire may be distracting to our management and disruptive to our business and may result in significant costs to us. We could face several challenges in the consolidation and integration of information technology, accounting systems, personnel and operations. Any such transaction could also result in the impairment of goodwill and other intangibles, development write-offs and other related expenses. Any of the foregoing could have a material adverse effect on our business, financial condition, operating results, liquidity and prospects.</span></div><div style="margin-bottom:3pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Expiring customer contracts may lead to decreases in revenue and increases in expenses. </span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Each year, a portion of our customer contracts expire and need to be renewed or replaced. We may not be able to renew or extend contracts with existing customers or obtain replacement contracts at attractive rates or for the same term as the expiring contracts. To the extent we are unable to extend customer contracts prior to their expiration dates, energy production revenue will decline due to decreased billing for maintenance services and energy production. Expiring customer contracts can also lead to an increase in expenses because we are obligated to remove the equipment from the customer location at our own expense at the end of the customer contract. The investment required to obtain replacement contracts, including the manufacture and installation of the cogeneration or chiller equipment and the costs to incorporate this equipment into a facility are significant. To the extent that we do not have sufficient liquidity, our ability to add new contracts with energy production sites may be adversely impacted.&#160;&#160;&#160;&#160;</span></div><div style="margin-bottom:3pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Our revenue from energy billing may be adversely impacted by increases in the price of natural gas, reductions in utility rates for electrical power, weather conditions, or by an increase in remote work and study environments, all of which could reduce our revenue.</span></div><div style="margin-bottom:3pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Over the past several years electric rates have fluctuated, and in some instances rates have decreased, subsequent to customer contract dates, causing the billable value of the electrical power generated by our systems to decrease which has an adverse effect on our results of operations.  In warmer months the customers do not use as much thermal energy because they do not have as much demand for heat at their locations. Due to lower demand in warmer months, our revenue from thermal energy billing during those periods. In addition, increases in the cost of natural gas may increase the cost of power generation in comparison to the cost of power from the electric grid, and may result in decreased revenue and adversely affect our results of operation.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="margin-bottom:6pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">17</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">TECOGEN INC.</span></div></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">We may be affected by global climate change or by legal, regulatory, or market responses to such change.</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The growing political and scientific sentiment is that global weather patterns are being influenced by increased levels of greenhouse gases in the earth&#8217;s atmosphere. This growing sentiment and the concern over climate change have led to legislative and regulatory initiatives aimed at reducing greenhouse gas emissions which warm the earth&#8217;s atmosphere. These warmer weather conditions could result in a decrease in demand for our products in general. Moreover, proposals that would impose mandatory requirements on greenhouse gas emissions continue to be considered by policy makers in the United States. Laws enacted that could impact demand for the products we sell could adversely affect our business, financial condition, results of operations and cash flows. Significant increases in federal, state or municipal restrictions on emissions of carbon dioxide that may be imposed on gas-driven cogeneration and chillers could adversely affect demand for our product. Our inability to respond to such changes could adversely impact the demand for our products and our business, financial condition, results of operations or cash flows.</span></div><div style="margin-bottom:3pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Our financial condition and results of operations could suffer if there is an impairment of goodwill or intangible assets. </span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We are required to test intangible assets with indefinite lives, including goodwill, annually or, in certain instances, more frequently, and may be required to record impairment charges, which would reduce any earnings or increase any loss for the period in which the impairment was determined to have occurred. Our goodwill impairment analysis is sensitive to changes in key assumptions used in our analysis. If the assumptions used in our analysis are not realized, it is possible that an impairment charge may need to be recorded in the future. We cannot accurately predict the amount and timing of any impairment of goodwill or other intangible assets. However, any such impairment would have an adverse effect on our results of operations.  </span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As of December&#160;31, 2024, our goodwill was $2,346,566, and our intangible assets were $2,513,189. We performed a goodwill impairment test at December&#160;31, 2024, and determined that the carrying value of our energy production business assets exceeded the estimated fair value of the energy production business assets based on a discounted cash flow analysis, and we recognized goodwill impairment relating to our energy production segment of $217,295 for the year ended December&#160;31, 2024. The fair value of the Aegis maintenance service contracts based on a discounted cash flow analysis exceeded the carrying value of the assets, and we did not recognize goodwill impairment relating to our services segment for the year ended December&#160;31, 2024.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Increased costs of labor and employee health and welfare benefits may impact our results of operations.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Labor is a primary component in the cost of operating our business. Increased labor costs, due to competition, inflationary pressures, increased federal, state, local or foreign minimum wage requirements and increased employee benefit costs, including health care costs and social security benefits, could adversely impact our operating expenses. Because payroll costs are a major component of the operating expenses, a shortage of skilled labor could require higher wages that would increase labor costs, which could adversely affect our results of operations and cash flows.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">We are dependent on the continued contributions of our senior management and other key employees, and the loss of any of whom could adversely affect our business, operating results, and financial condition.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our future performance depends on the continued contributions of our senior management, including our Chief Executive Officer and Chief Financial Officer, Abinand Rangesh, our President and Chief Operating Officer, Robert Panora, and other key employees, to execute on our business plan, develop new products and services, source new customers, and enter into new partnerships. In addition, our success, in part, depends on our ability to attract and retain qualified member of our board and our board committees. The failure to properly manage succession plans or the loss of services of senior management, other key employees or members of our board could significantly delay or prevent the achievement of our strategic objectives. From time to time, there may be changes in our senior management team resulting from the hiring or departure of executives, which could disrupt our business. We do not currently maintain key person life insurance policies on any of our employees. The loss of the services of one or more of our senior management or other key employees for any reason could adversely affect our business, financial condition, and operating results, and require significant amounts of time, training, and resources to recruit suitable replacements and integrate them within our business and could affect our corporate culture.</span></div><div style="margin-bottom:6pt;margin-top:6pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%;text-decoration:underline">Risks Related to Our Technologies</span></div><div style="margin-bottom:3pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">If we are unable to maintain our technological expertise in design and manufacturing processes, we will not be able to successfully compete.</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We believe that our future success will depend upon our ability to continue to develop and provide innovative products and product enhancements that meet the increasingly sophisticated needs of our customers. However, this requires that we successfully anticipate and respond to technological changes in design and manufacturing processes in a cost-effective and timely manner.  The development of new, technologically advanced products and enhancements is a complex and uncertain process requiring high levels of innovation, as well as the accurate anticipation of technological and market trends.  There can </span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="margin-bottom:6pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">18</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">TECOGEN INC.</span></div></div><div style="margin-bottom:6pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">be no assurance that we will successfully identify new product opportunities, develop and bring new or enhanced products to market in a timely manner, successfully lower costs, and achieve market acceptance of our products, or that products and technologies developed by others will not render our products or technologies obsolete or noncompetitive.&#160;</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The introduction of products embodying new technologies and the shifting of customer demands or changing industry standards could render our existing products obsolete and unmarketable.  We may experience delays in releasing new products and product enhancements in the future.  Material delays in introducing new products or product enhancements may cause customers to forego purchases of our products and purchase products offered by our competitors.</span></div><div style="margin-bottom:6pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%;text-decoration:underline">Legal, Regulatory and Compliance Risks</span></div><div style="margin-bottom:3pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Our business is subject to product liability and warranty claims.</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our business exposes us to potential product liability claims, which are inherent in the manufacturing, marketing and sale of our products, and we may face substantial liability for damages resulting from the faulty design, manufacture, or improper use of products by end users. We currently maintain product liability insurance, but there can be no assurance that this insurance will provide sufficient coverage in the event of a claim.  Also, we cannot predict whether we will be able to maintain such coverage on acceptable terms, if at all, or that a product liability claim would not harm our business or financial condition.  In addition, negative publicity in connection with the faulty design or manufacture of our products would adversely affect our ability to market and sell our products.</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We sell our products with limited warranties. There can be no assurance that the provision in our financial statements for estimated product warranty expense will be sufficient. There can be no assurance that our efforts to reduce our risk through warranty disclaimers will effectively limit our liability.  Any significant occurrence of warranty expense in excess of estimates could have a material adverse effect on our operating results, financial condition and cash flow.  Further, we have at times undertaken programs to enhance the performance of units previously sold.  These enhancements have at times been provided at no cost or below our cost. If we offer such programs in the future, such actions could result in significant costs.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Changes in regulations applicable to our businesses may impair the profitability of our businesses, and our failure to comply with applicable laws and regulations may increase our costs, reduce our earnings or limit our growth.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We may be required to incur costs to comply with regulatory requirements, such as those relating to employment practices, environmental requirements, and other regulatory matters, and the costs of compliance, investigation, remediation, litigation, and resolution of regulatory matters could be substantial. We are subject to extensive federal and state employment laws and regulations, including wage and hour laws and other pay practices and employee record-keeping requirements. We may periodically have to defend against lawsuits asserting non-compliance. Such lawsuits can be costly, time consuming and distract management, and adverse rulings in these types of claims could negatively affect our businesses, financial condition or results.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In addition, we are subject to audit or review by federal or state regulatory authorities as a result of applying for and obtaining a Paycheck Protection Program loan pursuant to the Coronavirus Aid, Relief and Economic Security Act, and for obtaining forgiveness of the loan. If we were to be audited or reviewed and receive an adverse determination or finding in such an audit or review, we could be required to return or repay the full amount of the applicable loan and could be subject to fines or penalties, which could reduce our liquidity and adversely affect our business, financial condition and results of operations.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Changes in any of these regulations or regulatory activities in any of these areas, or others, may require us to spend additional amounts to comply with the regulations, or may restrict our ability to offer products and services in ways that are profitable.</span></div><div style="margin-bottom:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Agreements with our customers may include potential liquidated damages relating to construction delays or performance guaranties.  </span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Construction contracts involving our products may contain liquidated damages provisions resulting from failure to achieve agreed milestones relating to construction activity.  Agreements relating to the sale of equipment or energy may include performance and other obligations that may result in payment obligations to customers.   </span></div><div style="margin-bottom:3pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Utilities or governmental entities could hinder our entry into and growth in the marketplace, and we may not be able to effectively sell our products.</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Utilities or governmental entities on occasion have placed barriers to the installation of our products or their interconnection with the electric grid, and they may continue to do so. Utilities may charge additional fees to customers who install on-site CHP and rely on the grid for back-up power. These types of restrictions, fees, or charges could make it harder for customers to install our products or use them effectively, as well as increase costs to potential customers. This could make our systems less desirable, thereby adversely affecting our revenue and other operating results.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="margin-bottom:6pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">19</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">TECOGEN INC.</span></div></div><div style="margin-bottom:3pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">The reduction, elimination or expiration of government and economic incentives for applications of our equipment could reduce demand for our equipment and harm our business. </span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The market for cogeneration equipment depends in part on the availability and size of government and economic incentives that vary by geographic market. Because our sales to customers are typically into geographic areas with such incentives, elimination, or expiration of government subsidies and economic incentives for cogeneration equipment may negatively affect the competitiveness of our equipment relative to other sources of electricity, heating, and cooling equipment, and could harm or halt the growth of the cogeneration industry and our business. </span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We may incorporate price reductions on equipment sold to customers based on the anticipated receipt of governmental economic incentive payments and apply and collect the incentives payments. If such incentives become unavailable to us our financial condition may be adversely affected. </span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Competing sources of electricity, heating, and cooling equipment may successfully lobby for changes in the relevant legislation in their markets that are harmful to the cogeneration industry. Reductions in, or eliminations or expirations of, governmental incentives in regions where we focus our sales efforts could result in decreased demand for and lower revenue from cogeneration equipment there, which would adversely affect us. In addition, our ability to successfully penetrate new geographic markets may depend on new geographic areas adopting and maintaining incentives to promote cogeneration, to the extent such incentives are not currently in place. Additionally, electric utility companies may establish pricing structures or interconnection requirements that could adversely affect our sales and be harmful to cogeneration. </span></div><div style="margin-bottom:3pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">We may be exposed to substantial liability claims if we fail to fulfill our obligations to our customers or our on-site equipment malfunctions. </span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We enter into contracts with large commercial and not-for-profit customers under which we assume responsibility for meeting a portion of the customers' building energy demand and equipment installation. We may be exposed to substantial liability claims if we fail to fulfill our obligations to such customers.  If the equipment malfunctions, it may be costly to repair or replace. There can be no assurance that we will not be vulnerable to claims by customers and by third parties that are beyond any contractual protections that we are able to negotiate. As a result, liability claims could cause us significant financial harm. </span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Losses or unauthorized access to or releases of confidential information, including personal information, could subject us to significant reputational, financial, legal and operational consequences.</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our business requires us to use and store confidential information, including personal information, with respect to our customers and employees and also requires us to share confidential information with suppliers and other third parties. We rely on suppliers that are also exposed to ransomware and other malicious attacks that can disrupt business operations. Although we take steps to secure confidential information that is provided to or accessible by third parties working on our behalf, such measures may not always be effective and losses or unauthorized access to or releases of confidential information may occur. Such incidents and other malicious attacks could materially adversely affect our business, reputation, results of operations and financial condition.</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We have implemented systems and processes intended to secure our information technology systems and prevent unauthorized access to or loss of sensitive data, and mitigate the impact of unauthorized access, including through the use of encryption and authentication technologies and we continue to undertake regular reviews of our IT infrastructure and have investigated improved software and hardware cyber threat protection solutions. These measures cannot provide absolute security, and losses or unauthorized access to or releases of confidential information may occur and could materially adversely affect our business, reputation, results of operations and financial condition.</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We have experienced malicious attacks and other attempts to gain unauthorized access to our systems, including the ransomware attack on our computer network which occurred on April 28, 2023 which required that we limit user access,  remove the hard drives from two affected workstations from service and restore network files from systems backups. Our network returned to full operation on May 1, 2023. Since this incident, we have implemented changes to user access passwords, conducted a full audit of user accounts and implemented multi-factor authentication for network and workstation access. These attacks seek to compromise the confidentiality, integrity or availability of confidential information, or disrupt normal business operations, and could, among other things, impair our ability to attract and retain customers for our products and services, impact our stock price, materially damage commercial relationships, and expose us to litigation or government investigations, which could result in penalties, fines, or judgments against us. Globally, attacks are expected to continue accelerating in both frequency and sophistication with increasing use by actors of tools and techniques that are designed to circumvent controls, avoid detection, and remove or obfuscate forensic evidence, all of which hinders our ability to identify, investigate and recover from incidents. </span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="margin-bottom:6pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">20</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">TECOGEN INC.</span></div></div><div style="text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%;text-decoration:underline">Credit and Liquidity Risks</span></div><div style="margin-bottom:3pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">We are exposed to credit risks with respect to some of our customers.</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">To the extent our customers do not advance us sufficient funds to finance our costs during the execution phase of our contracts, we are exposed to the risk that they may be unable to accept delivery or that they will be unable to make payment at the time of delivery or within agreed upon payment terms. We have experienced customer payment delays due to COVID-19, which are attributable to temporary business shutdowns, resulting in declines in revenues and cash flows from our customers and delays in project completion due to delays in government project inspections and a general slowdown in business activity and in some cases, customers ceasing business activities altogether. </span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our provision for credit losses decreased to $146,010 in the year ended December&#160;31, 2024, compared to $902,432 in the year ended December&#160;31, 2023, due to the write down of certain install receivables which were deemed uncollectible in the year ended December&#160;31, 2023. Our allowance for credit losses was $295,932 as of December&#160;31, 2024, an increase of $145,940 when compared to the provision for doubtful accounts as of December&#160;31, 2023.  </span></div><div style="margin-bottom:3pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">We received short-term debt financing from directors and shareholders to fund our business and ongoing operations.</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:700;line-height:120%">  </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">If we are unable to generate sufficient funds from operations or obtain additional financing, we may not be able to repay the loans when they becomes due.</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On October 9, 2023, we entered into note subscription agreements with each of John N. Hatsopoulos and Earl R. Lewis, III, each a director and shareholder of Tecogen, pursuant to which Mr. Hatsopoulos agreed to provide financing to us of up to $1,000,000, and Mr. Lewis agreed to provide financing to us of $500,000, and potentially, an additional $500,000 at his discretion. On October 10, 2023, we borrowed $500,000 from Mr. Hatsopoulos and issued him a one-year promissory note with interest accruing at 5.12% per annum. On July 23, 2024, we borrowed an additional $500,000 from Mr. Hatsopoulos, and issued a one-year promissory note with interest accruing at 5.06% per annum.  On September 18, 2024, we borrowed $500,000 from Mr. Lewis and issued him a one-year promissory note with interest accruing at 4.57% per annum. </span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On January 14, 2025, we agreed to permit Mr. Lewis to convert the balance of the promissory note to him to cash or, at his discretion, the number of shares of Tecogen common stock determined by dividing the balance of the promissory note by the average closing price per share of our shares during the thirty-day period prior to the date of conversion.  </span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On February 18, 2025 we amended the promissory notes with Mr. Hatsopoulos to extend the maturity dates for both promissory notes to July 31, 2026, and to permit Mr. Hatsopoulos to convert the balances of one or both of the promissory notes to cash, or at his discretion, the number of shares of Tecogen common stock determined by dividing the balance of the promissory note by the average closing price per share of our shares during the thirty-day period prior to the date of conversion. </span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The loans are required to be repaid in the event of a change of control of the company and upon the occurrence of an event of default under the note, including upon a failure to pay when due the principal and interest when due, or the commencement of voluntary or involuntary bankruptcy or insolvency proceeding.</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">  </span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">See Note 11."Related Party Notes" of the Notes to the Consolidated Financial Statements.</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%"> </span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As of December&#160;31, 2024, we have outstanding accounts payable of $4,142,678, other accrued expenses of $2,890,886, lease obligations of $2,183,052, and acquisition liabilities of $1,911,312. If we are unable to generate sufficient funds from operations or raise additional financing, we may have insufficient funds to repay the loans from Messrs. Hatsopoulos and Lewis when they become due unless Mr. Hatsopoulos and Mr. Lewis are willing to extend the terms of the loan or renegotiate the terms, or accept payment by conversion to our shares, of which there can be no assurance.</span></div><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:112%;text-decoration:underline">Risks Relating to Ownership of our Common Stock</span></div><div style="margin-bottom:3pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Investment in our Common Stock is subject to price fluctuations and market volatility.</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Historically, valuations of many small companies have been highly volatile. The securities of many small companies have experienced significant price and trading volume fluctuations unrelated to the operating performance or the prospects of such companies.  The market price of shares of our common stock could be subject to wide fluctuations in response to many risk factors listed in this section, and others beyond our control, including:</span></div><div style="margin-bottom:6pt;padding-left:54pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">results and timing of our product development; </span></div><div style="margin-bottom:6pt;padding-left:54pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">results of the development of our competitors&#8217; products; </span></div><div style="margin-bottom:6pt;padding-left:54pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">regulatory actions with respect to our products or our competitors&#8217; products; </span></div><div style="margin-bottom:6pt;padding-left:54pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">actual or anticipated fluctuations in our financial condition and operating results; </span></div><div style="margin-bottom:6pt;padding-left:54pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">actual or anticipated changes in our growth rate relative to our competitors; </span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="margin-bottom:6pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">21</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">TECOGEN INC.</span></div></div><div style="margin-bottom:6pt;padding-left:54pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">actual or anticipated fluctuations in our competitors&#8217; operating results or changes in their growth rate; </span></div><div style="margin-bottom:6pt;padding-left:54pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">competition from existing products or new products that may emerge; </span></div><div style="margin-bottom:6pt;padding-left:54pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">announcements by us or our competitors of significant acquisitions, strategic partnerships, joint ventures, collaborations, or capital commitments; </span></div><div style="margin-bottom:6pt;padding-left:54pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">issuance of new or updated research or reports by securities analysts; </span></div><div style="margin-bottom:6pt;padding-left:54pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">fluctuations in the valuation of companies perceived by investors to be comparable to us; </span></div><div style="margin-bottom:6pt;padding-left:54pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">share price and volume fluctuations attributable to inconsistent trading volume levels of our shares; </span></div><div style="margin-bottom:6pt;padding-left:54pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">additions or departures of key management or personnel; </span></div><div style="margin-bottom:6pt;padding-left:54pt;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:12pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:13.8pt">disputes or other developments related to proprietary rights, including patents, litigation matters, and our ability to obtain, maintain, defend or enforce proprietary rights relating to our products and technologies; </span></div><div style="margin-bottom:6pt;padding-left:54pt;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:12pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:13.8pt">announcement or expectation of additional financing efforts; </span></div><div style="margin-bottom:6pt;padding-left:54pt;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:12pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:13.8pt">sales of our shares by us, our insiders, or our other stockholders;</span></div><div style="margin-bottom:6pt;padding-left:54pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">political events, war, terrorism, public health issues, natural disasters and other circumstances;</span></div><div style="margin-bottom:6pt;padding-left:54pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">lawsuits threatened or filed against us; and  </span></div><div style="margin-bottom:6pt;padding-left:54pt;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:12pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:13.8pt">general economic and market conditions. </span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Furthermore, the U.S. stock markets have experienced extreme price and volume fluctuations that have affected and continue to affect the market prices of equity securities of many companies.  These fluctuations often have been unrelated or disproportionate to the operating performance of those companies.  These broad market and industry fluctuations, as well as general economic, political, and market conditions such as recessions, interest rate changes, or international currency fluctuations may negatively impact the market price of shares of our common stock.  In addition, such fluctuations could subject us to securities class action litigation, which could result in substantial costs and divert our management&#8217;s attention from other business concerns, which could potentially harm our business.</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Additionally, selling short is a technique used by a stockholder to take advantage of an anticipated decline in the price of a security. A significant number of short sales or a large volume of other sales within a relatively short period of time can create downward pressure on the market price of a security.  Holders of our securities could, therefore, experience a decline in the value of their investment as a result of short sales or a high volume of selling of our shares. </span></div><div style="margin-bottom:3pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">If securities or industry analysts do not publish research or publish inaccurate or unfavorable research about our business, our share price and trading volume could decline. </span></div><div style="text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:115%">The trading market for our shares will depend on the research and reports that securities or industry analysts publish about us or our business.  There can be no assurance that analysts will cover us or provide favorable coverage.  If one or more analysts downgrade our shares or change their opinion of our share price our share price may decline.  In addition, if one or more analysts cease coverage of us or fails to regularly publish reports on us, we could lose visibility in the financial markets, which could cause our share price or trading volume to decline.</span></div><div style="margin-bottom:3pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Because our directors and executive officers are among our largest stockholders, they can exert influence over our business and affairs and have actual or potential interests that may differ from other stockholders or investors. </span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As of the date of this report, our directors and executive officers and related parties directly, indirectly, and through trusts for the benefit of family members, collectively beneficially own approximately 43.0% of our issued and outstanding shares. Additionally, the holdings of our directors and executive officers may increase in the future upon vesting or exercise of the options or other stock awards they may hold or in the future may be granted or if they otherwise acquire additional shares in the open market or otherwise. The interests of such persons may differ from the interests of our other stockholders. As a result, in addition to their board seats and offices, such persons will have influence over corporate actions requiring shareholder approval. These matters would include the election of directors and the approval of mergers or other business combination transactions. Such persons&#8217; stock ownership may discourage a potential acquirer from making a tender offer or otherwise attempting to acquire us, which in turn could reduce our stock price or prevent our stockholders from realizing a premium over our stock price. </span></div><div style="margin-bottom:3pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Current stock holdings may be diluted if we make future equity issuances or if outstanding options are exercised for shares of our common stock.</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8220;Dilution&#8221; refers to the reduction in the voting effect and proportionate ownership interest of a given number of shares of common stock as the total number of shares increases.  Our issuance of additional common stock, preferred stock, or  </span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="margin-bottom:6pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">22</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">TECOGEN INC.</span></div></div><div style="margin-bottom:6pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">convertible debt may result in dilution to the interests of shareholders and may also result in the reduction of our stock price.  The sale of a substantial number of shares into the market, or even the perception that sales could occur, could depress the price of our common stock. Also, the exercise of options may result in additional dilution.</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The holders of outstanding options, warrants and convertible securities or derivatives, if any, have the opportunity to profit from a rise in the market price of our shares, if any, without assuming the risk of ownership, with a resulting dilution in the interests of other stockholders.  We may find it more difficult to raise additional equity capital if it should be needed for our business while options, warrants, or convertible securities are outstanding. </span></div><div style="margin-bottom:3pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Future sales of our shares by our existing stockholders may cause our stock price to fall.</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The market price of our shares could decline as a result of sales by our existing stockholders of our shares in the market or the perception that these sales could occur.  These sales might also make it more difficult for us to conduct an equity or equity-based financing at a time and price that we deem appropriate and thus inhibit our ability to raise additional capital when it is needed.</span></div><div style="margin-bottom:3pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Because we have not and do not intend to pay cash dividends, our stockholders receive no current income from holding our stock.</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We have paid no cash dividends on our capital stock to date, and we currently intend to retain our future earnings, if any, to fund the operation and expansion of our business, and therefore do not anticipate paying any cash dividends in the foreseeable future. As a result, capital appreciation, if any, of our common stock could be the sole source of gain for our stockholders for the foreseeable future.</span></div><div style="margin-bottom:3pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">We incur substantial costs to operate as a public reporting company.</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We incur substantial legal, financial, accounting and other costs and expenses to operate as a public reporting company. We believe that these costs are a disproportionately larger percentage of our revenues than they are for many larger companies. In addition, the rules and regulations of the SEC impose significant requirements on public companies, including ongoing disclosure obligations and mandatory corporate governance practices. Our senior management and other personnel need to devote a substantial amount of time to ensure ongoing compliance with these requirements. Our common stock is currently quoted on the OTC Markets Group Inc.&#8217;s OTCQX Best Market tier. Under the OTC Markets Group Inc.&#8217;s OTCQX continued qualification requirements, we are required to have a minimum bid price of $0.10 per share as of the close of business for at least one of every 30 consecutive calendar days, a market capitalization of at least $5 million for at least one of every 30 consecutive calendar days, and at least two market makers. Also, we must be current in our SEC reporting obligations. If we seek to list our stock for trading on a national securities exchange or be quoted on the Nasdaq Stock Market, we will be subject to additional disclosure and governance obligations. There can be no assurance that we will continue to meet all of the public company requirements to which we are subject on a timely basis, or at all, or that our compliance costs will not continue to be material.</span></div><div style="margin-bottom:3pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Because our common stock is not traded on a national securities exchange, our stock has limited liquidity and our ability to raise capital is impaired.</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On June 19, 2020, we voluntarily delisted our common stock from Nasdaq and transitioned the quotation of our shares to OTC Markets Group Inc.&#8217;s OTCQX Best Market. Our common stock has been quoted on the OTC Markets Group Inc.&#8217;s OTCQX Best Market since June 19, 2020, under the symbol &#8220;TGEN&#8221;. We believe that trading &#8220;over the counter&#8221; has limited our stock&#8217;s liquidity and may impair our ability to raise additional capital. Also, and as a result, relatively small trades in our stock could have a disproportionate effect on our stock price.</span></div><div style="margin-bottom:3pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">As a public reporting company, we are subject to rules and regulations established from time to time by the SEC and Public Company Accounting Oversight Board (&#8220;PCAOB&#8221;) regarding our internal control over financial reporting. If we fail to establish and maintain effective internal control over financial reporting and disclosure controls and procedures, we may not be able to accurately report our financial results or report them in a timely manner. Investor confidence in the price of our stock may be adversely affected if we are unable to comply with such rules and regulations.  </span></div><div style="text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As a public reporting company under the Securities Exchange Act, we are subject to the rules and regulations established from time to time by the SEC and the PCAOB. These rules and regulations require, among other things, that we establish and periodically evaluate procedures with respect to our internal control over financial reporting. In addition, as a public company we are required to document and test our internal control over financial reporting pursuant to Section 404 of the Sarbanes-Oxley Act of 2002 (&#8220;Sarbanes-Oxley Act&#8221;) so that our management can certify as to the effectiveness of our internal control over financial reporting, which requires us to document and our internal control over financial reporting.  </span></div><div style="text-indent:36pt"><span><br/></span></div><div style="text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our Chief Executive Officer and Chief Financial Officer (&#8220;certifying officer&#8221;) is responsible for establishing and maintaining our disclosure controls and procedures (as defined in Securities Exchange Act Rule 13a-15(e) and Rule15d-15(e)).  </span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="margin-bottom:6pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">23</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">TECOGEN INC.</span></div></div><div style="text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our certifying officer designed such disclosure controls and procedures, or caused such disclosure controls and procedures to be designed under his supervision, to ensure that information required to be disclosed by us in the reports we file or submit under the Securities Exchange Act is recorded, processed, summarized and reported, within the time periods specified by the SEC&#8217;s rules and forms, and is made known to management (including the certifying officer) by others within the company, including our subsidiaries. We regularly evaluate the effectiveness of our disclosure controls and procedures and report our conclusions about the effectiveness of the disclosure controls quarterly in our Quarterly Reports on Form 10-Q and annually in our Annual Reports on Form 10-K. In completing such reporting, we disclose, as appropriate, any significant change in our internal control over financial reporting that occurred during our most recent fiscal period that has materially affected, or is reasonably likely to materially affect, our internal control over financial reporting.</span></div><div style="text-indent:36pt"><span><br/></span></div><div style="text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Also, as a public company, we are subject to rules adopted by the SEC pursuant to Section 404 of the Sarbanes-Oxley Act, which require us to include in our annual report on Form 10-K our management&#8217;s report on, and assessment of the effectiveness of, our internal control over financial reporting (&#8220;management&#8217;s report&#8221;). If we fail to achieve and maintain the adequacy of our disclosure control or internal control over financial reporting, there is a risk that we will not comply with all of the requirements imposed by Section 404.  Moreover, effective internal control over financial reporting, particularly that relate to revenue recognition, is necessary for us to produce reliable financial reports and is important in helping to prevent financial fraud.  Any of these possible outcomes could result in an adverse reaction in the financial marketplace due to a loss in investor confidence in the reliability of our financial statements, which ultimately could harm our business and could negatively impact on the market price of our common stock.  Investor confidence and the price of our common stock may be adversely affected if we are unable to comply with Section 404 of the Sarbanes-Oxley Act.  </span></div><div style="text-indent:36pt"><span><br/></span></div><div style="margin-bottom:3pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">As of the end of the period covered by our Annual Report on Form 10-K for the year ended December 31, 2024, our principal executive officer and principal financial officer has concluded that there is a material weakness in our disclosure controls and procedures and our internal control over financial reporting. If we are unable to remediate these material weaknesses, if management identifies additional material weaknesses in the future, or if we otherwise fail to maintain effective internal controls over financial reporting, we may not be able to accurately or timely report our financial position or results of operations, which may adversely affect our business and stock price or cause our access to the capital markets to be impaired. </span></div><div style="text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As of the end of the period covered by our Annual Report on Form 10-K for the year ended December&#160;31, 2024, our certifying officer performed an evaluation of our disclosure controls and procedures and concluded that our controls were not effective to provide reasonable assurance that information required to be disclosed by us in reports that we file under the Securities Exchange Act, is recorded, processed, summarized and reported when required. We have a small number of employees dealing with general controls over information technology, security and user access. This constitutes a material weakness in financial reporting.  Any failure to implement effective internal controls could harm our operating results or cause us to fail to meet our reporting obligations.  Inadequate internal controls could also cause investors to lose confidence in our reported financial information, which could have a negative effect on the trading price of our common stock and may require us to incur additional costs to improve our internal control system.</span></div><div style="text-align:justify;text-indent:36pt"><span><br/></span></div><div style="text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We continue to develop and refine our disclosure controls and other procedures designed to ensure that information required to be disclosed by us in the reports we will file with the SEC is recorded, processed, summarized, and reported within the time periods specified in SEC rules and forms and that information required to be disclosed in our reports under the Securities Exchange Act is accumulated and communicated to our principal executive and financial officer. We are continuing to improve our internal control over financial reporting which may require us to hire additional accounting and financial personnel to implement such processes and controls and to provide additional training for our existing personnel. We expect to incur costs related to implementing our internal audit and compliance function in the upcoming years to further improve our internal control environment. If we identify further deficiencies in our internal control over financial reporting in the future or if we are unable to comply with the demands that will be placed upon us as a public company, including the requirements of Section 404 of the Sarbanes-Oxley Act, in a timely manner, we may be unable to accurately report our financial results, or report them within the timeframes required by the SEC. We also could become subject to sanctions or investigations by the SEC or other regulatory authorities. In addition, if we are unable to assert that our internal control over financial reporting is effective, investors may lose confidence in the accuracy and completeness of our financial reports, we may face restricted access to the capital markets, and our stock price may be adversely affected.</span></div><div style="margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our current controls and any new controls that we develop may also become inadequate because of changes in our business, and weaknesses in our disclosure controls and internal control over financial reporting may be discovered in the future. Any failure to develop or maintain effective controls or any difficulties encountered in their implementation or improvement could cause us to fail to meet our reporting obligations, result in a restatement of our financial statements for prior periods, undermine investor confidence in us, and adversely affect the trading price of our common stock. </span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="margin-bottom:6pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">24</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">TECOGEN INC.</span></div></div><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">We are a &#8220;smaller reporting company&#8221; within the meaning of the Securities Act and Securities Exchange Act and we intend to take advantage of certain exemptions from disclosure requirements available to smaller reporting companies which could make our securities less attractive to investors and may make it more difficult to compare our performance with that of other public companies.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We are a &#8220;smaller reporting company&#8221; as defined in Item 10(f)(1) of Regulation S-K. Smaller reporting companies may take advantage of certain reduced disclosure obligations, including, among other things, providing only two years of audited financial statements. We will remain a smaller reporting company until the last day of the fiscal year in which (i) the market value of the shares of common stock held by non-affiliates exceeds $250 million as of the prior June 30, and (ii) our annual revenue exceeded $100 million during such completed fiscal year or the market value of the shares of common stock held by non-affiliates exceeds $700 million as of the prior June 30. To the extent we take advantage of such reduced disclosure obligations, it may also make comparison of our financial statements with other public companies difficult or impossible.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Delaware law and our certificate of incorporation and bylaws contain certain provisions, including anti-takeover provisions that limit the ability of stockholders to take certain actions and could delay or discourage takeover attempts that stockholders may consider favorable.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our certificate of incorporation, bylaws and the Delaware General Corporations Law </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">(&#8220;DGCL&#8221;)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> contain provisions that could have the effect of rendering more difficult, delaying or preventing an acquisition that stockholders may consider favorable, including transactions in which stockholders might otherwise receive a premium for their shares. These provisions could also limit the price that investors might be willing to pay in the future for shares of common stock and therefore depress the trading price. These provisions could also make it difficult for stockholders to take certain actions, including electing directors who are not nominated by the incumbent members of the board of directors or taking other corporate actions, including effecting changes in our management. Among other things, our certificate of incorporation and bylaws includes provisions that:</span></div><div style="margin-bottom:6pt;margin-top:6pt;padding-left:54pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">permit the board to issue shares of preferred stock, including </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">&#8220;blank check&#8221; </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">preferred stock and to determine the price and other terms of those shares, including preferences and voting rights, without stockholder approval, which could be used to significantly dilute the ownership of a hostile acquire</span></div><div style="margin-bottom:6pt;margin-top:6pt;padding-left:54pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">prohibit cumulative voting in the election of directors, which limits the ability of minority stockholders to elect director candidates</span></div><div style="margin-bottom:6pt;margin-top:6pt;padding-left:54pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">limit the liability of, and provide for the indemnification of, our directors and officers</span></div><div style="margin-bottom:6pt;margin-top:6pt;padding-left:54pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">permit the board to amend our bylaws, which may allow the board to take additional actions to prevent an unsolicited takeover and inhibit the ability of an acquirer to amend the bylaws to facilitate an unsolicited takeover attempt</span></div><div style="margin-bottom:6pt;margin-top:6pt;padding-left:54pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">require a supermajority vote of stockholders to amend certain provisions of our certificate of incorporation and a supermajority vote of stockholders in order to amend our bylaws</span></div><div style="margin-bottom:6pt;margin-top:6pt;padding-left:54pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">limit our ability to engage in business combinations with certain interested stockholders without certain approvals</span></div><div style="margin-bottom:6pt;margin-top:6pt;padding-left:54pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">permit only the board, the chief executive officer of the company or the chairperson of the board to call special stockholder meetings;</span></div><div style="margin-bottom:6pt;margin-top:6pt;padding-left:54pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">mandate advance notice procedures with which stockholders must comply in order to nominate candidates to the board or to propose matters to be acted upon at a stockholders&#8217; meeting, which could preclude stockholders from bringing matters before annual or special meetings of stockholders and delay changes in the board and also may discourage or deter a potential acquirer from conducting a solicitation of proxies to elect the acquirer&#8217;s own slate of directors or otherwise attempting to obtain control of our company, and</span></div><div style="margin-bottom:6pt;margin-top:6pt;padding-left:54pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">provide that directors may be removed only for cause and only by a supermajority vote of our stockholders</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">These provisions, alone or together, could delay or prevent hostile takeovers and changes in control or changes in our board or management.  </span></div><div style="margin-bottom:6pt;margin-top:6pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%;text-decoration:underline">General Business Risks</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Our intellectual property may not be adequately protected.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We seek to protect our intellectual property rights through patents, trademarks, copyrights, trade secret laws, confidentiality agreements, and licensing arrangements, but we cannot ensure that we will be able to adequately protect our technology from misappropriation or infringement. We cannot ensure that our existing intellectual property rights will not be invalidated, circumvented, challenged, or rendered unenforceable.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="margin-bottom:6pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">25</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">TECOGEN INC.</span></div></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our competitors may successfully challenge the validity of our patents, design non-infringing products, or deliberately infringe our patents.  There can be no assurance that other companies are not investigating or developing other similar technologies. In addition, our intellectual property rights may not provide a competitive advantage to us or ensure that our products and technology will be adequately covered by our patents and other intellectual property.  Any of these factors or the expiration, termination, or invalidity of one or more of our patents may have a material adverse effect on our business.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Others may assert that our technology infringes their intellectual property rights.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We may be subject to infringement claims from time to time.  The defense of any claims of infringement made against us by third parties could involve significant legal costs and require our management to divert time from our business operations.  If we are unsuccessful in defending any claims of infringement, we may be forced to obtain licenses or to pay additional royalties to continue to use our technology.  We may not be able to obtain any necessary licenses on commercially reasonable terms or at all.  If we fail to obtain necessary licenses or other rights, or if these licenses are costly, our operating results would suffer either from reductions in revenues through our inability to serve customers or from increases in costs to license third-party technologies.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Our business and financial performance may be adversely affected by information systems interruptions, cybersecurity attacks or other disruptions which could have a material adverse effect on our business and results from operations. </span></div><div style="text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We depend upon information technology, infrastructure, including network, hardware and software systems to conduct our business. Despite our implementation of security measures, there are numerous and evolving risks to cybersecurity and privacy, including risks originating from intentional acts of criminal hackers, nation states and competitors, intentional and unintentional acts or omissions of customers, vendors, contractors, employees and other third parties that may result in damage, breakdown, or interruption from computer viruses, ransomware, malware, phishing, social engineering, fraudulent inducement, electronic fraud, wire fraud, human error or malfeasance, unauthorized access, natural disasters, and telecommunications and electrical failures.</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">  </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We directly or indirectly store, collect and transmit sensitive data, including intellectual property, confidential information, proprietary business information, and customer or personal data. The secure processing of such data, maintenance, and transmission of such data is important to our operations.</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">  </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We face increased cybersecurity risks due to our reliance on internet technology, among other things, to monitor our installed products or systems remotely. We may not be able to anticipate all types of security threats or be able to implement security measures effective against all such threats or implement preventive measures effective against all such threats.</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">  </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The techniques used by cybercriminals change frequently and may not be recognized until launched and can originate from a wide variety of sources.</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">  </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Even if identified, we may not be able to adequately investigate or remediate incidents or breaches due to attacks increasingly using tools and techniques that are designed to circumvent controls, to avoid detection, and to remove or obfuscate forensic evidence.</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">  </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Accordingly, our data protection efforts and related security measures may not be adequate to protect against highly targeted sophisticated cyber-attacks, or other improper disclosures of confidential and/or sensitive information. Additionally, we may have access to confidential or other sensitive information of our customers or suppliers, which despite our efforts to protect, may be vulnerable to security breaches, theft, or improper disclosure, any of which could have a material adverse effect on our competitive position, results of operations, cash flows, or financial condition. </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%"> </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The increase in personnel working remotely during and after the Covid-19 pandemic has increased the risk of our and our vendors and suppliers&#8217; security breaches and incidents. </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%"> </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">If a security breach or other incident results in unauthorized access to, or use, disclosure, release, or other processing of confidential or proprietary information, we could incur liability, and it may be necessary to notify persons, governmental authorities, supervisory bodies, the media and other parties pursuant to privacy and security laws. Any such access, disclosure or other loss of information could result in legal claims, proceedings, liability under laws that protect the privacy of personal information of our employees or others, and any such event could disrupt our operations, damage our reputation, and cause a loss of confidence in us. Our contracts with our customers and suppliers may not contain limitation of liability and there can be no assurance that limitations of liability in our contracts are sufficient to protect us from liabilities, damages, or claims related to privacy, data protection, or data security.</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">  </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Further, we can give no assurance that our insurance coverage will be adequate or sufficient to cover the financial, legal, business or reputational losses that may result from an interruption or breach of our systems, that such coverage will continue to be available on commercially reasonable terms or at all, or that such coverage will pay future claims.</span></div><div style="margin-bottom:3pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Our success is dependent upon attracting and retaining highly qualified personnel and the loss of key personnel could significantly hurt our business.</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">To achieve success, we must attract and retain highly qualified technical, operational and executive employees.  The loss of the services of key employees or an inability to attract, train and retain qualified and skilled employees, specifically engineering, operations, and business development personnel, could result in the loss of business or could otherwise negatively impact on our ability to operate and grow our business successfully.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="margin-bottom:6pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">26</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">TECOGEN INC.</span></div></div><div style="margin-bottom:3pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Our business may be impacted by political events, war, terrorism, public health issues, natural disasters and other circumstances that are not within our control.</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">War, terrorism, geopolitical uncertainties, public health issues, and other business interruptions have caused and could cause damage or disruption to international commerce and the global economy, and thus could have a material adverse effect on us, our suppliers, and manufacturing vendors. Our business operations are subject to interruption by natural disasters, fire, power shortages, nuclear power plant accidents, terrorist attacks, and other hostile acts, labor disputes, public health issues, and other events beyond our control. Such events could decrease demand for our products, make it difficult or impossible for us to make and deliver products to our customers, or to receive products from our manufacturers and suppliers, and create delays and inefficiencies in our supply chain. If major public health issues, including pandemics, arise, we could be adversely affected by more stringent employee travel restrictions, limitations in freight services, governmental actions limiting the movement of products between regions, delays in production ramps of new products, and disruptions in the operations of our manufacturing vendors and suppliers. In the event of such issues, we could incur significant losses, require substantial recovery time and experience significant expenditures in order to resume operations.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">We may be subject to litigation, including securities class action litigation, which may harm our business and operating results.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our share price may be volatile and in the past companies that have experienced volatility in the market price of their stock have been subject to an increased incidence of securities class action litigation. Securities litigation against us could result in substantial costs and damages and divert our management&#8217;s attention from other business concerns, which could seriously harm our business, results of operations, financial condition or cash flows.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Although we maintain directors&#8217; and officers&#8217; insurance coverage, there can be no assurances that this insurance coverage will be sufficient to cover the substantial fees and expenses of lawyers and other professional advisors relating to any future litigation, our obligations to indemnify our officers and directors who are or may become parties to such pending and future actions, or the amount of any judgments or settlements that we may be obligated to pay in connection with such actions. We may be required to make material payments in connection with the defense of or to settle such litigation or to satisfy any adverse judgment.  In addition, actions that arise in the future could be excluded from coverage or, if covered, could exceed our deductibles and/or the coverage provided. In addition, an adverse outcome in any such litigation could cause our insurance premiums and retention amounts to increase in the future.  Any of these consequences could have a material adverse effect on our business, financial condition and results of operations. For more information regarding litigation, see "Item 3. Legal Proceedings" and Note 12 "Commitments and Contingencies"</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"> </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">in the Notes to our Consolidated Financial Statements included elsewhere herein.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We may also be called on to defend against lawsuits relating to our business operations. Some of these claims may seek significant damages amounts. Due to the inherent uncertainties of litigation, the ultimate outcome of any such proceedings cannot be accurately predicted. A future unfavorable outcome in a legal proceeding could have an adverse impact on our business, financial condition and results of operations. </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In addition, current and future litigation, regardless of its merits, could result in substantial legal fees, settlements or judgment costs and a diversion of our management&#8217;s attention and resources that are needed to successfully run our business.</span></div><div style="text-indent:36pt"><span><br/></span></div><div id="ic4bfd2faeedf4470adc28b9f3bba3b4c_16"></div><div style="margin-bottom:6pt;margin-top:6pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%;text-decoration:underline">Item 1B. Unresolved Staff Comments.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">None.</span></div><div id="ic4bfd2faeedf4470adc28b9f3bba3b4c_19"></div><div style="margin-bottom:6pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%;text-decoration:underline">Item 1C. Cybersecurity</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Risk Management Strategy</span></div><ix:nonNumeric contextRef="c-1" name="cyd:CybersecurityRiskManagementProcessesForAssessingIdentifyingAndManagingThreatsTextBlock" id="f-34" continuedAt="f-34-1" escape="true"><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our business is dependent upon our information technology (&#8220;IT&#8221;) systems, devices and networks to collect, process and store the data necessary to conduct our business and record and report our business and financial information. We recognize the importance of developing, implementing, and maintaining effective cybersecurity measures to safeguard our IT systems and protect the confidentiality, integrity, and availability of our confidential and personal data, including with respect to our customers, suppliers, and employees, as well as our intellectual property. </span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We maintain a cybersecurity risk management program to identify, assess, manage, mitigate, and respond to cybersecurity threats.</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%"> </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our cybersecurity risk management program incorporates various mechanisms to detect and monitor unusual network activity, as well as containment and incident response tools. We monitor issues that are internally discovered or externally reported that may affect our business and have processes to assess those issues for potential cybersecurity impact or risk. </span></div></ix:nonNumeric><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="margin-bottom:6pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">27</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">TECOGEN INC.</span></div><div style="text-align:right"><span><br/></span></div></div><ix:continuation id="f-34-1"><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"><ix:nonNumeric contextRef="c-1" name="cyd:CybersecurityRiskManagementProcessesIntegratedFlag" format="ixt:fixed-true" id="f-35">We have integrated our cybersecurity risk management program into our broader enterprise risk management program.</ix:nonNumeric> This integration is designed to make cybersecurity considerations an integral part of our decision-making processes at every level and we believe that this integration allows cybersecurity risks to be evaluated and addressed in alignment with our business objectives and operational needs. While we work to maintain our information security program and risk management efforts, there can be no assurance that such actions will be sufficient to prevent cybersecurity incidents or mitigate all potential risks to our systems, networks, and data or those of our third-party providers.</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We rely on suppliers that are also exposed to ransomware and other malicious attacks that can disrupt business operations. Although we take steps to secure confidential information that is provided to or accessible by third parties, such measures may not always be effective and losses or unauthorized access to, or releases of, confidential information occur. Such incidents and other malicious attacks could materially adversely affect our business, reputation, results of operations and financial condition.</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"><ix:nonNumeric contextRef="c-1" name="cyd:CybersecurityRiskMateriallyAffectedOrReasonablyLikelyToMateriallyAffectRegistrantFlag" format="ixt:fixed-false" id="f-36">We have experienced malicious attacks and other attempts to gain unauthorized access to our systems, including a ransomware attack on our computer network which occurred on April 28, 2023. Following remediation, our network returned to full operation on May 1, 2023.</ix:nonNumeric> </span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><ix:nonNumeric contextRef="c-1" name="cyd:CybersecurityRiskThirdPartyOversightAndIdentificationProcessesFlag" format="ixt:fixed-true" id="f-37"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We have engaged a <ix:nonNumeric contextRef="c-1" name="cyd:CybersecurityRiskManagementThirdPartyEngagedFlag" format="ixt:fixed-true" id="f-38">third-party consultant</ix:nonNumeric> in connection with our risk management and assessment processes.</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">  </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our consultant assists us in the design and implementation of our cybersecurity policies and procedures, as well as the monitoring and testing of our safeguards. In the event of a cybersecurity incident, our incident response plan outlines the steps to be followed from incident detection to mitigation, recovery and notification, and involves notifying senior management, our legal department, and the board of directors and/or our audit committee, if appropriate, and mitigation and remediation steps by our third-party consultant.</span></ix:nonNumeric></div></ix:continuation><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Governance</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"><ix:nonNumeric contextRef="c-1" name="cyd:CybersecurityRiskBoardOfDirectorsOversightTextBlock" id="f-39" escape="true">Our board of directors has overall responsibility for informed oversight of our risk management process, including risks from cybersecurity threats.</ix:nonNumeric> Our board of directors is responsible for monitoring and assessing strategic risk exposure. <ix:nonNumeric contextRef="c-1" name="cyd:CybersecurityRiskRoleOfManagementTextBlock" id="f-40" continuedAt="f-40-1" escape="true">Our executive officers are responsible for the day-to-day management of the material risks we face. <ix:nonNumeric contextRef="c-1" name="cyd:CybersecurityRiskBoardCommitteeOrSubcommitteeResponsibleForOversightTextBlock" id="f-41" escape="true">Our board of directors has delegated to our audit committee its cybersecurity risk oversight processes, including oversight and mitigation of risks from cybersecurity threats.</ix:nonNumeric></ix:nonNumeric></span></div><ix:continuation id="f-40-1"><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><ix:nonNumeric contextRef="c-1" name="cyd:CybersecurityRiskProcessForInformingBoardCommitteeOrSubcommitteeResponsibleForOversightTextBlock" id="f-42" escape="true"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our audit committee receives periodic reports from management regarding our cybersecurity risks and is notified of any significant cybersecurity threat or incident.</span></ix:nonNumeric><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">  </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The audit committee reports to the <ix:nonNumeric contextRef="c-1" name="cyd:CybersecurityRiskManagementPositionsOrCommitteesResponsibleReportToBoardFlag" format="ixt:fixed-true" id="f-43">board of directors</ix:nonNumeric> regarding its activities, including with respect to cybersecurity matters and the occurrence of any material cybersecurity incident, if appropriate.</span></div><div style="margin-bottom:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We have engaged a third-party consultant to manage risks associated with network protection and workstation management. Our consultant performs an annual assessment of our cybersecurity risk policies and procedures.</span></div><ix:nonNumeric contextRef="c-1" name="cyd:CybersecurityRiskManagementProcessesIntegratedTextBlock" id="f-45" escape="true"><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"><ix:nonNumeric contextRef="c-1" name="cyd:CybersecurityRiskManagementPositionsOrCommitteesResponsibleTextBlock" id="f-44" escape="true">Our cybersecurity risk management and strategy processes are jointly led by our  <ix:nonNumeric contextRef="c-1" name="cyd:CybersecurityRiskManagementPositionsOrCommitteesResponsibleFlag" format="ixt:fixed-true" id="f-46">embedded software engineer and Chief Executive Officer</ix:nonNumeric>, in conjunction with a third-party consultant we have engaged to assist with cybersecurity risks assessment and monitoring.</ix:nonNumeric> <ix:nonNumeric contextRef="c-1" name="cyd:CybersecurityRiskProcessForInformingManagementOrCommitteesResponsibleTextBlock" id="f-47" escape="true">Our embedded software engineer is informed about and monitors the prevention, mitigation, detection, and remediation of cybersecurity incidents through their management of the cybersecurity risk management and strategy processes described above, including our incident response plan. <ix:nonNumeric contextRef="c-1" name="cyd:CybersecurityRiskManagementExpertiseOfManagementResponsibleTextBlock" id="f-48" escape="true">Together with the General Counsel, Chief Executive Officer and outside consultant that comprise our cybersecurity management team, we collectively possess significant experience in evaluating, managing, and mitigating security and other risks, including cybersecurity risks.</ix:nonNumeric></ix:nonNumeric></span></div></ix:nonNumeric></ix:continuation><div style="text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:115%">Our embedded software engineer possesses significant information systems  experience. </span></div><div id="ic4bfd2faeedf4470adc28b9f3bba3b4c_22"></div><div style="margin-bottom:6pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%;text-decoration:underline">Item 2.&#160;&#160;&#160;&#160;Properties.</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our headquarters are located in North Billerica, Massachusetts, consisting of approximately 26,412 square feet of manufacturing, storage and office space, of which approximately 21,000 square feet is dedicated to manufacturing and warehousing.</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%;text-decoration:underline">Facilities Relocation</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On March 31, 2023, we entered into two lease agreements for two adjacent buildings located in North Billerica, Massachusetts, to serve as our headquarters and manufacturing facilities. The lease agreements provide for initial lease terms of five (5) years with two successive options to renew for additional terms of five (5) years. Both lease agreements commenced on January 1, 2024, and require payment of the base rent, real estate taxes, common maintenance expenses, and aggregate security deposits in the amount of $38,200. Our costs for initial improvements required to the leased premises is estimated to range between $900,000 and $1,000,000. The estimated straight-line monthly rent expense for the initial term of the lease is approximately $26,962 per month. In accordance with ASC 842-20-30-1, we recognized and recorded the lease liability and </span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="margin-bottom:6pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">28</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">TECOGEN INC.</span></div><div style="text-align:right"><span><br/></span></div></div><div style="margin-bottom:6pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">right-of-use asset using the discount rate for the lease upon the lease commencement date, January 1, 2024. We believe that our facilities are appropriate and adequate for our current needs. </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%;text-decoration:underline">Service Centers</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our eleven leased service centers can be categorized into two different sizes.  The larger leased spaces have office space to accommodate administrative, sales and engineering personnel, and warehouse space to stock parts in support of our service contracts. As of December&#160;31, 2024, the service centers that fit this larger category are based in Piscataway, New Jersey and Valley Stream and Buchanan, New York to service the Metro New York City and the Mid-Atlantic region.  The San Francisco Bay area and Northern California are served by such a center in Hayward, California.  A portion of the corporate headquarters in North Billerica, Massachusetts are used in this manner to service all of our satellite service centers. The smaller service centers are parts depots or warehouses for the stocking of parts in support of our service contracts.  These centers are located in Easton, Massachusetts, Los Angeles, California, Sterling Heights, Michigan, Newark, New York, East Windsor, Connecticut, East Syracuse, New York, Toronto, Ontario and Wellesley Chapel, Florida.  </span></div><div id="ic4bfd2faeedf4470adc28b9f3bba3b4c_25"></div><div style="margin-bottom:6pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%;text-decoration:underline">Item 3.&#160;&#160;&#160;&#160;Legal Proceedings.</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Except as described below, we and our subsidiaries and our properties are not parties to any material pending legal proceedings, other than ordinary routine litigation incidental to our business.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On November 23, 2022, we were served with a suit filed against us on August 24, 2022 in the Ontario Superior Court of Justice by The Corporation of the Town of Milton, Milton Energy Generation Solutions Inc. and Milton Hydro Distribution Inc. (the "Plaintiffs"), all of whom are municipal corporations incorporated in the Province of Ontario. The plaintiffs sued for damages in the amount of CDN $1,000,000, prejudgment and post-judgment interest, and legal fees, alleging breach of contract, breach of warranty, negligent misrepresentations and nuisance. Plaintiffs allege that on or about July 10, 2022, a Tecogen cogeneration unit installed by us at the plaintiffs facility caught fire, causing damage to the cogeneration unit and the plaintiff's facility. We filed a response denying liability and are represented by Canadian counsel. For the year ended December 31, 2022, we reserved $150,000 for anticipated damages which may not be covered by our insurance and maintained the reserve at December&#160;31, 2024. On January 13, 2025, Tecogen and our insurers entered into a Settlement Agreement and Full and Final Release from any and all claims, obligations and liabilities, arising from the July 10, 2022 fire in the amount of CDN $400,000, of which we were responsible for CDN $100,000. On February 7, 2025, we remitted CDN $100,000, or $70,994, representing payment in full of our liability relating to this matter. </span></div><div id="ic4bfd2faeedf4470adc28b9f3bba3b4c_28"></div><div style="margin-bottom:6pt;margin-top:6pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%;text-decoration:underline">Item 4.&#160;&#160;&#160;&#160;Mine Safety Disclosures.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Not applicable.</span></div><div id="ic4bfd2faeedf4470adc28b9f3bba3b4c_31"></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%;text-decoration:underline">PART II</span></div><div style="margin-bottom:6pt;margin-top:6pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%;text-decoration:underline">Item 5.&#160;&#160;&#160;&#160;Market for Registrant&#8217;s Common Equity, Related Stockholder Matters and Issuer Purchases of Equity Securities.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Market for Our Shares</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our common stock is quoted on the OTC Markets Group&#8217;s OTCQX Best Market tier and trades under the symbol TGEN. As of March&#160;18, 2025, there were 57 holders of record of our common stock. Any over-the-market quotations reflect inter-dealer prices, without mark-up, markdown or commission and may not necessarily represent actual transactions.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Dividends</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We have never declared or paid a cash dividend on our common stock and do not anticipate paying cash dividends on our common stock in the foreseeable future. Payment of future cash dividends, if any, will be at the discretion of our board of directors and will depend on our financial condition, results of operations, contractual restrictions and covenants included under any bank or other indebtedness that we may enter into, capital requirements, business prospects and other factors that our board of directors considers relevant.</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Equity Compensation Plan Information</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We adopted our 2006 Stock Incentive Plan (as amended, the &#8220;2006 Plan&#8221;) in December 2005.  Under the plan our board of directors may grant or award incentive stock options to our officers and employees and non-qualified stock grants and awards, and restricted stock to our employees, officers, directors, and consultants. On November 1, 2016, the 2006 Plan was amended by the Board of Directors to increase the reserved shares of common stock issuable under the 2006 Plan to 3,838,750 and to extend the termination date of the 2006 Plan to January 1, 2026.  Our stockholders approved the amendment  in June 2017 and ratified all of our option grants after January 1, 2016. </span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="margin-bottom:6pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">29</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">TECOGEN INC.</span></div><div style="text-align:right"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:120%"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:120%;text-decoration:none" href="#ic4bfd2faeedf4470adc28b9f3bba3b4c_7">Table of Contents</a></span></div></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Stock options vest based upon the terms within the individual option grants, with an acceleration of the unvested portion of such options upon a change in control event, as defined in the 2006 Plan.  The options are not transferable except by will or domestic relations order.  The option price per share under the 2006 Plan cannot be less than the fair market value of the underlying shares on the date of the grant.  The number of shares remaining available for future issuance under the 2006 Plan as of December&#160;31, 2024 and 2023 were 1,108,168 and 243,818, respectively.</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We adopted the 2022 Stock Incentive Plan (the "2022 Plan") on March 8, 2022, and it was approved by our stockholders on June 9, 2022.  Under the plan, the Board of Directors may grant or award incentive stock options to employees and officers and non-qualified stock options, restricted stock grants, and common stock to our employees, officers, directors, and consultants. We have reserved 3,800,000 shares of our common stock for issuance pursuant to awards under the 2022 Plan.  </span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Under the 2022 Plan, stock options vest based upon the terms within the individual option grants, with an acceleration of the unvested portion of such options upon a change in control event, as defined in the 2022 Plan.  The options are not transferable except by will or domestic relations order.  The option price per share under the 2022 Plan cannot be less than the fair market value of the underlying shares on the date of the grant. The number of shares remaining available for future issuance under the 2022 Plan as of December&#160;31, 2024 and 2023 were 2,950,000 and 3,068,750, respectively.</span></div><div style="margin-bottom:6pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table provides information as of December&#160;31, 2024, regarding Common Stock that may be issued under the 2006 Plan and the 2022 Plan.</span></div><div style="margin-bottom:6pt;margin-top:5pt;text-align:center;text-indent:36pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:393.00pt"><tr><td style="width:1.0pt"/><td style="width:145.00pt"/><td style="width:1.0pt"/><td style="width:1.0pt"/><td style="width:3.25pt"/><td style="width:1.0pt"/><td style="width:1.0pt"/><td style="width:70.00pt"/><td style="width:1.0pt"/><td style="width:1.0pt"/><td style="width:1.75pt"/><td style="width:1.0pt"/><td style="width:1.0pt"/><td style="width:61.00pt"/><td style="width:1.0pt"/><td style="width:1.0pt"/><td style="width:1.75pt"/><td style="width:1.0pt"/><td style="width:1.0pt"/><td style="width:96.25pt"/><td style="width:1.0pt"/></tr><tr style="height:75pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Number of securities to be issued upon exercise of outstanding options, warrants and rights</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Weighted-average exercise price of outstanding options, warrants and rights</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Number of securities remaining available for future issuance under equity compensation plans (excluding securities reflected in first column)</span></td></tr><tr style="height:26pt"><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Equity compensation plans approved by security holders</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,752,962&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1.14&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4,058,168&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:24pt"><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Equity compensation plans not approved by security holders</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,752,962&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1.14&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4,058,168&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div><div id="ic4bfd2faeedf4470adc28b9f3bba3b4c_34"></div><div style="margin-bottom:6pt;margin-top:6pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%;text-decoration:underline">Item 6.&#160;&#160;&#160;&#160;[Reserved].</span></div><div id="ic4bfd2faeedf4470adc28b9f3bba3b4c_37"></div><div style="margin-bottom:6pt;margin-top:6pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%;text-decoration:underline">Item 7.  Management's Discussion and Analysis of Financial Condition and Results of Operations. </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">You should read the following Management's Discussion and Analysis of Financial Condition and Results of Operations (&#8220;MD&amp;A&#8221;) together with our consolidated financial statements and related notes thereto appearing elsewhere in this report.</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-style:italic;font-weight:400;line-height:120%">  </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Some of the information contained in this MD&amp;A or set forth elsewhere in this report, including information with respect to our plans and strategy for our business, includes forward-looking statements that involve risks and uncertainties. </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-style:italic;font-weight:400;line-height:120%"> </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">You should review the &#8220;Risk Factors&#8221; in this report for a discussion of important factors that could cause actual results to differ materially from the results described in or implied by the forward-looking statements contained in the following MD&amp;A.</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"> Except as required by federal securities law or other disclosure requirements applicable to us, we assume no obligation to update these forward-looking statements publicly, or to update the reasons actual results could differ materially from those anticipated in these forward-looking statements, even if new information becomes available in the future. Our historical results are not necessarily indicative of the results that may be expected for any period in the future.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Overview</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Tecogen designs, manufactures, markets, and maintains high efficiency, ultra-clean cogeneration products. These include natural gas engine driven combined heat and power (CHP) systems, chillers and heat pumps for multi-family residential, commercial, recreational and industrial use.  We are known for products that provide customers with substantial energy savings, resiliency from utility power outages and for significantly reducing a customer&#8217;s carbon footprint. Our products are sold with our patented Ultera technology which nearly eliminates all criteria pollutants such as NOx and CO. Our systems are greater than 88% efficient compared to typical electrical grid efficiencies of 40% to 50%. As a result, our greenhouse gas (GHG) emissions are typically half that of the electrical grid. Our systems generate electricity and hot water or in the case of our Tecochill product, both chilled water and hot water.  These result in savings of energy related costs of up to 60% for our customers. Our products are expected to run on Renewable Natural Gas (RNG) as it is introduced into the US gas pipeline infrastructure. </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our products are sold directly to end-users by our in-house sales team and by established sales agents and representatives.  We have agreements in place with distributors and sales representatives.  Our existing customers include </span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="margin-bottom:6pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">30</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">TECOGEN INC.</span></div><div style="text-align:right"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:120%"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:120%;text-decoration:none" href="#ic4bfd2faeedf4470adc28b9f3bba3b4c_7">Table of Contents</a></span></div></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">hospitals and nursing homes, colleges and universities, health clubs and spas, hotels and motels, office and retail buildings, food and beverage processors, multi-unit residential buildings, laundries, ice rinks, swimming pools, factories, municipal buildings, military installations and indoor growing facilities. To date we have shipped over 3,200 units, some of which have been operating for almost 35 years.</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Although we may, from time to time, have one or a few customers who may represent more than 10% of our product revenue for a given year, we are not dependent on the recurrence of revenue from those customers.  Our product revenue is such that customers may make a large purchase once and may not ever make a purchase again.  Our equipment is built to last 30 or more years. Therefore, our product revenue model is not dependent on recurring sales transactions from the same customer.  Our service revenue does lend itself to recurring revenue from particular customers. </span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">For the last two fiscal years, more than half of our revenue was generated from long-term maintenance and energy production contracts, which provides us with a predictable revenue stream, especially during the summer months.  We experience a slight surge of activity from May through September as our &#8220;chiller season&#8221; is in full swing.  Our O&amp;M service revenue which has grown from year to year since 2005, with our New York City/New Jersey and New England systems experiencing the majority of the growth, was positively impacted by the Aegis maintenance agreement acquisition in 2023.  Our installation service related revenue has decreased and is likely to continue to remain low due to our strategy to focus on higher margin segments of our business. Our service margins are generally predictable as we service hundreds of long-term contracts with relatively low dollar, high volume sales.</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> During the years ended December&#160;31, 2024 and 2023, our revenues were negatively impacted due to supply chain issues, customer order delays or deferrals; service delays due to customer facility closures and reduced manufacturing capacity due to our plant relocation in 2024. </span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our product revenue is derived from the sale of the various cogeneration modules, such as the InVerde, InVerde e+, the Tecopower, and Tecochill products.  In 2019, we also reintroduced our TecoFrost refrigeration line. The sales cycle varies between 6 months to a year or more. Therefore, our product revenue can be difficult to predict and the expected margin can vary. In most cases we work with consulting engineers who specify our product in new and retrofit applications. </span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our cogeneration, heat pump, and chiller modules are built to order and revenue is recognized upon shipment.  The lead time to build and deliver a unit depends on its customized configuration and is approximately 12 to 14 weeks for a chiller and 6 to 8 weeks for a cogeneration system or heat pump, from time of purchase order.  As revenue is recognized upon shipment, our work-in-process is an important factor in understanding our financial condition in any given quarter.</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our operations are comprised of three business segments, as follows:</span></div><div style="margin-bottom:6pt;padding-left:54pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Products segment - designs, manufactures and sells industrial and commercial cogeneration systems; </span></div><div style="margin-bottom:6pt;padding-left:54pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Services segment - provides maintenance services for Tecogen supplied products at customer sites; and,</span></div><div style="margin-bottom:6pt;padding-left:54pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Energy Production segment - sells energy in the form of electricity, heat, hot water, and cooling to our customers under long-term sales agreements.</span></div><div style="margin-bottom:6pt;padding-left:36pt;text-indent:-36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%;text-decoration:underline">Recent Developments</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Vertiv Sales and Marketing Agreement - Data Center Cooling Market</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On February 28, 2025, we entered into a Sales and Marketing Agreement with Vertiv Corporation (&#8220;Vertiv&#8221;) relating to sales of Tecogen DTx chillers for data center cooling applications (the &#8220;Vertiv Agreement&#8221;). The Vertiv Agreement has a term of two years and provides that Vertiv will establish a budget for marketing activities and use commercially reasonable efforts to sell our DTx chillers for cooling applications in data centers. The Vertiv Agreement also provides the basis for the negotiation of a definitive supply agreement between us and Vertiv. We have agreed to provide Vertiv with reasonable discounts for purchases of significant volumes of our chillers, and Vertiv has agreed to use commercially reasonable efforts to assist us in securing favorable terms for engineering components and supplies for manufacturing our chillers. Pursuant to the Vertiv Agreement we have granted Vertiv the exclusive right to market and sell our DTx chillers for data center cooling applications outside the United States, and the non-exclusive right to market and sell our DTx chillers within the United States.  We have also agreed to grant Vertiv the exclusive right to market and sell our DTx chillers for data center cooling applications in the United States if Vertiv achieves and maintains agreed sales levels of DTx chillers. The foregoing description of the Vertiv Agreement is not complete and is qualified in its entirety by reference to the full text thereof, a copy of which is filed as Exhibit 99.01 to our Current Report on Form 8-K filed with the Securities and Exchange Commission on February 28, 2025, and incorporated by reference as Exhibit 10.30 hereto.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Assumption of Aegis Energy Services Maintenance Agreements   </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On March 15, 2023, we entered into an agreement ("Agreement") with Aegis Energy Services, LLC (&#8220;Aegis&#8221;) pursuant to which Aegis agreed to assign to us and we agreed to assume certain </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Aegis</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> maintenance agreements, we agreed to </span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="margin-bottom:6pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">31</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">TECOGEN INC.</span></div><div style="text-align:right"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:120%"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:120%;text-decoration:none" href="#ic4bfd2faeedf4470adc28b9f3bba3b4c_7">Table of Contents</a></span></div></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">purchase certain assets, and related matters (&#8220;Acquisition&#8221;). On April 1, 2023, the Acquisition closed. Under the Agreement, we agreed to acquire from Aegis and assume Aegis' rights and obligations arising on or after April 1, 2023 under maintenance agreements pursuant to which Aegis provided maintenance services for approximately 200 cogeneration systems, and acquired certain vehicles and inventory used by Aegis in connection with the performance of such maintenance services, and following closing, hired eight (8) Aegis employees to provide services with respect to such maintenance agreements. At closing, we acquired eight (8) Aegis vehicles for consideration consisting of $170,000 in cash. Also, we issued credits against outstanding accounts receivable due from Aegis in the amount of $300,000 for the acquisition of inventory that Aegis used to provide maintenance services. </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On February 1, 2024, Tecogen and Aegis amended the Agreement to add eighteen (18) additional maintenance service agreements (the "Amendment"). The Amendment includes an undertaking by Aegis to use commercially reasonable efforts to support and assist our execution of maintenance service agreements for an additional thirty-six (36) cogeneration units sold to customers by Aegis. </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On May 1, 2024,  Tecogen and Aegis amended the Agreement to add thirty-one (31) additional maintenance contracts (the "Second Amendment"). The Second Amendment includes an undertaking by Aegis to use commercially reasonable efforts to support and assist our execution of maintenance service agreements for an additional forty-eight (48) cogeneration units sold to customers by Aegis. </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">See Note 5. "Aegis Contract and Related Asset Acquisition" of the Notes to the Consolidated Financial Statements.&#160;&#160;&#160;&#160; </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Facilities Relocation</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In April, 2024, we moved our manufacturing operations and corporate offices from 45 First Avenue, Waltham, Massachusetts to 76 Treble Cove Road, Building 1, North Billerica, Massachusetts. As a result of the relocation, product revenues were impacted during the second and third quarters of 2024. The factory relocation also necessitated construction activities to install equipment test cells and comply with local regulations. We resumed manufacturing operations during the latter-half of the third quarter of 2024. </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Impact of Anti-fossil Fuel Sentiment</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In some key markets such as New York City, the regulatory push to eliminate fossil fuels from buildings has impacted cogeneration unit sales. We believe that as regulations take into account scope 2 emissions (site versus source emissions), products like our hybrid chiller that can choose the cleanest fuel source will have a significant advantage in decarbonization efforts.  The political environment following the 2024 elections in the United States may have a material impact on anti-fossil fuel sentiment and the regulatory environment that may be favorable to our business.    </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Impact of Utility Power Constraints, Data Center Construction</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As more load is added to the utility grid in the form of data centers, EV charging, and other demands for power, customers are facing power constraints. Tecogen believes that these power constrained customers, in particular data centers and industrial facilities, represent a significant opportunity for growth. The customer need is driven by the ability to expand an existing facility or open a new facility quickly while taking advantage of utility expense savings long term. Our chiller products can reduce the electrical capacity needed on-site by 30% or more. Our InVerde product can provide on-site power generation which allows customers to eliminate long lead times associated with electrical switch gear and bridge any short fall in power from the utility. </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Residual Impacts of Covid-19 Pandemic</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Supply chains were adversely impacted during Covid, resulting in significant delays or lack of availability of critical components such as engines. This has continued to have long term impact on product and service margins. The direct impact has been certain costs increasing faster than inflation. The indirect impact is from increased engine related costs in the service segment as replacements were deferred or overhauled components were used due to lack of parts. We have instituted a service price increase and have also been making engineering improvements to increase service intervals to increase gross margins. </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Tecochill Hybrid-Drive Air-Cooled Chiller Development</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">During the third quarter of 2021, we began development of the Tecochill Hybrid-Drive Air-Cooled Chiller. We recognized that there were many applications where the customer wanted an easy to install roof top chiller. Using the inverter design from our InVerde e+ cogeneration module, the system can simultaneously take two inputs, one from the grid or a renewable energy source and one from our natural gas engine. This allows a customer to seek the optimum blend of operational cost savings and greenhouse gas benefits while providing added resiliency from two power sources. We introduced the Tecochill Hybrid-Drive Air-Cooled Chiller at the AHR Expo in February 2023 and received an order on February 8, 2024 for three hybrid-drive air-cooled chillers for a utility company in Florida. In March 2024, the US Patent and Trademark Office granted patent 11,936,327: "Hybrid Power System With Electric Generator and Auxiliary Power Source."  </span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="margin-bottom:6pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">32</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">TECOGEN INC.</span></div><div style="text-align:right"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:120%"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:120%;text-decoration:none" href="#ic4bfd2faeedf4470adc28b9f3bba3b4c_7">Table of Contents</a></span></div></div><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Controlled Environment Agriculture  </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On July 20, 2022, we announced our intention to focus on opportunities for the use of our cogeneration equipment in low carbon Controlled Environment Agriculture ("CEA"). We believe that CEA offers an exciting opportunity to apply our expertise in clean cooling, power generation, and greenhouse gas reduction to address critical issues affecting food and energy security.  </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">CEA facilities enable multiple crop cycles (15 to 20 cycles) in one year compared to one or two crop cycles in conventional farming.  In addition, growing produce close to the point of sale reduces food spoilage during transportation.  Food crops grown in greenhouses typically have lower yields per square foot than in CEA facilities, and the push to situate facilities close to consumers in cities requires minimizing land area and maximizing yield per square foot.  Yields are increased in CEA facilities by supplementing or replacing natural light with grow lights in a climate-controlled environment - which requires significant energy use.  </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#201f1e;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In recent years our cogeneration equipment has been used in numerous cannabis cultivation facilities because our systems reduce the facility's need for power, significantly reduce operating costs and the facility GHG footprint, and offer resiliency to grid outages. Our experience providing clean energy solutions to cannabis cultivation facilities has given us significant insight into requirements relating to energy-intensive indoor agriculture applications that we expect to be transferable to CEA facilities for food production.  </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Impact of Geopolitical Tensions</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We have no operations or customers in Russia, the Ukraine, or in the Middle East. The higher energy prices for natural gas as a result of the war may affect the performance of our Energy Production Segment and the cost differential between grid generated energy and natural gas sourced energy using our cogeneration equipment. However, we have also seen higher electricity prices as much of the electricity production in the United States is generated from fossil fuels. If the electricity prices continue to rise, the economic savings generated by our products are likely to increase. In addition to the direct result of changes in natural gas and electricity prices, the war in Ukraine and the conflict in the Middle East may result in higher cybersecurity risks, increased or ongoing supply chain challenges, and volatility related to the trading prices of commodities.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#201f1e;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Related Party Notes</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On October 9, 2023, we entered into note subscription agreements with each of John N. Hatsopoulos and Earl R. Lewis, III, each a director and shareholder of Tecogen, pursuant to which Mr. Hatsopoulos agreed to provide financing to us of up to $1&#160;million, and Mr. Lewis agreed to provide financing to us of $500,000, and at his discretion an additional $500,000. On October 10, 2023, we borrowed $500,000 from Mr. Hatsopoulos and issued a one-year promissory note with interest accruing at 5.12% per annum. On July 23, 2024, we borrowed an additional $500,000 from Mr. Hatsopoulos, and executed a one-year promissory note with interest accruing at 5.06% per annum. On March 21, 2024, John H. Hatsopoulos amended the terms of the promissory note, dated October 10, 2023, extending the maturity date by one year, making the maturity date October 10, 2025. On September 18, 2024, we borrowed $500,000 from Mr. Lewis and issued a one-year promissory note with interest accruing at 4.57% per annum. </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On January 14, 2025 we agreed to permit Mr. Lewis to either receive repayment of his note in cash or, at his discretion, convert the balance of the promissory note into shares of our common stock.  In the event of such a conversion, the number of shares we will be required to issue will be determined by dividing the balance due under the promissory note by the average closing price per share of our shares during the thirty-day period prior to the date of conversion.  </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On February 18, 2025 we amended the promissory notes with Mr. Hatsopoulos to extend the maturity dates for both promissory notes to July 31, 2026. We also agreed to permit Mr. Hatsopoulos to either receive repayment of his notes in cash, or, at his discretion, convert the balances of one or both of the promissory notes into shares of our common stock.  In the event of such a conversion, the number of shares we will be required to issue will be determined by dividing the balance(s) due under the promissory note(s) by the average closing price per share of our shares during the thirty-day period prior to the date of conversion. </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">See Note 11."Related Party Notes" of the Notes to the Consolidated Financial Statements.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Critical Accounting Estimates</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our discussion and analysis of our financial condition and results of operations are based upon our consolidated financial statements, which have been prepared in accordance with accounting principles generally accepted in the United States. The preparation of these financial statements requires us to make judgments, assumptions and estimates that affect the reported amounts of assets, liabilities, sales and expenses, and related disclosure of contingent assets and liabilities. These judgments, assumptions and estimates are made or applied within the context of accounting policies related to the nature of the transaction. Note 2. "Summary of Significant Accounting Policies" of the Notes to our Consolidated Financial Statements describes the significant accounting policies used in the preparation of the consolidated financial statements.&#160;&#160;</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="margin-bottom:6pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">33</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">TECOGEN INC.</span></div><div style="text-align:right"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:120%"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:120%;text-decoration:none" href="#ic4bfd2faeedf4470adc28b9f3bba3b4c_7">Table of Contents</a></span></div></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Certain aspects of certain accounting policies require management to make difficult, subjective or complex judgments that could have a material effect on our financial condition and results of operations. These aspects of these accounting policies are considered critical accounting policies. These policies may require management to make assumptions about matters that are highly uncertain at the time of the estimate or employ an estimate where alternative estimates could have also been employed, and may involve estimates that are reasonably likely to change with the passage of time. Estimates and assumptions about future events and their effects cannot be determined with certainty.&#160;&#160;We base our estimates on historical experience and on various other assumptions believed to be applicable and reasonable under the circumstances.&#160;&#160;These estimates may change as new events occur, as additional information is obtained and as our operating environment changes.&#160;&#160;These changes have historically been minor and have been included in the consolidated financial statements as soon as they became known.&#160;&#160;In addition, management is periodically faced with uncertainties, the outcomes of which are not within its control and will not be known for prolonged periods of time.&#160;&#160;These uncertainties are discussed in "Item 1A," &#8220;Risk Factors" above. </span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Management believes that the following are critical accounting estimates:</span></div><div style="margin-bottom:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Revenue Recognition</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Revenue is recognized when performance obligations under the terms of a contract with our customer are satisfied. This generally occurs with the transfer of control of our products, services and energy production. Revenue is measured as the amount of consideration we expect to receive in exchange for transferring goods or providing services or energy to customers. </span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Determination of contract consideration allocable to multiple performance obligations within a single contract requires employing stand-alone selling prices which may be based on observable selling prices, estimated selling prices or as a residual. We use an observable selling price to determine standalone selling prices where available and either a combination of an adjusted market assessment approach, an expected cost plus a margin approach, and/or a residual approach to determine the standalone selling prices for separate performance obligations as a basis for allocating contract consideration when an observable selling price is not available.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Accounts Receivable</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Accounts receivable are stated at the amount management expects to collect from outstanding balances. The allowance for credit losses is estimated based on historical experience, aging of the receivable, the counterparty&#8217;s ability to pay, condition of general economy and industry, and </span><span style="color:#2d2d2d;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">combined with management's estimate of current conditions, reasonable and supportable forecasts of future losses to determine estimated credit losses in our</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> evaluation of outstanding accounts receivable at the end of the year. The allowance for credit losses reflects managements evaluation of our outstanding accounts receivable at the end of the year and our best estimate of probable losses inherent in the accounts receivable balance. Accounts receivable deemed uncollectible are charged against the allowance for credit losses when identified. </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Inventory</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Raw materials, work in process, and finished goods inventories are stated at the lower of cost, as determined by the average cost method, or net realizable value.  We periodically review inventory quantities on hand for excess and/or obsolete inventory based primarily on historical usage, as well as based on estimated forecast of product demand.  Any reserves that result from this review are charged to cost of sales.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Property, Plant and Equipment</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Property, plant and equipment are recorded at cost. Depreciation is provided using the straight-line method over the estimated useful life of the asset, which range from P3Y to P15Y years.  Leasehold improvements are amortized using the straight-line method over the lesser of the estimated useful lives of the assets or the term of the related leases.  Expenditures for maintenance and repairs are expensed, while renewals and betterments that materially extend the life of an asset are capitalized.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We review our property, plant and equipment for potential impairment whenever events or changes in business circumstances indicate that the carrying value of the assets may not be fully recoverable or that the useful lives of the assets are no longer appropriate. We evaluate the recoverability of our long-lived assets when impairment is indicated by comparing the net book value of the asset group to the estimated future undiscounted cash flows attributable to such assets. If the sum of the projected undiscounted cash flows (excluding interest charges) is less than the carrying value of the assets, the assets will be written down to the estimated fair value and such loss is recognized in income from continuing operations in the period in which the determination is made. If impairment is indicated, the asset is written down to its estimated fair value. </span></div><div style="margin-bottom:6pt;margin-top:6pt;padding-left:36pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Business Combinations</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In accordance with applicable accounting standards, we estimate the fair value of assets acquired and liabilities assumed as of the acquisition date of each business combination. Any excess purchase price over the fair value of the net tangible and intangible assets acquired is allocated to goodwill. We may make certain estimates and assumptions when determining the fair values of assets acquired and liabilities assumed, including intangible assets. Critical estimates in valuing </span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="margin-bottom:6pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">34</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">TECOGEN INC.</span></div><div style="text-align:right"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:120%"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:120%;text-decoration:none" href="#ic4bfd2faeedf4470adc28b9f3bba3b4c_7">Table of Contents</a></span></div></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">certain intangible assets include but are not limited to future expected cash flows from energy production sites or customer maintenance contracts, estimated operating costs, as well as discount rates. At the acquisition date, we will also record acquisition related liabilities, if applicable, for any contingent consideration or deferred payments to the seller and pre-acquisition deferred maintenance contingencies identified at service contract acquisition. Contingent consideration and pre-acquisition deferred maintenance contingencies are recorded at fair value on the acquisition date based on our expectation of achieving the contractually defined revenue targets and actual and projected future costs. The fair value of the contingent consideration and pre-acquisition deferred maintenance liabilities are remeasured each reporting period after the acquisition date and any changes in the estimated fair value are reflected as gains or losses in cost of goods sold or general and administrative expense in the consolidated statement of operations. Contingent consideration liabilities and deferred payments to sellers are recorded as current liabilities and other long-term liabilities in the consolidated balance sheets based on the expected timing of settlement.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Management&#8217;s estimates of fair value are based upon assumptions believed to be reasonable, but which are inherently uncertain and unpredictable and, as a result, actual results may differ from estimates. Any changes to provisional amounts identified during the measurement period are recognized in the reporting period in which the adjustment amounts are determined. Transaction costs associated with business combinations are expensed as incurred.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Contract Assets and Liabilities</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The favorable contract asset and unfavorable contract liability included in the intangible assets and liabilities of the consolidated balance sheets represent the fair value of customer energy production contracts (both positive for favorable contracts and negative for unfavorable contracts) which were acquired by us. </span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The determination of fair value requires development of an estimate of the price at which an orderly transaction to sell the asset or to transfer the liability would take place between market participants at the measurement date under current market conditions. Contracts are considered to be assets or liabilities by virtue of the rights and obligations inherent in the contract terms. Typically, contracts with terms considered to be at market are considered to have no fair value as, in order to be entitled to the rights under the contract, performance must occur for which a market rate of return is earned due to the at market terms. The fair value of a contract is primarily a measurement of its off-market terms. The obligation to perform under a contract with terms that are unfavorable to market results in a liability to the extent its terms are off-market. The resulting liability is an estimate of the price that would need to be paid to a willing market participant to assume the obligations under the contract in order for them to receive a market rate of return for their remaining performance obligation under the contract. The opposite holds true in instances where the terms of a contract are considered to be favorable to market. In that case an asset would exist as an estimate of the price that would be received from a willing market participant in order to be entitled to the rights under the contract.</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In determining the estimate of fair value of customer energy production contracts, the measure of market, and thus the baseline to measure the amount related to any of the off-market terms or conditions with respect to the contracts, was considered best determined, given the nature of the services provided under the contracts, by utilizing a benchmark level of margin, in this case 35% of revenue which is consistent with the average return on revenue of US investor owned public utilities. </span></div><div style="margin-bottom:5pt;margin-top:5pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">&#160;&#160;&#160;&#160;Goodwill </span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Goodwill is not amortized; however, it is reviewed for impairment annually in the fourth quarter and/or when circumstances or other events indicate that impairment may have occurred. ASC 350 &#8220;Intangibles&#8212;Goodwill and Other&#8221; (ASC 350) permits entities to make a qualitative assessment of whether it is more likely than not that a reporting unit&#8217;s fair value is less than its carrying amount before applying the two-step goodwill impairment test. Circumstances that are considered as part of the qualitative assessment and could trigger the two-step impairment test include, but are not limited to: a significant adverse change in the business climate; a significant adverse legal judgment; adverse cash flow trends; an adverse action or assessment by a government agency; unanticipated competition; decline in our stock price; and a significant restructuring charge within a reporting unit. We define reporting units at the business segment level. For purposes of testing goodwill for impairment, goodwill has been allocated to our reporting units to the extent it relates to each reporting unit. </span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">During 2018, we adopted the provisions of ASU 2017-04 which simplified goodwill impairment testing by eliminating the requirement to determine the implied value of goodwill where a quantitative analysis indicates that the carrying value of the reporting unit exceeds its fair value.</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">At a minimum, we perform a quantitative goodwill impairment test in the fourth quarter of the year. In the fourth quarter of 2024, we performed a quantitative goodwill impairment test for our energy production reporting unit acquired in 2017. We used a discounted cash flow approach to develop the estimated fair value of that reporting unit. Management judgment is required in developing the assumptions for the discounted cash flow model. An impairment would be recorded if the carrying amount of a reporting unit including goodwill exceeded the estimated fair value. Based on the aforementioned </span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="margin-bottom:6pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">35</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">TECOGEN INC.</span></div><div style="text-align:right"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:120%"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:120%;text-decoration:none" href="#ic4bfd2faeedf4470adc28b9f3bba3b4c_7">Table of Contents</a></span></div></div><div style="margin-bottom:6pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">analysis, the carrying amount of that reporting unit, including goodwill, exceeded the estimated fair value and resulted in an impairment at December&#160;31, 2024. See Note 6. "Sale of Energy Producing Assets and Goodwill Impairment".  </span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The impairment analysis recognizes the shortening of remaining contract terms with customers without replacement and without further growth, as well as less than expected cost savings, offset by profitability from our initiatives to optimize the long-term profitability of our various site operations and a price peak of the our common stock on the date of the business combination to which the goodwill relates (see also Note 6."Sale of Energy Producing Assets and Goodwill Impairment").</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The discount rate, profitability assumptions, and terminal growth rate of the Energy Production unit were the material assumptions utilized in the discounted cash flow model used to estimate its fair value. The discount rate reflects an estimate of  our weighted-average cost of capital. </span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The discounted cash flow analysis requires estimates, assumptions and judgments about future events. Our analysis uses our internally generated long-range plan.  The long-range plan reflects management's judgment and assumptions about future events.</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In the fourth quarter of 2024, we performed a quantitative goodwill impairment test for the Aegis maintenance service contracts reporting unit acquired in 2023 and 2024. We used a discounted cash flow approach to develop the estimated fair value of that reporting unit. Management judgment is required in developing the assumptions for the discounted cash flow model. An impairment would be recorded if the carrying amount of a reporting unit including goodwill exceeded the estimated fair value. Based on the aforementioned analysis, the estimated fair value of that reporting unit, including goodwill, exceeded the carrying value and resulting in no impairment at December&#160;31, 2024. See Note 5. "Aegis Contract and Related Asset Acquisition".  </span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The impairment analysis considers actual run hours and system uptime in forecasting future run hours and hourly billing rates, forecasted costs incurred to maintain the systems, assumes system downtime due to extensive repairs, contract attrition and assumes improvements in our service operations and system maintenance procedures to optimize the long-term profitability of the various maintenance service contracts.</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The discount rate, profitability assumptions, and terminal growth rate of the Aegis Contract unit were the material assumptions utilized in the discounted cash flow model used to estimate its fair value. The discount rate reflects an estimate of  our weighted-average cost of capital. </span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The discounted cash flow analysis requires estimates, assumptions and judgments about future events. Our analysis uses our internally generated long-range plan.  The long-range plan reflects management's judgment and assumptions about future events.</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We believe the assumptions used in our goodwill impairment analysis are appropriate and result in a reasonable estimate of the fair value of the reporting unit. However, due to uncertainties regarding the impact of the economic environment  on our business, there can be no assurance that our estimates and assumptions, made for purposes of our goodwill impairment testing, will prove to be an accurate prediction of the future. If our assumptions regarding future performance are not achieved, we may be required to record additional goodwill impairment charges in future periods. </span></div><div style="margin-bottom:3pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Results of Operations </span></div><div style="margin-bottom:3pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Year Ended December&#160;31, 2024 Compared to Year Ended December&#160;31, 2023 </span></div><div style="margin-bottom:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table sets forth for the periods indicated, the percentages of the net sales represented by certain items reflected in our statements of operations for the years ended December&#160;31, 2024 and 2023:</span></div><div style="margin-bottom:6pt;text-indent:36pt"><span><br/></span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="margin-bottom:6pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">36</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">TECOGEN INC.</span></div><div style="text-align:right"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:120%"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:120%;text-decoration:none" href="#ic4bfd2faeedf4470adc28b9f3bba3b4c_7">Table of Contents</a></span></div></div><div style="margin-bottom:6pt;text-indent:36pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:75.292%"><tr><td style="width:1.0%"/><td style="width:64.919%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.210%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:1.159%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.212%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="9" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Years ended December 31,</span></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Revenues</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">100.0&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">100.0&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Cost of Sales</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">56.4&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">59.4&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Gross Profit</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">43.6&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">40.6&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Operating expenses:</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">General and administrative</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">50.2&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">47.3&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Selling</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">8.3&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">7.7&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Research and development</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4.3&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3.3&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Gain on sale of assets</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(0.1)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(0.1)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Goodwill impairment</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1.0&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total operating expenses</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">63.7&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">58.1&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Loss from operations</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(20.0)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(17.6)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total other expense, net</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(0.5)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(0.3)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Consolidated net loss</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(20.7)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(18.0)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Income attributable to the noncontrolling interest</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(0.4)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(0.3)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Net loss attributable to Tecogen Inc.</span></td><td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(21.0)</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(18.3)</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr></table></div><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table presents revenue by segment and the change from the prior year for the years ended December&#160;31, 2024 and 2023:</span></div><div style="margin-bottom:6pt;text-align:justify"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:25.215%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:18.344%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:1.408%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:18.344%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:1.700%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:14.104%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:1.700%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.355%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="9" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Years Ended</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Revenues</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2024</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2023</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Increase (Decrease) $</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Increase (Decrease) %</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Product:</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;&#160;Cogeneration</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,677,930&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,761,667&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(83,737)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(3.0)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;&#160;Chillers</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,647,374&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">5,303,978&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(3,656,604)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(68.9)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Engineered Accessories</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">118,692&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">794,301&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(675,609)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(85.1)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;&#160;&#160;&#160;&#160;Total product revenue</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4,443,996&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">8,859,946&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(4,415,950)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(49.8)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Services</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">16,074,870&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">14,523,054&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,551,816&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">10.7&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Energy production</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,100,670&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,756,419&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">344,251&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">19.6&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total Revenue</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">22,619,536&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">25,139,419&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(2,519,883)</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(10.0)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr></table></div><div style="margin-bottom:6pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Revenues</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Revenues in 2024 were $22,619,536 compared to $25,139,419 in 2023, a decrease of $2,519,883 or 10.0% due to decreased Products revenues.</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Products</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Product revenues in 2024 were $4,443,996 compared to $8,859,946 in 2023, a decrease of $4,415,950 or 49.8%.  The decrease in Products revenue in 2024 compared to 2023 is due to a $3,656,604 decrease in chiller sales, $675,609 decrease in engineered accessories sales and a $83,737 decrease in cogeneration sales, due to decreased unit volume. Our product mix, as well as product revenue, can vary significantly from period to period as our products are high dollar, low volume sales in which revenue is recognized upon shipment. The relocation to our new facility in April 2024 constrained our manufacturing capacity, which impacted product revenues during the second and third quarters of 2024.</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Services</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Revenues derived from our service centers in 2024 were $16,074,870 compared to $14,523,054 for the same period in 2023, an increase of $1,551,816 or 10.7%.  The increase in Services revenue in 2024 is due to an increase in revenue from the acquired Aegis Maintenance contracts of $786,160, or 41.7%, and a $765,656, or 6.1%, increase in service contract revenues from existing contracts. </span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="margin-bottom:6pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">37</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">TECOGEN INC.</span></div><div style="text-align:right"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:120%"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:120%;text-decoration:none" href="#ic4bfd2faeedf4470adc28b9f3bba3b4c_7">Table of Contents</a></span></div></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our service operation revenues grow with the sales of installed systems, since the majority of our product sales are accompanied by a service contract or time and materials agreements.  As a result, our &#8220;fleet&#8221; of units being serviced by our service department grows with product sales. </span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Energy Production</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Energy production revenues for the year ended December&#160;31, 2024 were $2,100,670 compared to $1,756,419 for 2023, an increase of $344,251, or 19.6%. The increase in Energy Production revenue is due to increased run hours at certain energy production sites.</span></div><div style="margin-bottom:6pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Cost of Sales</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Cost of sales in 2024 was $12,749,363 compared to $14,937,801 in 2023, a decrease of $2,188,438 or 14.7%. The decrease in cost of sales is due to decreased Products revenue volume. Our overall gross margin was 43.6% in 2024 compared to 40.6% in 2023, an increase of 3.0%.  </span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Products</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Costs of sales for products in 2024 was $3,014,655 compared to $5,923,096 in 2023, a decrease of $2,908,441, or 49.1%, due to decreased product revenue volume and a decrease in the provision for obsolete inventory in 2024. Our products gross margin was 32.2% in 2024 compared to 33.1% in 2023, a decrease of 0.9%, due to decreased engineering accessories sales in 2024, which are higher margin sales.</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Services</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Cost of sales for services in 2024 was $8,432,876 compared to $7,909,202 in 2023, an increase of $523,674, or 6.6%, due to increased labor and material costs as a consequence of acquiring the Aegis customer maintenance contracts and increased material usage at existing sites, offset by a decrease in the provision for obsolete inventory in 2024. Our services gross margin was 47.5% in 2024 compared to 45.5% in 2023, an increase of 2.0%, due to decreased labor and material costs incurred to replace engines at certain sites and a decrease in the provision for obsolete inventory. </span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Energy Production</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Cost of sales for energy production for the year ended December&#160;31, 2024 was $1,301,832 compared to $1,105,503 in  2023, an increase of $196,329. Energy production gross margin was 38.0% in 2024 compared to 37.1% in 2023, an increase of 0.9%, due to higher fuel costs.</span></div><div style="margin-bottom:6pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Operating Expenses</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Operating expenses decreased in 2024 to $14,404,260 compared to $14,615,230 in 2023, a decrease of $210,970 or 1.4%.  </span></div><div style="margin-bottom:6pt;text-align:justify"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:93.859%"><tr><td style="width:1.0%"/><td style="width:30.052%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.423%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:17.591%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.423%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:17.591%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.423%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:13.385%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.423%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:13.389%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="9" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Years Ended</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="9" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Increase (Decrease)</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2024</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2023</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">$</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Operating Expenses</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">General and administrative</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">11,356,406&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">11,880,389&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(523,983)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(4.4)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Selling</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,880,903&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,931,037&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(50,134)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(2.6)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Research and development</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">961,837&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">840,011&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">121,826&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">14.5&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Gain on sale of assets</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(12,181)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(36,207)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">24,026&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(66.4)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Goodwill impairment</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">217,295&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">217,295&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">14,404,260&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">14,615,230&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(210,970)</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(1.4)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr></table></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">General and administrative expenses decreased $523,983, or 4.4%,  to $11,356,406 in the year ended December&#160;31, 2024 compared to $11,880,389 in 2023 due to a $756,422 decrease in credit loss expense, due to the write down of certain install receivables which were deemed uncollectible in 2023, a $104,986 decrease in consulting costs, a $84,756 decrease in stock-based compensation and a $80,331 decrease in amortization and depreciation, offset partially by a $265,274 increase in payroll and related benefits, a $90,593 increase in facility costs due to the transition to our new facility and $83,055 of relocation costs.</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Selling expenses decreased in the year ended December&#160;31, 2024 to $1,880,903 compared to $1,931,037 in 2023, a decrease of $50,134, or 2.6%, due to a $49,827 decrease in sales commissions.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="margin-bottom:6pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">38</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">TECOGEN INC.</span></div><div style="text-align:right"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:120%"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:120%;text-decoration:none" href="#ic4bfd2faeedf4470adc28b9f3bba3b4c_7">Table of Contents</a></span></div></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Research and development expenses increased in the year ended December&#160;31, 2024 to $961,837 compared to $840,011, an increase of $121,826 due to a $151,193 increase in depreciation and amortization, offset by a $56,924 decrease in  payroll costs and related benefits. </span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Gain on the sale of assets was $12,181 in 2024 compared to a gain on the sale of assets of $36,207 in 2023. </span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">During the year ended December&#160;31, 2024 we recognized goodwill impairment of $217,295  on our Energy Production sites compared to $0 in  2023. </span></div><div style="margin-bottom:6pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Loss from Operations</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Loss from operations for the year ended December&#160;31, 2024 was $4,534,087 compared to a loss of $4,413,612 in 2023, an increase in the loss from operations of $120,475. The increase in the net loss from operations is due to a $331,445 decrease in gross margin due to lower Products revenue and goodwill impairment of $217,295, offset partially by a $428,265 decrease in operating expenses. </span></div><div style="margin-bottom:6pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Other Income (Expense), net</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Other expense, net, for the year ended December&#160;31, 2024 was $117,118 compared to $77,053 for the same period in 2023, an increase of $40,065, due to a $74,254 increase in interest expense on borrowings under our related party notes and lease financing, partially offet by a decrease in interest income and other expense of $26,814 compared to $61,003 in 2023, due to a $35,759 decrease in currency exchange losses for the year ended December&#160;31, 2024.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Provision for State Income Taxes</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The provision for state income taxes for the years ended December&#160;31, 2024 and 2023 was $22,565 and $32,491, respectively, and represents estimated income tax payments, net of refunds, to various states.</span></div><div style="margin-bottom:6pt;margin-top:6pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Noncontrolling Interest</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We have income and losses attributable to the non-controlling interest we have in American DG Energy's 51% owned subsidiary, ADGNY, LLC. The non-controlling interest share of ADGNY profits and losses was income of $86,468 for the year ended December&#160;31, 2024 compared to income of $74,952 in 2023. </span></div><div style="margin-bottom:6pt;margin-top:6pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Net Loss Attributable to Tecogen Inc</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Net loss for the year ended December&#160;31, 2024 was $4,760,238 compared to a net loss of $4,598,108 for 2023, an increase of $162,130. The increase in the net loss is due to a $331,445 decrease in gross margin due to lower Products revenue and goodwill impairment of $217,295, offset partially by a $428,265 decrease in operating expenses. </span></div><div style="margin-bottom:6pt;margin-top:6pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Net Income (Loss) Per Share</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Net loss per share for the year ended December&#160;31, 2024 was a loss of $0.19 compared to a loss of $0.19 per share for the same period in 2023.  The basic and diluted weighted average shares outstanding for the year ended December&#160;31, 2024 were 24,861,190 and 24,861,190, respectively. For the year ended December&#160;31, 2023, basic and diluted shares were 24,850,261 and 24,850,261, respectively.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Liquidity and Capital Resources</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table presents a summary of our net cash flows from operating, investing, and financing activities:</span></div><div style="margin-bottom:6pt;text-indent:36pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:83.187%"><tr><td style="width:1.0%"/><td style="width:49.339%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.678%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:22.274%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:1.733%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:22.276%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="9" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Years End</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Cash Provided by (Used in)</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2024</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2023</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Operating activities</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4,060,547&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(817,810)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Investing activities</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(1,014,737)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(244,889)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Financing activities</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,008,153&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">500,000&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Change in cash and cash equivalents</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4,053,963&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(562,699)</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Consolidated working capital at December&#160;31, 2024 was $5,329,650, compared to $9,822,546 at December&#160;31, 2023, a decrease of $4,492,896 or 45.7%.  Included in working capital were cash and cash equivalents of $5,405,233 at December&#160;31, 2024, compared to $1,351,270 at December&#160;31, 2023, an increase of $4,053,963 or 300.0%, due to increased customer deposits and borrowing under our related party notes. The decrease in consolidated working capital is primarily due to the increase in our net loss and increased liabilities recognized due to the Aegis contract acquisition.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">For the year ended December&#160;31, 2024 we generated $4,060,547 in cash from operations compared to $817,810 in cash used from operations in 2023, an increase of $4,878,357 in net cash generated by operating activities. Our accounts </span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="margin-bottom:6pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">39</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">TECOGEN INC.</span></div><div style="text-align:right"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:120%"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:120%;text-decoration:none" href="#ic4bfd2faeedf4470adc28b9f3bba3b4c_7">Table of Contents</a></span></div></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">receivable balance decreased by $608,929 at December&#160;31, 2024 compared to December&#160;31, 2023 and our unbilled revenues decreased by $859,634 at December&#160;31, 2024 compared to December&#160;31, 2023. Our inventory decreased by $848,884 as of December&#160;31, 2024 compared to December&#160;31, 2023 and other non-current assets increased by $510,723 as of December&#160;31, 2024 as compared to December&#160;31, 2023.  </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Accounts payable decreased by $371,736 from December&#160;31, 2023 to December&#160;31, 2024 due to our increased liquidity in in the fourth quarter of 2024. Accrued expenses increased by $386,257 as of December&#160;31, 2024 compared to December&#160;31, 2023 due to timing of operating expenses.  Deferred revenues increased by $5,850,265 as of December&#160;31, 2024 as compared to December&#160;31, 2023, due to advance customer deposits collected in 2024 for Products that will ship in 2025. </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">For the year ended December&#160;31, 2024 we used $1,014,737, in cash from investing activities. We used $969,163 of cash for purchases of property and equipment, and distributed $96,974 to the 49% non-controlling interest holders of American DG New York LLC and received $51,400 in proceeds from the disposition of assets, including insurance proceeds. Cash used in asset acquisition are mainly for costs incurred in 2024 for initial improvements required to the North Billerica, Massachusetts leased premises which are estimated to range between $900,000 and $1,000,000.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">For the year ended December&#160;31, 2023 we used $244,889 in cash from investing activities. We used $170,000 of cash to acquire certain assets as part of the Aegis acquisition, used $46,851 of cash for purchases of property and equipment, and distributed $62,693 to the 49% non-controlling interest holders of American DG New York LLC and received $34,655 in proceeds from the disposition of assets, including insurance proceeds.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Cash flows from financing activities for the year ended December&#160;31, 2024 were $1,008,153, consisting of borrowings under our related party notes with John N. Hatsopoulos and Earl R. Lewis of $1,000,000.00 (see Note 11."Related Party Notes"), $71,000 of proceeds from the exercise of stock options and used $62,847 of cash in payment of finance lease principal. Cash flows from financing activities for the year ended  December&#160;31, 2023 were $500,000 borrowed under our related party note with John N. Hatsopoulos.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our total product and installation backlog as of December&#160;31, 2024 was $12,336,248 compared to $7,388,145 as of December&#160;31, 2023. Backlog includes a multi-year $2,000,000 prepaid service maintenance contract, but does not include energy contract revenues. </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">At December&#160;31, 2024 and 2023, we had cash and cash equivalents of $5,405,233 and $1,351,270, an increase of $4,053,963 or 300.0%. During the year ended December&#160;31, 2024, our revenues were negatively impacted due to customer order delays or deferrals; the relocation to our new facility in April 2024 which impacted product revenues during the second and third quarters of 2024; service delays due to customer facility closures, in some cases for extended periods and a reduction in our energy production revenues, due to business closures and increased remote work and learning environments.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> Based on our current operating plan, we believe existing resources, including cash and cash flows from operations will be sufficient to meet our working capital requirements for the next twelve months. In order to grow our business, fund the development of our hybrid-drive air-cooled chiller, and respond to opportunities in the data center market, we expect that our cash requirements will increase and we may need to raise additional capital through a debt or equity financing to meet our need for capital to fund operations and future growth. There can be no assurance that we will be able to raise such additional financing or upon terms that are acceptable to us or at all.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On October 9, 2023, we entered into note subscription agreements with each of John N. Hatsopoulos and Earl R. Lewis, III, both directors and shareholders of Tecogen, pursuant to which Mr. Hatsopoulos agreed to provide financing to us of up to $1,000,000, and Mr. Lewis agreed to provide financing to us of $500,000, and potentially, an additional $500,000 at his discretion. On October 10, 2023, we borrowed $500,000 from Mr. Hatsopoulos and issued him a one-year promissory note with interest accruing at 5.12% per annum. On July 23, 2024, we borrowed an additional $500,000 from Mr. Hatsopoulos, and issued a one-year promissory note with interest accruing at 5.06% per annum.  On March 21, 2024, John H. Hatsopoulos amended the terms of the promissory note, dated October 10, 2023, extending the maturity date by one year, making the maturity date October 10, 2025. On September 18, 2024, we borrowed $500,000 from Mr. Lewis and issued him a one-year promissory note with interest accruing at 4.57% per annum. </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On January 14, 2025 we agreed to permit Mr. Lewis to either receive repayment of his note in cash or, at his discretion, convert the balance of the promissory note into shares of our common stock.  In the event of such a conversion, the number of shares we will be required to issue will be determined by dividing the balance due under the promissory note by the average closing price per share of our shares during the thirty-day period prior to the date of conversion.  </span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="margin-bottom:6pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">40</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">TECOGEN INC.</span></div><div style="text-align:right"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:120%"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:120%;text-decoration:none" href="#ic4bfd2faeedf4470adc28b9f3bba3b4c_7">Table of Contents</a></span></div></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On February 18, 2025 we amended the promissory notes with Mr. Hatsopoulos to extend the maturity dates for both promissory notes to July 31, 2026. We also agreed to permit Mr. Hatsopoulos to either receive repayment of his notes in cash, or at his discretion, convert the balances of one or both of the promissory into shares of our common stock . In the event of such a conversion, the number of shares we will be required to issue will be determined by dividing the balance(s) due under the promissory note(s) by the average closing price per share of our common stock during the thirty-day period prior to the date of conversion. </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">See Note 11."Related Party Notes" of the Notes to the Consolidated Financial Statements.</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%"> </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%"> Obligations and Commitments</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We are obligated under operating leases for our North Billerica, Massachusetts headquarters through December 31, 2028 and our eleven leased service centers through January 2031. Future minimum lease commitments under non-cancellable operating leases as of December&#160;31, 2024, were $1,772,171. See Note 14."Leases". </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We are also obligated under finance leases for ten vehicles through October 31, 2029. Future minimum finance lease payments as of December&#160;31, 2024, were $410,881.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Seasonality</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We expect that the majority of our heating systems sales will be operational for the winter and the majority of our chilling systems sales will be operational for the summer.  Our cogeneration sales are not generally affected by the seasons.  Our service team experiences higher demand in the warmer months when cooling is required.  Chiller units for space conditioning applications are generally shut down in the winter and started up again in the spring.  This chiller &#8220;busy season&#8221; for the service team generally runs from May through the end of September. Chillers in indoor cultivation and other process cooling applications run year round. </span></div><div id="ic4bfd2faeedf4470adc28b9f3bba3b4c_40"></div><div style="margin-bottom:6pt;margin-top:6pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%;text-decoration:underline">Item 7A. Quantitative and Qualitative Disclosures About Market Risk.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Disclosure in response to this item is not required of a smaller reporting company.</span></div><div id="ic4bfd2faeedf4470adc28b9f3bba3b4c_43"></div><div style="margin-bottom:6pt;margin-top:6pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%;text-decoration:underline">Item 8. Financial Statements and Supplementary Data.&#160;</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The information required by this item is incorporated from Item 15 and pages F-1 through F-33 of this Annual Report on Form 10-K.</span></div><div id="ic4bfd2faeedf4470adc28b9f3bba3b4c_46"></div><div style="margin-bottom:6pt;margin-top:6pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%;text-decoration:underline">Item 9. Changes in and Disagreements with Accountants on Accounting and Financial Disclosure.&#160;</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">None.</span></div><div id="ic4bfd2faeedf4470adc28b9f3bba3b4c_49"></div><div style="margin-bottom:6pt;margin-top:6pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%;text-decoration:underline">Item 9A. Controls and Procedures.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Management&#8217;s Evaluation of Disclosure Controls and Procedures:&#160;</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our disclosure controls and procedures are designed to provide reasonable assurance that the control system&#8217;s objectives will be met.  Our management, including our Chief Executive Officer and Principal Financial Officer, after evaluating the effectiveness of our disclosure controls and procedures as of December&#160;31, 2024 ("Evaluation Date"), has concluded that as of the Evaluation Date, our disclosure controls and procedures were not effective due to a material weakness in financial reporting relating to a small number of employees dealing with general controls over information technology.  Our management has decided that the expense associated with continued implementation of new systems is justified and continues to implement systems to put the proper control procedures in place to remediate this weakness.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">For these purposes, the term disclosure controls and procedures of an issuer means controls and other procedures of an issuer that are designed to ensure that information required to be disclosed by the issuer in the reports that it files or submits under Section 13(a) or 15(d) of the Securities Exchange Act is recorded, processed, summarized and reported within the time periods specified in the SEC&#8217;s rules and forms.  Disclosure controls and procedures include, without limitation, controls and procedures designed to ensure that information required to be disclosed by an issuer in the reports that it files or submits under Section 13(a) or 15(d) of the Securities Exchange Act is accumulated and communicated to the issuer&#8217;s management, including its principal executive and principal accounting officers, or persons performing similar functions, as appropriate to allow timely decisions regarding required disclosure.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Management&#8217;s Annual Report on Internal Control over Financial Reporting:</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our management is responsible for establishing and maintaining adequate internal controls over financial reporting as defined in Rules 13a-15(f)&#160;under the Securities Exchange Act of 1934, as amended.  </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our internal control over financial reporting is a process designed to provide reasonable assurance regarding the reliability of financial reporting and the preparation of financial statements for external purposes in accordance with generally </span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="margin-bottom:6pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">41</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">TECOGEN INC.</span></div><div style="text-align:right"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:120%"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:120%;text-decoration:none" href="#ic4bfd2faeedf4470adc28b9f3bba3b4c_7">Table of Contents</a></span></div></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">accepted accounting principles in the United States. Our internal controls over financial reporting include those policies and procedures that: </span></div><div style="margin-bottom:6pt;margin-top:6pt;padding-left:45pt;text-align:justify;text-indent:-9pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:5.5pt">pertain to the maintenance of records that in reasonable detail accurately and fairly reflect the transactions and dispositions of the assets of the Company; </span></div><div style="margin-bottom:6pt;margin-top:6pt;padding-left:45pt;text-align:justify;text-indent:-9pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:5.5pt">provide reasonable assurance that transactions are recorded as necessary to permit preparation of financial statements in accordance with U.S. generally accepted accounting principles; </span></div><div style="margin-bottom:6pt;margin-top:6pt;padding-left:45pt;text-align:justify;text-indent:-9pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:5.5pt">provide reasonable assurance that receipts and expenditures of the Company are being made only in accordance with authorizations of management and directors of the Company; and </span></div><div style="margin-bottom:6pt;margin-top:6pt;padding-left:45pt;text-align:justify;text-indent:-9pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:5.5pt">provide reasonable assurance regarding prevention or timely detection of unauthorized acquisition, use, or disposition of the Company&#8217;s assets that could have a material effect on the consolidated financial statements.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Because of its inherent limitations, internal control over financial reporting, no matter how well designed, may not prevent or detect misstatements.  Accordingly, even effective internal control over financial reporting can provide only reasonable assurance with respect to financial statement preparation.  Also, the assessment of the effectiveness of internal control over financial reporting was made as of a specific date.  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.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Management, including our Chief Executive Officer and Principal Financial Officer, conducted an evaluation of our internal control over financial reporting based on the framework and criteria established in Internal Control&#8212;Integrated Framework, issued by the Committee of Sponsoring Organizations of the Treadway Commission.  This evaluation included review of the documentation of controls, evaluation of the design effectiveness of controls, testing of the operating effectiveness of controls and a conclusion regarding this evaluation. Due to the small number of employees dealing with general controls over information technology security and user access, management believes this constitutes a material weakness in financial reporting. Based on this evaluation, management concluded that our internal control over financial reporting was not effective as of December&#160;31, 2024.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our management, including our Chief Executive Officer and Principal Financial Officer, does not expect that our disclosure controls or our internal control over financial reporting will prevent or detect all errors and all fraud.  A control system, no matter how well designed and operated, can provide only reasonable, not absolute, assurance that the control system&#8217;s objectives will be met.  The design of a control system must reflect the fact that there are resource constraints, and the benefits of controls must be considered relative to their costs.  Further, because of the inherent limitations in all control systems, no evaluation of controls can provide absolute assurance that misstatements due to error or fraud will not occur or that all control issues and instances of fraud, if any, within the Company have been detected.  These inherent limitations include the realities that judgments in decision-making can be faulty and that breakdowns can occur because of a simple error or mistake.  Controls can also be circumvented by the individual acts of some persons, by collusion of two or more people, or by management override of the controls.  The design of any system of controls is based in part on certain assumptions about the likelihood of future events, and there can be no assurance that any design will succeed in achieving its stated goals under all potential future conditions.  </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">This annual report does not include an attestation report of our registered independent public accounting firm regarding internal control over financial reporting.  Management&#8217;s report was not subject to attestation by our registered independent public accounting firm pursuant to rules of the Securities and Exchange Commission that permit us to provide only management&#8217;s report in this Annual Report on Form 10-K.</span></div><div style="margin-bottom:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Remediation</span></div><div style="padding-left:4.5pt;text-align:justify;text-indent:31.5pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We are committed to remediating the material weakness identified in internal controls over financial reporting and have begun the process to remediate this material weakness. Our efforts have focused on instituting mitigating controls to address segregation of duties; hiring of additional staff; implementing additional controls to address system access deficiencies; implementing additional controls over business operations; establish independent review and verification procedures for our vendor and customer master files; enhance the documentation to support review occurrences and approval procedures; and, commence regular periodic reviews of our internal controls over financial reporting with our Board of Directors and Audit Committee to address the inadequate risk oversight function and institute procedures to evaluate and report on risks to financial reporting, including the documentation and completion of a comprehensive risk assessment to identify all potential risk areas and evaluate the adequacy of our controls to mitigate these risks.  </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Changes in Internal Control Over Financial Reporting </span></div><div style="margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">During the year ended December 31, 2024, we implemented system access controls to address system access deficiencies and have instituted mitigating controls to address segregation of duty issues. In addition, we have implemented </span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="margin-bottom:6pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">42</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">TECOGEN INC.</span></div><div style="text-align:right"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:120%"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:120%;text-decoration:none" href="#ic4bfd2faeedf4470adc28b9f3bba3b4c_7">Table of Contents</a></span></div></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">mitigating controls throughout our financial reporting process, allowing us to address the insufficient segregation of duties, oversight of work performed and allow us to continue to institute additional compensating or mitigating controls and will also allow us to document internal control support occurrences and approval procedures. We have instituted systems access controls and mitigating controls to system access. There are no other changes that have materially affected, or are reasonably likely to materially affect our internal controls over financial reporting (as such term is defined in Rules 13a-15(f) and 15d-15(f) under the Securities Exchange Act).</span></div><div id="ic4bfd2faeedf4470adc28b9f3bba3b4c_52"></div><div style="margin-bottom:6pt;margin-top:6pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%;text-decoration:underline">Item 9B. Other Information.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"><ix:nonNumeric contextRef="c-4" name="ecd:NonRule10b51ArrTrmntdFlag" format="ixt:fixed-false" id="f-49"><ix:nonNumeric contextRef="c-4" name="ecd:Rule10b51ArrTrmntdFlag" format="ixt:fixed-false" id="f-50"><ix:nonNumeric contextRef="c-4" name="ecd:NonRule10b51ArrAdoptedFlag" format="ixt:fixed-false" id="f-51"><ix:nonNumeric contextRef="c-4" name="ecd:Rule10b51ArrAdoptedFlag" format="ixt:fixed-false" id="f-52">Not applicable</ix:nonNumeric></ix:nonNumeric></ix:nonNumeric></ix:nonNumeric></span></div><div id="ic4bfd2faeedf4470adc28b9f3bba3b4c_55"></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%;text-decoration:underline">Item 9C. Disclosure Regarding Foreign Jurisdictions that Prevent Insp</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%;text-decoration:underline">ection.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Not applicable</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="margin-bottom:6pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">43</span></div></div></div><div id="ic4bfd2faeedf4470adc28b9f3bba3b4c_58"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">TECOGEN INC.</span></div><div style="text-align:right"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:120%"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:120%;text-decoration:none" href="#ic4bfd2faeedf4470adc28b9f3bba3b4c_7">Table of Contents</a></span></div></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">PART III</span></div><div style="margin-bottom:6pt;margin-top:6pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%"> </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%;text-decoration:underline">Item 10. Directors, Executive Officers and Corporate Governance.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The information required by this Item is incorporated by reference to our 2024 definitive proxy statement to be filed with the SEC within 120 days following the registrant's fiscal year ended December&#160;31, 2024. </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our Board of Directors has <ix:nonNumeric contextRef="c-1" name="ecd:InsiderTrdPoliciesProcAdoptedFlag" format="ixt:fixed-true" id="f-53">adopted</ix:nonNumeric> an insider trading policy that applies to all of our officers, directors and employees. Our insider trading policy prohibits officers, directors and employees from trading in Company securities while in possession of or on the basis of material non-public information. A copy of our insider trading policy is attached as Exhibit 19.1 to this Annual Report on Form 10-K and the insider trading policy can be found on our internet website address at http://www.tecogen.com.</span></div><div id="ic4bfd2faeedf4470adc28b9f3bba3b4c_61"></div><div style="margin-bottom:6pt;margin-top:6pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%;text-decoration:underline">Item 11. Executive Compensation.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The information required by this Item is incorporated by reference to our 2024 definitive proxy statement to be filed with the SEC within 120 days following the registrant's fiscal year ended December&#160;31, 2024.</span></div><div id="ic4bfd2faeedf4470adc28b9f3bba3b4c_64"></div><div style="margin-bottom:6pt;margin-top:6pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%;text-decoration:underline">Item 12. Security Ownership of Certain Beneficial Owners and Management and Related Stockholder Matters.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The information required by this Item is incorporated by reference to our 2024 definitive proxy statement to be filed with the SEC within 120 days following the registrant's fiscal year ended December&#160;31, 2024.</span></div><div id="ic4bfd2faeedf4470adc28b9f3bba3b4c_67"></div><div style="margin-bottom:6pt;margin-top:6pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%;text-decoration:underline">Item 13. Certain Relationships and Related Transactions, and Director Independence.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The information required by this Item is incorporated by reference to our 2024 definitive proxy statement to be filed with the SEC within 120 days following the registrant's fiscal year ended December&#160;31, 2024.</span></div><div id="ic4bfd2faeedf4470adc28b9f3bba3b4c_70"></div><div style="margin-bottom:6pt;margin-top:6pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%;text-decoration:underline">Item 14. Principal Accountant Fees and Services.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The information required by this Item is incorporated by reference to our 2024 definitive proxy statement to be filed with the SEC within 120 days following the registrant's fiscal year ended December&#160;31, 2024.</span></div><div id="ic4bfd2faeedf4470adc28b9f3bba3b4c_73"></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">PART IV</span></div><div style="margin-bottom:6pt;margin-top:6pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%;text-decoration:underline">Item 15. Exhibits and Financial Statement Schedules.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following are filed as part of this Annual Report on Form 10-K.</span></div><div style="margin-bottom:6pt;margin-top:6pt;padding-left:54pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(a)&#160;&#160;&#160;&#160;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Index to Financial Statements and Financial Statement Schedules</span></div><div style="margin-bottom:6pt;margin-top:6pt;padding-left:54pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#160;&#160;&#160;&#160;Report of Independent Registered Public Accounting Firm</span></div><div style="margin-bottom:6pt;margin-top:6pt;padding-left:72pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Consolidated Balance Sheets as of December&#160;31, 2024 and 2023 </span></div><div style="margin-bottom:6pt;margin-top:6pt;padding-left:72pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Consolidated Statements of Operations for the years ended December&#160;31, 2024 and 2023 </span></div><div style="margin-bottom:6pt;margin-top:6pt;padding-left:72pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Consolidated Statements of Stockholders' Equity for the years ended December&#160;31, 2024 and 2023 </span></div><div style="margin-bottom:6pt;margin-top:6pt;padding-left:72pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Consolidated Statements of Cash Flows for the years ended December&#160;31, 2024 and 2023 </span></div><div style="margin-bottom:6pt;margin-top:6pt;padding-left:72pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Notes to Audited Consolidated Financial Statements</span></div><div style="margin-bottom:6pt;margin-top:6pt;padding-left:54pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">All other schedules for which provision is made in the applicable accounting regulations of the SEC are not required under the related instructions, or are inapplicable, and therefore have been omitted.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(b)   </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Exhibits</span></div><div style="margin-bottom:6pt;margin-top:6pt;padding-left:54pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The exhibits are listed in the Exhibit Index attached hereto and incorporated by reference herein.</span></div><div id="ic4bfd2faeedf4470adc28b9f3bba3b4c_76"></div><div style="margin-bottom:6pt;margin-top:6pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%;text-decoration:underline">Item 16.  Form 10-K Summary.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company has determined not to include a summary of the information permitted by Item 16 of the Form 10-K. </span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="margin-bottom:6pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">44</span></div></div></div><div id="ic4bfd2faeedf4470adc28b9f3bba3b4c_79"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="-sec-extract:summary;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">TECOGEN INC.</span></div><div style="text-align:right"><span><br/></span></div></div><div style="-sec-extract:summary;margin-bottom:6pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">EXHIBIT INDEX</span></div><div style="margin-bottom:6pt;margin-top:5pt;text-align:center;text-indent:36pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"><tr><td style="width:1.0%"/><td style="width:9.880%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:43.409%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:43.411%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Exhibit Number</span></td><td colspan="6" style="border-bottom:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Description</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2.1</span></td><td colspan="6" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1537435/000153743516000169/a201611018-kmergerexagt.htm">Agreement and Plan of Merger, dated as of November 1, 2016, by and among Tecogen Inc, American DG Energy Inc. and ADGE.Tecogen Merger Sub Inc. incorporated herein by reference to Exhibit 2.1 to the registrant's Current Report on Form 8-K filed with the SEC on November 2, 2016.</a></span></div></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2.2</span></td><td colspan="6" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="text-align:justify"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1537435/000153743517000026/tgn-201703238kex22mergera1.htm">Amendment 1 to the Agreement and Plan of Merger, dated as of March 23, 2017, by and among Tecogen Inc., American DG Energy Inc., and ADGE.Tecogen Merger Sub Inc. incorporated herein by reference to Exhibit 2.2 to the registrant's Current Report on Form 8-K filed with the SEC on March 24, 2017.</a></span></div></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3.1</span></td><td colspan="6" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="text-align:justify"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1537435/000153743514000052/tgn-20140619xs1a3ex31certo.htm">Amended and Restated Certificate of Incorporation incorporated herein by reference to Exhibit 3.1 to Amendment No. 3 to the registrant's Registration Statement on Form S-1 (Registration No. 333-193791) filed with the SEC on June 27, 2014.</a></span></div></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3.2</span></td><td colspan="6" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="text-align:justify"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1537435/000153743514000052/tgn-20140619xs1a3ex32bylaws.htm">Amended and Restated Bylaws incorporated herein by reference to Exhibit 3.2 Amendment No. 3 to the registrant's Registration Statement on Form S-1 (Registration No. 333-193791) filed with the SEC on June 27, 2014.</a></span></div></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.1</span></td><td colspan="6" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="text-align:justify"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1537435/000153743514000052/tgn-20140619xs1a3ex41stksp.htm">Specimen Common Stock Certificate of Tecogen Inc. incorporated herein by reference to Exhibit 4. to the  registrant's Amendment No. 3 to the registrant's Registration Statement on Form S-1 (Registration No. 333-193791) filed with the SEC on June 27, 2014</a></span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">.</span></div></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.2+</span></td><td colspan="6" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="text-align:justify"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1537435/000153743514000052/tgn-20140619xs1a3ex43optio.htm">Form of Stock Option Agreement incorporated by reference to exhibit 4.3 to Amendment No. 3 to the registrant's Registration Statement on Form S-1 (Registration No. 333-193791) filed with the SEC on June 27, 2014.</a></span></div></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.3</span></td><td colspan="6" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="text-align:justify"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1537435/000153743520000004/exhibit44-descregistrantss.htm">Description of Registrant's Securities incorporated herein by reference to Exhibit 4.4 to the registrant's Annual Report on Form 10-K for the year ended December 31, 2019, filed with the SEC on  March 12, 2020.</a></span></div></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.4</span></td><td colspan="6" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="text-align:justify"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/0001537435/000153743522000009/tecogenformnqsoagreement.htm">Form of Non-Qualified Stock Option Award Agreement (Employee Form) under the registrant's 2022 Stock Incentive Plan filed with the registrant's Current Report on Form 8-K filed with the SEC on March 9, 2022.</a></span></div></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.5</span></td><td colspan="6" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="text-align:justify"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/0001537435/000153743522000009/tecogenformofisoaward.htm">Form of Incentive Stock Option Award Agreement under the registrant's 2022 Stock Incentive Plan filed with the registrant's Current Report on Form 8-K filed with the SEC on March 9, 2022.</a></span></div></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.6</span></td><td colspan="6" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="text-align:justify"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/0001537435/000153743522000009/tecogenformrsaagreement.htm">Form of Restricted Stock Award Agreement under registrant's 2022 Stock Incentive Plan filed with the registrant's Current Report on Form 8-K filed with the SEC on March 9, 2022.</a></span></div></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.7</span></td><td colspan="6" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="text-align:justify"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/0001537435/000153743522000009/tecogenformdirectornqsa.htm">Form of Non-Qualified Stock Option Award Agreement (Non-Employee Director Form) under the registrant's 2022 Stock Incentive Plan filed with the registrant's Current Report on Form 8-K filed with the SEC on March 9, 2022.</a></span></div></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.8+</span></td><td colspan="6" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="text-align:justify"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1537435/000153743518000028/tgn_2006stockoptionplaname.htm">Tecogen Inc. 2006 Stock Incentive Plan, as amended and restated on November 1, 2016 incorporated herein by reference to Exhibit 10.1 to the registrant's Annual Report on Form 10-K, for the year ended December 31, 2017, filed with the SEC on March 21, 2018.</a></span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"> </span></div></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.9#</span></td><td colspan="6" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="text-align:justify"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1537435/000153743514000052/tgn-20140619xs1a3ex1013wis.htm">Exclusive License Agreement between Tecogen Inc. and the Wisconsin Alumni Research Foundation, dated February 5, 2007 incorporated herein by reference to Exhibit 10.13 to Amendment No. 3 to the registrant's Registration Statement on Form S-1 (Registration No. 333-193791), filed with the SEC on June 27, 2014.</a></span></div></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.10</span></td><td colspan="6" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:justify"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1537435/000153743514000064/tgn-20140630xex1024adgeagt.htm">Facilities and Support Services Agreement between American DG Energy Inc. and Tecogen Inc., dated August&#160;8,&#160;2014, incorporated herein by reference to Exhibit 10.1 to American DG Energy Inc.'s Quarterly Report on Form 10-Q (No. 001-34493) filed with the SEC on August 14, 2014. </a></span></div></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.11</span></td><td colspan="6" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:justify"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1537435/000153743515000045/tgn-20150807ex1030adgeagt.htm">First Amendment to the Facilities and Support Services Agreement between American DG Energy Inc. and Tecogen Inc., dated August 7, 2015, incorporated herein by reference to Exhibit 10.1 to American DG Energy Inc.'s Current Report on Form 8-K (No. 001-34493) filed with the SEC on August 13, 2015.</a></span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"> </span></div></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.12+</span></td><td colspan="6" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1537435/000153743518000002/advisoragreement.htm">Advisory Agreement, dated January 3, 2018, between Tecogen Inc. and John N. Hatsopoulos incorporated herein by reference to Exhibit 10.1 to the registrant's Current Report on Form 8-K filed with the SEC on January 8, 2018.</a></span></div></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.13</span></td><td colspan="6" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:justify"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1537435/000153743519000006/guarantyrecogenone.htm">Guaranty Agreement by registrant in favor of CogenOne LLC and SDCL TG Cogen LLC, dated December 14, 2018, incorporated herein by reference to Exhibit 10.49 to the registrant's Current Report on Form 8-K filed with the SEC on March 8, 2019.</a></span></div></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.14</span></td><td colspan="6" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:justify"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1537435/000153743519000006/membershippurchaserecogent.htm">Membership Interest Purchase Agreement by and among SDCL TG Cogen LLC, American DG Energy Inc., and registrant, dated as of March 5, 2019, incorporated herein by reference to Exhibit 10.50 to the registrant's Current Report on Form 8-K filed with the SEC on March 8, 2019</a></span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">.</span></div></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.15</span></td><td colspan="6" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:justify"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1537435/000153743519000006/guarantyrecogentwo.htm">Guaranty Agreement by registrant in favor of CogenTwo LLC and SDCL TG Cogen LLC, dated March 5, 2019, incorporated herein by reference to Exhibit 10.51 to the registrant's Current Report on Form 8-K filed with the SEC on March 8, 2019.</a></span></div></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.16</span></td><td colspan="6" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:justify"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1537435/000153743519000006/billingagreementrecogentwo.htm">Billing and Asset Management Agreement by and among CogenOne LLC and the registrant,  as amended and restated as of March 5, 2019,  incorporated herein by reference to Exhibit 10.52 to the registrant's Current Report on Form 8-K filed with the SEC on March 8, 2019.</a></span></div></td></tr></table></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="-sec-extract:summary;margin-bottom:6pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">45</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="-sec-extract:summary;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">TECOGEN INC.</span></div><div style="text-align:right"><span><br/></span></div></div><div style="margin-bottom:6pt;margin-top:5pt;text-align:center;text-indent:36pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"><tr><td style="width:1.0%"/><td style="width:9.880%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:43.409%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:43.411%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.17</span></td><td colspan="6" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:justify"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1537435/000153743519000006/billingagreementrecogenone.htm">Amended and Restated Billing and Asset Management Agreement by and among CogenTwo LLC and the registrant. dated March 5, 2019,  incorporated herein by reference to Exhibit 10.53 to the registrant's Current Report on Form 8-K filed with the SEC on March 8, 2019.</a></span></div></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.18</span></td><td colspan="6" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:justify"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1537435/000153743519000038/letterreadvisoryagreement2.htm">Letter Agreement dated July 22, 2019, amending Advisory Agreement, dated January 3, 2018, between registrant and John N. Hatsopoulos incorporated herein by reference to Exhibit 10.1 to the registrant's Current Report on Form 8-K filed with the SEC on July 24, 2019.</a></span></div></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.19+</span></td><td colspan="6" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:justify"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1537435/000153743520000082/cicplan.htm">Tecogen Change in Control Severance Benefit Plan, dated July 9, 2020, incorporated herein by reference to Exhibit 99.01 to the registrant's Current Report on Form 8-K filed with the SEC on July 21, 2020.</a></span></div></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.20</span></td><td colspan="6" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:justify"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1537435/000153743521000011/tgenpea1toforms-3onformsx1.htm">Post-Effective Amendment No. 1 to Form S-3 on Form S-1 Registration Statement Under the Securities Act of 1933, filed with the SEC on March 12, 2021, incorporated herein by reference.</a></span></div></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.21+</span></td><td colspan="6" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:justify"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/0001537435/000153743522000009/tecogen2022stockincentivep.htm">Tecogen Inc. 2022 Stock Incentive Plan adopted as of March 8, 2022 incorporated herein by reference to Exhibit 10.1 to the registrant's Current Report on Form 8-K filed with the SEC on March 9, 2022.</a></span></div></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.22+</span></td><td colspan="6" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:justify"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/0001537435/000153743522000009/tecogendirectorcomppolicy.htm">Tecogen Inc. Policy Regarding Compensation of Non-Employee Directors filed with the Current Report on Form 8-K filed with the SEC on March 9, 2022.</a></span></div></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.23</span></td><td colspan="6" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:justify"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1537435/000153743523000009/aegisassignmentagreement.htm">Agreement Regarding the Assignment of Certain Maintenance Agreements, the Purchase and Sale of Certain Assets, and Related Matters with Aegis Energy Services LLC, incorporated by reference to Exhibit 99.01 to the registrant's Current Report on Form 8-K filed with the SEC on March 16, 2023.</a></span></div></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.24</span></td><td colspan="6" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1537435/000153743523000131/jnhnotesubscription.htm">Note Subscription Agreement dated October 9, 2023 by John H. Hatsopoulos, incorporated herein by reference to Exhibit 99.01 to the registrant's Current Report on Form 8-K filed with the SEC on October 10, 2023</a></span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">.</span></div></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.25</span></td><td colspan="6" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1537435/000153743523000131/erlnotesubscription.htm">Note Subscription Agreement dated October 9, 2023 by </a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1537435/000153743523000131/erlnotesubscription.htm">Ear</a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1537435/000153743523000131/erlnotesubscription.htm">l </a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1537435/000153743523000131/erlnotesubscription.htm">R</a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1537435/000153743523000131/erlnotesubscription.htm">. </a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1537435/000153743523000131/erlnotesubscription.htm">Lewis</a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1537435/000153743523000131/erlnotesubscription.htm">, incorporated herein by reference to Exhibit 99.0</a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1537435/000153743523000131/erlnotesubscription.htm">2</a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1537435/000153743523000131/erlnotesubscription.htm"> to the registrant's Current Report on Form 8-K filed with the SEC on October 10, 2023</a></span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">.</span></div></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.26</span></td><td colspan="6" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/ix?doc=/Archives/edgar/data/1537435/000153743524000015/tgen-20240201.htm">Amendment to the Agreement Regarding Assignment of Certain Maintenance Agreements dated as of March 15, 2023 with Aegis Energy Services, LLC, incorporated by reference to Exhibit 99.01 to the registrant's Current Report of Form 8-K filed with the SEC on February 2, 2024.</a></span></div></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.27*</span></td><td colspan="6" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="jnhletterreloan.htm">Letter </a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="jnhletterreloan.htm">a</a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="jnhletterreloan.htm">greement </a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="jnhletterreloan.htm">regarding</a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="jnhletterreloan.htm"> the Note Subscription Agreement by John </a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="jnhletterreloan.htm">N</a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="jnhletterreloan.htm">. Hatsop</a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="jnhletterreloan.htm">oulos, dated March 21, 2024.</a></span></div></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.28</span></td><td colspan="6" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:justify"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1537435/000153743524000054/aegissecondamendment.htm">Second Amendment to the Agreement Regarding Assignment of Certain Maintenance Agreements dated as of May 1, 2024 with Aegis Energy Services, LLC, incorporated by reference to Exhibit 99.01 to the registrant's Current Report on Form 8-K filed with the SEC on May 3, 2024.</a></span></div></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.29</span></td><td colspan="6" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:justify"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1537435/000153743525000008/amendmenttojnhloanstotgen.htm">Amendment to Tecogen Promissory Notes with dated as of February 18, 2025 with John H. Hatsopoulos, incorporated by reference to Exhibit 99.01 to the registrant's Current Report of Form 8-K filed with the SEC on February 19, 2025.</a></span></div></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.30</span></td><td colspan="6" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1537435/000153743525000012/salesandmarketingagreement.htm">Sales and Marketing Agreement effective as of March 1, 2025 by and between Vertiv Corporation and Tecogen relating to Tecogen DTx chillers for cooling applications in data centers, incorporated herein by reference to Exhibit 99.01 to the registrant's Current Report on Form 8-K filed with the SEC on March 3, 2025. (portion omitted)</a></span></div></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">19.1*</span></td><td colspan="6" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="tgn-20241231xex191.htm">Tecogen Policy Regarding Insider Trading </a></span></div></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">21.1</span></td><td colspan="6" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:justify"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1537435/000153743521000011/listofsubsidiaries.htm">List of subsidiaries incorporated by reference to Exhibit 21.1 to the registrants Post-Effective Amendment No. 1 to Form S-3 on Form S-1 Registration Statement Under the Securities Act of 1933, filed with the SEC on March 12, 2021.</a></span></div></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">23.1*</span></td><td colspan="6" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:justify"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="tgn-20241231xex231.htm">Consent of Wolf &amp; Company, P.C.</a></span></div></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">24.1*</span></td><td colspan="6" style="background-color:#ffffff;padding:2px 1pt;text-align:justify;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Power of Attorney (included on Signature pages of this Annual Report on Form 10-K)</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">31.1*</span></td><td colspan="6" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="tgn-20241231xex311.htm">Certification of Chief Executive Officer And Chief Financial Officer pursuant to Rule 13a-14(a) as adopted pursuant to Section 302 of the Sarbanes-Oxley Act of 2002.</a></span></div></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">32.1*</span></td><td colspan="6" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="tgn-20241231xex321.htm">Certification of Chief Executive Officer and Chief Financial Officer pursuant to 18 U.S.C. 1350 adopted pursuant to Section 906 of the Sarbanes-Oxley Act of 2002.</a></span></div></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">101.INS*</span></td><td colspan="6" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">XBRL Instance Document</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">101.SCH*</span></td><td colspan="6" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">XBRL Taxonomy Extension Schema</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">101.CAL*</span></td><td colspan="6" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">XBRL Taxonomy Extension Calculation Linkbase</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">101.DEF*</span></td><td colspan="6" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">XBRL Taxonomy Extension Definition Linkbase</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">101.LAB*</span></td><td colspan="6" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">XBRL Taxonomy Extension Label Linkbase</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">101.PRE*</span></td><td colspan="6" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">XBRL Taxonomy Extension Presentation Linkbase</span></td></tr><tr style="height:6pt"><td colspan="6" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">*</span></td><td colspan="6" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Filed herewith.</span></td></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">#</span></td><td colspan="6" style="background-color:#cceeff;padding:2px 1pt;text-align:justify;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Confidential Treatment has been granted for portions of this document. The confidential portions were omitted and filed separately, on a confidential basis, with the Securities and Exchange Commission.</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">+</span></td><td colspan="6" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Management contract or compensatory plan or agreement.</span></td></tr></table></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="-sec-extract:summary;margin-bottom:6pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">46</span></div></div></div><div id="ic4bfd2faeedf4470adc28b9f3bba3b4c_82"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">TECOGEN INC.</span></div><div style="text-align:right"><span><br/></span></div></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">SIGNATURES</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Pursuant to the requirements of Section 13 or 15(d) of the Securities Exchange Act of 1934, the registrant has duly caused this report to be signed on its behalf by the undersigned, thereunto duly authorized.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:92.397%"><tr><td style="width:1.0%"/><td style="width:52.855%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:3.963%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:39.882%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="6" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">TECOGEN INC.</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="6" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(Registrant)</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="6" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Dated:  March 18, 2025</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">By:</span></td><td colspan="3" style="border-bottom:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">/s/ Abinand Rangesh</span></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="6" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Chief Executive and Financial Officer</span></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="6" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(Principal Executive and Financial Officer)</span></td></tr></table></div><div style="margin-bottom:3pt;text-align:justify;text-indent:36pt"><span><br/></span></div><div style="margin-bottom:3pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">KNOW ALL PERSONS BY THESE PRESENTS, </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">that each person whose signature appears below constitutes and appoints Abinand Rangesh, with the power of substitution and re-substitution, as his or her attorney-in-fact and agent, for him or her and in his or her name, place and stead, in any and all capacities, to sign any and all amendments to this Annual Report on Form 10-K for the year ended December&#160;31, 2024, and to file the same, with all exhibits thereto and other documents in connection therewith, with the Securities and Exchange Commission, granting unto said attorney-in-fact and agent, and each of them, full power and authority to do and perform each and every act and thing requisite and necessary to be done in connection therewith, as fully to all intents and purposes as he or she might or could do in person, hereby ratifying and confirming that said attorney-in-fact and agent, or his or her substitute or substitutes, may lawfully do or cause to be done by virtue hereof.</span></div><div style="margin-bottom:3pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Pursuant to the requirements of the Securities Exchange Act of 1934, this report has been signed below by the following persons on behalf of the registrant and in the capacities and on the dates indicated.</span></div><div style="margin-bottom:3pt;text-align:justify;text-indent:36pt"><span><br/></span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:94.444%"><tr><td style="width:1.0%"/><td style="width:29.395%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:2.769%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:45.184%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:2.615%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:14.537%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Signature</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Title</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Date</span></td></tr><tr><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">/s/ Angelina M. Galiteva</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Director, Chairperson of the Board</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">March 18, 2025</span></td></tr><tr><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Angelina M. Galiteva</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">/s/ John N. Hatsopoulos</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Lead Director</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">March 18, 2025</span></td></tr><tr><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">John N. Hatsopoulos</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td></tr><tr style="height:12pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">/s/ Abinand Rangesh</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Director and Chief Executive and Financial Officer </span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">March 18, 2025</span></td></tr><tr><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Abinand Rangesh</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(Principal Executive and Financial Officer)</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">/s/ Ahmed F. Ghoniem</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Director</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">March 18, 2025</span></td></tr><tr><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Ahmed F. Ghoniem</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">/s/ Earl R. Lewis III</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Director</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">March 18, 2025</span></td></tr><tr><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Earl R. Lewis III</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td></tr><tr style="height:12pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">/s/ Susan Hirsch</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Director</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">March 18, 2025</span></td></tr><tr><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Susan Hirsch</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:12pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">/s/ John M. Albertine</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Director</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">March 18, 2025</span></td></tr><tr><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">John M. Albertine</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr></table><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">&#160;</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="margin-bottom:6pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">47</span></div></div></div><div id="ic4bfd2faeedf4470adc28b9f3bba3b4c_85"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">TECOGEN INC.</span></div><div style="text-align:right"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:6pt;font-weight:700;line-height:120%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:6pt;font-weight:700;line-height:120%;text-decoration:underline" href="#ic4bfd2faeedf4470adc28b9f3bba3b4c_7">Table of Contents</a></span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span><br/></span></div></div><div style="margin-bottom:6pt;text-align:justify"><span><br/></span></div><div style="margin-bottom:12pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Contents</span></div><div style="margin-bottom:12pt;text-align:center"><span><br/></span></div><div style="margin-bottom:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Report of Independent Registered Public Accounting Firm&#160;&#160;&#160;&#160;</span><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%;text-decoration:underline" href="#ic4bfd2faeedf4470adc28b9f3bba3b4c_88">F-2</a></span></div><div style="margin-bottom:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Consolidated Financial Statements:</span></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Consolidated balance sheets&#160;&#160;&#160;&#160;</span><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline" href="#ic4bfd2faeedf4470adc28b9f3bba3b4c_91">F-4</a></span></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Consolidated statements of operations &#160;&#160;&#160;&#160;</span><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline" href="#ic4bfd2faeedf4470adc28b9f3bba3b4c_97">F-5</a></span></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Consolidated statements of stockholders' equity&#160;&#160;&#160;&#160;</span><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline" href="#ic4bfd2faeedf4470adc28b9f3bba3b4c_103">F-6</a></span></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Consolidated statements of cash flows&#160;&#160;&#160;&#160;</span><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline" href="#ic4bfd2faeedf4470adc28b9f3bba3b4c_109">F-7</a></span></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Notes to the consolidated financial statements&#160;&#160;&#160;&#160;&#160;</span><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline" href="#ic4bfd2faeedf4470adc28b9f3bba3b4c_112">F-8</a></span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="margin-bottom:6pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">F- 1</span></div></div></div><div id="ic4bfd2faeedf4470adc28b9f3bba3b4c_88"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span><br/></span></div></div><div style="margin-bottom:6pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Report of Independent Registered Public Accounting Firm</span></div><div style="margin-bottom:6pt;text-align:center"><span><br/></span></div><div style="text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">To the Board of Directors and Stockholders of Tecogen Inc.</span></div><div style="text-align:justify"><span><br/></span></div><div style="margin-bottom:10pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Opinion on the Financial Statements</span></div><div style="margin-bottom:10pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We have audited the accompanying consolidated balance sheets of Tecogen Inc. (the &#8220;Company&#8221;) as of December&#160;31, 2024 and 2023, the related consolidated statements of operations, stockholders' equity, and cash flows, for the years then ended, and the related notes (collectively referred to as the "financial statements"). In our opinion, the financial statements present fairly, in all material respects, the financial position of the Company as of December&#160;31, 2024 and 2023, and the results of its operations and its cash flows for the years then ended, in conformity with accounting principles generally accepted in the United States of America. </span></div><div style="margin-bottom:10pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Basis for Opinion </span></div><div style="margin-bottom:10pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">These financial statements are the responsibility of the Company's management. Our responsibility is to express an opinion on the Company's financial statements based on our audits. We are a public accounting firm registered with the Public Company Accounting Oversight Board (United States) ("PCAOB") and are required to be independent with respect to the Company in accordance with the U.S. federal securities laws and the applicable rules and regulations of the Securities and Exchange Commission and the PCAOB. </span></div><div style="margin-bottom:10pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We conducted our audits in accordance with the standards of the PCAOB. Those standards require that we plan and perform the audit to obtain reasonable assurance about whether the financial statements are free of material misstatement, whether due to error or fraud. The Company is not required to have, nor were we engaged to perform, an audit of its internal control over financial reporting.  As part of our audits we are required to obtain an understanding of internal control over financial reporting, but not for the purpose of expressing an opinion on the effectiveness of the Company&#8217;s internal control over financial reporting.  Accordingly, we express no such opinion.</span></div><div style="margin-bottom:10pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our audits included performing procedures to assess the risks of material misstatement of the financial statements, whether due to error or fraud, and performing procedures that respond to those risks. Such procedures included examining, on a test basis, evidence regarding the amounts and disclosures in the financial statements. Our audits also included evaluating the accounting principles used and significant estimates made by management, as well as evaluating the overall presentation of the financial statements. We believe that our audits provide a reasonable basis for our opinion. </span></div><div style="margin-bottom:10pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Critical Audit Matters</span></div><div style="margin-bottom:10pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Critical audit matters matters arising from the current period audit of the financial statements that were communicated or required to be communicated to the audit committee and that: (1) relate to accounts or disclosures that are material to the financial statements and (2) involved our especially challenging subjective, or complex judgments. We have determined that there were no critical audit matters in the current period.</span></div><div style="margin-bottom:3pt;text-align:justify"><span><br/></span></div><div style="margin-bottom:3pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">/s/ <ix:nonNumeric contextRef="c-1" name="dei:AuditorName" id="f-54">WOLF &amp; COMPANY, P.C.</ix:nonNumeric></span></div><div style="margin-bottom:3pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">PCAOB ID <ix:nonNumeric contextRef="c-1" name="dei:AuditorFirmId" id="f-55">392</ix:nonNumeric></span></div><div style="margin-bottom:3pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We have served as the Company's auditor since 2014.</span></div><div style="margin-bottom:3pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"><ix:nonNumeric contextRef="c-1" name="dei:AuditorLocation" id="f-56">Boston, Massachusetts</ix:nonNumeric></span></div><div style="margin-bottom:3pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">March&#160;18, 2025 </span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#160;</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span><br/></span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span><br/></span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span><br/></span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="margin-bottom:6pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">F- 2</span></div></div></div><div id="ic4bfd2faeedf4470adc28b9f3bba3b4c_91"></div><hr style="page-break-after:always"/><div style="min-height:36pt;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">TECOGEN INC.</span></div><div style="text-align:right"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:6pt;font-weight:700;line-height:120%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:6pt;font-weight:700;line-height:120%;text-decoration:underline" href="#ic4bfd2faeedf4470adc28b9f3bba3b4c_85">Table of Contents</a></span></div></div><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">CONSOLIDATED BALANCE SHEETS</span></div><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As of December&#160;31, 2024 and 2023 </span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:79.970%"><tr><td style="width:1.0%"/><td style="width:66.176%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:14.804%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.714%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:14.806%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">ASSETS</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Cash and cash equivalents</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="us-gaap:CashAndCashEquivalentsAtCarryingValue" format="ixt:num-dot-decimal" scale="0" id="f-57"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="us-gaap:CashAndCashEquivalentsAtCarryingValue" format="ixt:num-dot-decimal" scale="0" id="f-58">5,405,233</ix:nonFraction></ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="0" name="us-gaap:CashAndCashEquivalentsAtCarryingValue" format="ixt:num-dot-decimal" scale="0" id="f-59">1,351,270</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Accounts receivable, net</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="us-gaap:AccountsReceivableNetCurrent" format="ixt:num-dot-decimal" scale="0" id="f-60">6,026,545</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="0" name="us-gaap:AccountsReceivableNetCurrent" format="ixt:num-dot-decimal" scale="0" id="f-61">6,735,336</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Employee retention credit receivable</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="tgen:EmployeeRetentionCreditCurrent" format="ixt:fixed-zero" scale="0" id="f-62">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="0" name="tgen:EmployeeRetentionCreditCurrent" format="ixt:num-dot-decimal" scale="0" id="f-63">46,148</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Unbilled revenue</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="us-gaap:ContractWithCustomerAssetNetCurrent" format="ixt:num-dot-decimal" scale="0" id="f-64">398,898</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="0" name="us-gaap:ContractWithCustomerAssetNetCurrent" format="ixt:num-dot-decimal" scale="0" id="f-65">1,258,532</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Inventory, net</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="us-gaap:InventoryNet" format="ixt:num-dot-decimal" scale="0" id="f-66">9,634,005</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="0" name="us-gaap:InventoryNet" format="ixt:num-dot-decimal" scale="0" id="f-67">10,553,419</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Prepaid and other current assets</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="us-gaap:PrepaidExpenseAndOtherAssetsCurrent" format="ixt:num-dot-decimal" scale="0" id="f-68">680,565</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="0" name="us-gaap:PrepaidExpenseAndOtherAssetsCurrent" format="ixt:num-dot-decimal" scale="0" id="f-69">360,639</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total current assets</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="us-gaap:AssetsCurrent" format="ixt:num-dot-decimal" scale="0" id="f-70">22,145,246</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="0" name="us-gaap:AssetsCurrent" format="ixt:num-dot-decimal" scale="0" id="f-71">20,305,344</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Property, plant and equipment, net</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="us-gaap:PropertyPlantAndEquipmentNet" format="ixt:num-dot-decimal" scale="0" id="f-72">1,738,036</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="0" name="us-gaap:PropertyPlantAndEquipmentNet" format="ixt:num-dot-decimal" scale="0" id="f-73">1,162,577</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Right of use assets - operating leases</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="us-gaap:OperatingLeaseRightOfUseAsset" format="ixt:num-dot-decimal" scale="0" id="f-74">1,730,358</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="0" name="us-gaap:OperatingLeaseRightOfUseAsset" format="ixt:num-dot-decimal" scale="0" id="f-75">743,096</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Right of use assets - finance leases</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="us-gaap:FinanceLeaseRightOfUseAsset" format="ixt:num-dot-decimal" scale="0" id="f-76">452,390</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="0" name="us-gaap:FinanceLeaseRightOfUseAsset" format="ixt:num-dot-decimal" scale="0" id="f-77">200,187</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Intangible assets, net</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="us-gaap:FiniteLivedIntangibleAssetsNet" format="ixt:num-dot-decimal" scale="0" id="f-78">2,513,189</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="0" name="us-gaap:FiniteLivedIntangibleAssetsNet" format="ixt:num-dot-decimal" scale="0" id="f-79">2,436,230</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Goodwill</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="us-gaap:Goodwill" format="ixt:num-dot-decimal" scale="0" id="f-80">2,346,566</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="0" name="us-gaap:Goodwill" format="ixt:num-dot-decimal" scale="0" id="f-81">2,743,424</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Other assets</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="us-gaap:OtherAssetsNoncurrent" format="ixt:num-dot-decimal" scale="0" id="f-82">166,474</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="0" name="us-gaap:OtherAssetsNoncurrent" format="ixt:num-dot-decimal" scale="0" id="f-83">201,771</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">TOTAL ASSETS</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="us-gaap:Assets" format="ixt:num-dot-decimal" scale="0" id="f-84">31,092,259</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="0" name="us-gaap:Assets" format="ixt:num-dot-decimal" scale="0" id="f-85">27,792,629</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:3pt"><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">LIABILITIES AND STOCKHOLDERS&#8217; EQUITY</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Current liabilities:</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Related party notes payable</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="us-gaap:NotesPayable" format="ixt:num-dot-decimal" scale="0" id="f-86">1,548,872</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="0" name="us-gaap:NotesPayable" format="ixt:num-dot-decimal" scale="0" id="f-87">505,505</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Accounts payable</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="us-gaap:AccountsPayableCurrent" format="ixt:num-dot-decimal" scale="0" id="f-88">4,142,678</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="0" name="us-gaap:AccountsPayableCurrent" format="ixt:num-dot-decimal" scale="0" id="f-89">4,514,415</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Accrued expenses</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="us-gaap:AccruedLiabilitiesCurrent" format="ixt:num-dot-decimal" scale="0" id="f-90">2,890,886</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="0" name="us-gaap:AccruedLiabilitiesCurrent" format="ixt:num-dot-decimal" scale="0" id="f-91">2,504,629</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Deferred revenue, current</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="us-gaap:DeferredRevenueCurrent" format="ixt:num-dot-decimal" scale="0" id="f-92">6,701,131</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="0" name="us-gaap:DeferredRevenueCurrent" format="ixt:num-dot-decimal" scale="0" id="f-93">1,647,206</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Operating lease obligations, current</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="us-gaap:OperatingLeaseLiabilityCurrent" format="ixt:num-dot-decimal" scale="0" id="f-94">430,382</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="0" name="us-gaap:OperatingLeaseLiabilityCurrent" format="ixt:num-dot-decimal" scale="0" id="f-95">248,933</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Finance lease obligations, current</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="us-gaap:FinanceLeaseLiabilityCurrent" format="ixt:num-dot-decimal" scale="0" id="f-96">85,646</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="0" name="us-gaap:FinanceLeaseLiabilityCurrent" format="ixt:num-dot-decimal" scale="0" id="f-97">40,540</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Acquisition liabilities, current</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="us-gaap:BusinessCombinationContingentConsiderationLiabilityCurrent" format="ixt:num-dot-decimal" scale="0" id="f-98">902,552</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="0" name="us-gaap:BusinessCombinationContingentConsiderationLiabilityCurrent" format="ixt:num-dot-decimal" scale="0" id="f-99">845,363</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Unfavorable contract liabilities, current</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="tgen:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedFinancialLiabilitiesCurrent" format="ixt:num-dot-decimal" scale="0" id="f-100">113,449</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="0" name="tgen:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedFinancialLiabilitiesCurrent" format="ixt:num-dot-decimal" scale="0" id="f-101">176,207</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total current liabilities</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="us-gaap:LiabilitiesCurrent" format="ixt:num-dot-decimal" id="f-102">16,815,596</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="0" name="us-gaap:LiabilitiesCurrent" format="ixt:num-dot-decimal" id="f-103">10,482,798</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Long-term liabilities:</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Deferred revenue, net of current portion</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="us-gaap:DeferredRevenueNoncurrent" format="ixt:num-dot-decimal" scale="0" id="f-104">1,165,951</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="0" name="us-gaap:DeferredRevenueNoncurrent" format="ixt:num-dot-decimal" scale="0" id="f-105">369,611</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Operating lease obligations, net of current portion</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="us-gaap:OperatingLeaseLiabilityNoncurrent" format="ixt:num-dot-decimal" scale="0" id="f-106">1,341,789</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="0" name="us-gaap:OperatingLeaseLiabilityNoncurrent" format="ixt:num-dot-decimal" scale="0" id="f-107">523,660</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Finance lease obligations, net of current portion</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="us-gaap:FinanceLeaseLiabilityNoncurrent" format="ixt:num-dot-decimal" scale="0" id="f-108">325,235</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="0" name="us-gaap:FinanceLeaseLiabilityNoncurrent" format="ixt:num-dot-decimal" scale="0" id="f-109">159,647</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Acquisition liabilities, net of current portion</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="us-gaap:BusinessCombinationContingentConsiderationLiabilityNoncurrent" format="ixt:num-dot-decimal" scale="0" id="f-110">1,008,760</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="0" name="us-gaap:BusinessCombinationContingentConsiderationLiabilityNoncurrent" format="ixt:num-dot-decimal" scale="0" id="f-111">1,181,779</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Unfavorable contract liability, net of current portion</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedFinancialLiabilities" format="ixt:num-dot-decimal" scale="0" id="f-112">309,390</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="0" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedFinancialLiabilities" format="ixt:num-dot-decimal" scale="0" id="f-113">422,839</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total liabilities</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="us-gaap:Liabilities" format="ixt:num-dot-decimal" scale="0" id="f-114">20,966,721</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="0" name="us-gaap:Liabilities" format="ixt:num-dot-decimal" scale="0" id="f-115">13,140,334</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Commitments and contingencies (Note 12)</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"><ix:nonFraction unitRef="usd" contextRef="c-5" xsi:nil="true" name="us-gaap:CommitmentsAndContingencies" id="f-116"></ix:nonFraction></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"><ix:nonFraction unitRef="usd" contextRef="c-6" xsi:nil="true" name="us-gaap:CommitmentsAndContingencies" id="f-117"></ix:nonFraction></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Stockholders&#8217; equity:</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Tecogen Inc. stockholders&#8217; equity:</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="padding-left:6pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Common stock, $<ix:nonFraction unitRef="usdPerShare" contextRef="c-6" decimals="3" name="us-gaap:CommonStockParOrStatedValuePerShare" scale="0" id="f-118"><ix:nonFraction unitRef="usdPerShare" contextRef="c-5" decimals="3" name="us-gaap:CommonStockParOrStatedValuePerShare" scale="0" id="f-119">0.001</ix:nonFraction></ix:nonFraction> par value; <ix:nonFraction unitRef="shares" contextRef="c-5" decimals="0" name="us-gaap:CommonStockSharesAuthorized" format="ixt:num-dot-decimal" scale="0" id="f-120"><ix:nonFraction unitRef="shares" contextRef="c-6" decimals="0" name="us-gaap:CommonStockSharesAuthorized" format="ixt:num-dot-decimal" scale="0" id="f-121">100,000,000</ix:nonFraction></ix:nonFraction> shares authorized; <ix:nonFraction unitRef="shares" contextRef="c-5" decimals="0" name="us-gaap:CommonStockSharesOutstanding" format="ixt:num-dot-decimal" scale="0" id="f-122"><ix:nonFraction unitRef="shares" contextRef="c-5" decimals="0" name="us-gaap:CommonStockSharesIssued" format="ixt:num-dot-decimal" scale="0" id="f-123">24,950,261</ix:nonFraction></ix:nonFraction> issued and outstanding at December 31, 2024 and <ix:nonFraction unitRef="shares" contextRef="c-6" decimals="0" name="us-gaap:CommonStockSharesIssued" format="ixt:num-dot-decimal" scale="0" id="f-124"><ix:nonFraction unitRef="shares" contextRef="c-6" decimals="0" name="us-gaap:CommonStockSharesOutstanding" format="ixt:num-dot-decimal" scale="0" id="f-125">24,850,261</ix:nonFraction></ix:nonFraction> shares issued and outstanding at December 31, 2023</span></div></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="us-gaap:CommonStockValue" format="ixt:num-dot-decimal" scale="0" id="f-126">24,950</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="0" name="us-gaap:CommonStockValue" format="ixt:num-dot-decimal" scale="0" id="f-127">24,850</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Additional paid-in capital</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="us-gaap:AdditionalPaidInCapital" format="ixt:num-dot-decimal" scale="0" id="f-128">57,845,289</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="0" name="us-gaap:AdditionalPaidInCapital" format="ixt:num-dot-decimal" scale="0" id="f-129">57,601,402</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Accumulated deficit</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" sign="-" name="us-gaap:RetainedEarningsAccumulatedDeficit" format="ixt:num-dot-decimal" scale="0" id="f-130">47,639,894</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-6" decimals="0" sign="-" name="us-gaap:RetainedEarningsAccumulatedDeficit" format="ixt:num-dot-decimal" scale="0" id="f-131">42,879,656</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total Tecogen Inc. stockholders&#8217; equity</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="us-gaap:StockholdersEquity" format="ixt:num-dot-decimal" scale="0" id="f-132">10,230,345</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="0" name="us-gaap:StockholdersEquity" format="ixt:num-dot-decimal" scale="0" id="f-133">14,746,596</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Noncontrolling interest</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" sign="-" name="us-gaap:MinorityInterest" format="ixt:num-dot-decimal" scale="0" id="f-134">104,807</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-6" decimals="0" sign="-" name="us-gaap:MinorityInterest" format="ixt:num-dot-decimal" scale="0" id="f-135">94,301</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total stockholders&#8217; equity</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest" format="ixt:num-dot-decimal" scale="0" id="f-136">10,125,538</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="0" name="us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest" format="ixt:num-dot-decimal" scale="0" id="f-137">14,652,295</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">TOTAL LIABILITIES AND STOCKHOLDERS&#8217; EQUITY</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="us-gaap:LiabilitiesAndStockholdersEquity" format="ixt:num-dot-decimal" scale="0" id="f-138">31,092,259</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="0" name="us-gaap:LiabilitiesAndStockholdersEquity" format="ixt:num-dot-decimal" scale="0" id="f-139">27,792,629</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The accompanying notes are an integral part of these consolidated financial statements.</span></div><div style="height:45pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="margin-bottom:6pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">F- 3</span></div></div></div><div id="ic4bfd2faeedf4470adc28b9f3bba3b4c_97"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">TECOGEN INC.</span></div><div style="text-align:right"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:6pt;font-weight:700;line-height:120%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:6pt;font-weight:700;line-height:120%;text-decoration:underline" href="#ic4bfd2faeedf4470adc28b9f3bba3b4c_85">Table of Contents</a></span></div></div><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">CONSOLIDATED STATEMENTS OF OPERATIONS</span></div><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">For the Years Ended December&#160;31, 2024 and 2023 </span></div><div style="margin-bottom:6pt;margin-top:5pt;text-align:center;text-indent:36pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:77.777%"><tr><td style="width:1.0%"/><td style="width:65.253%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.253%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.739%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.255%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Revenues</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Products</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="0" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="0" id="f-140">4,443,996</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-8" decimals="0" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="0" id="f-141">8,859,946</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Services</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-9" decimals="0" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="0" id="f-142">16,074,870</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-10" decimals="0" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="0" id="f-143">14,523,054</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Energy production</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-11" decimals="0" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="0" id="f-144">2,100,670</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-12" decimals="0" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="0" id="f-145">1,756,419</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total revenues</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="0" id="f-146">22,619,536</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-13" decimals="0" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="0" id="f-147">25,139,419</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Cost of sales</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Products</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="0" name="us-gaap:CostOfGoodsAndServicesSold" format="ixt:num-dot-decimal" scale="0" id="f-148">3,014,655</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-8" decimals="0" name="us-gaap:CostOfGoodsAndServicesSold" format="ixt:num-dot-decimal" scale="0" id="f-149">5,923,096</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Services</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-9" decimals="0" name="us-gaap:CostOfGoodsAndServicesSold" format="ixt:num-dot-decimal" scale="0" id="f-150">8,432,876</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-10" decimals="0" name="us-gaap:CostOfGoodsAndServicesSold" format="ixt:num-dot-decimal" scale="0" id="f-151">7,909,202</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Energy production</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-11" decimals="0" name="us-gaap:CostOfGoodsAndServicesSold" format="ixt:num-dot-decimal" scale="0" id="f-152">1,301,832</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-12" decimals="0" name="us-gaap:CostOfGoodsAndServicesSold" format="ixt:num-dot-decimal" scale="0" id="f-153">1,105,503</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total cost of sales</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" name="us-gaap:CostOfGoodsAndServicesSold" format="ixt:num-dot-decimal" scale="0" id="f-154">12,749,363</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-13" decimals="0" name="us-gaap:CostOfGoodsAndServicesSold" format="ixt:num-dot-decimal" scale="0" id="f-155">14,937,801</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Gross profit</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" name="us-gaap:GrossProfit" format="ixt:num-dot-decimal" scale="0" id="f-156">9,870,173</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-13" decimals="0" name="us-gaap:GrossProfit" format="ixt:num-dot-decimal" scale="0" id="f-157">10,201,618</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Operating expenses:</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">General and administrative</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" name="us-gaap:GeneralAndAdministrativeExpense" format="ixt:num-dot-decimal" scale="0" id="f-158">11,356,406</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-13" decimals="0" name="us-gaap:GeneralAndAdministrativeExpense" format="ixt:num-dot-decimal" scale="0" id="f-159">11,880,389</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Selling</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" name="us-gaap:SellingExpense" format="ixt:num-dot-decimal" scale="0" id="f-160">1,880,903</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-13" decimals="0" name="us-gaap:SellingExpense" format="ixt:num-dot-decimal" scale="0" id="f-161">1,931,037</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Research and development</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" name="us-gaap:ResearchAndDevelopmentExpense" format="ixt:num-dot-decimal" scale="0" id="f-162">961,837</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-13" decimals="0" name="us-gaap:ResearchAndDevelopmentExpense" format="ixt:num-dot-decimal" scale="0" id="f-163">840,011</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Gain on sale of assets</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" name="us-gaap:GainLossOnDispositionOfAssets1" format="ixt:num-dot-decimal" scale="0" id="f-164">12,181</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-13" decimals="0" name="us-gaap:GainLossOnDispositionOfAssets1" format="ixt:num-dot-decimal" scale="0" id="f-165">36,207</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Goodwill impairment</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" name="us-gaap:GoodwillImpairmentLoss" format="ixt:num-dot-decimal" scale="0" id="f-166">217,295</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-13" decimals="0" name="us-gaap:GoodwillImpairmentLoss" format="ixt:fixed-zero" scale="0" id="f-167">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total operating expenses</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" name="us-gaap:OperatingExpenses" format="ixt:num-dot-decimal" scale="0" id="f-168">14,404,260</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-13" decimals="0" name="us-gaap:OperatingExpenses" format="ixt:num-dot-decimal" scale="0" id="f-169">14,615,230</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Loss from operations</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" sign="-" name="us-gaap:OperatingIncomeLoss" format="ixt:num-dot-decimal" scale="0" id="f-170">4,534,087</ix:nonFraction>)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-13" decimals="0" sign="-" name="us-gaap:OperatingIncomeLoss" format="ixt:num-dot-decimal" scale="0" id="f-171">4,413,612</ix:nonFraction>)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Other income (expense)</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Interest and other income (expense)</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" sign="-" name="tgen:InterestAndOtherIncomeExpense" format="ixt:num-dot-decimal" scale="0" id="f-172">26,814</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-13" decimals="0" sign="-" name="tgen:InterestAndOtherIncomeExpense" format="ixt:num-dot-decimal" scale="0" id="f-173">61,003</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Interest expense</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" name="us-gaap:InterestExpenseNonoperating" format="ixt:num-dot-decimal" scale="0" id="f-174">90,304</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-13" decimals="0" name="us-gaap:InterestExpenseNonoperating" format="ixt:num-dot-decimal" scale="0" id="f-175">16,050</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total other expense, net</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" sign="-" name="us-gaap:NonoperatingIncomeExpense" format="ixt:num-dot-decimal" scale="0" id="f-176">117,118</ix:nonFraction>)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-13" decimals="0" sign="-" name="us-gaap:NonoperatingIncomeExpense" format="ixt:num-dot-decimal" scale="0" id="f-177">77,053</ix:nonFraction>)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Loss before income taxes</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" sign="-" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" format="ixt:num-dot-decimal" scale="0" id="f-178">4,651,205</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-13" decimals="0" sign="-" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" format="ixt:num-dot-decimal" scale="0" id="f-179">4,490,665</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">State income tax provision</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" name="tgen:IncomeTaxExpenseBenefitState" format="ixt:num-dot-decimal" scale="0" id="f-180">22,565</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-13" decimals="0" name="tgen:IncomeTaxExpenseBenefitState" format="ixt:num-dot-decimal" scale="0" id="f-181">32,491</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Consolidated net loss</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" sign="-" name="us-gaap:ProfitLoss" format="ixt:num-dot-decimal" scale="0" id="f-182">4,673,770</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-13" decimals="0" sign="-" name="us-gaap:ProfitLoss" format="ixt:num-dot-decimal" scale="0" id="f-183">4,523,156</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Income attributable to the noncontrolling interest</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" name="us-gaap:NetIncomeLossAttributableToNoncontrollingInterest" format="ixt:num-dot-decimal" scale="0" id="f-184">86,468</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-13" decimals="0" name="us-gaap:NetIncomeLossAttributableToNoncontrollingInterest" format="ixt:num-dot-decimal" scale="0" id="f-185">74,952</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Net loss attributable to Tecogen Inc.</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" sign="-" name="us-gaap:NetIncomeLoss" format="ixt:num-dot-decimal" scale="0" id="f-186">4,760,238</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-13" decimals="0" sign="-" name="us-gaap:NetIncomeLoss" format="ixt:num-dot-decimal" scale="0" id="f-187">4,598,108</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Net loss per share - basic</span></td><td style="background-color:#ffffff;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usdPerShare" contextRef="c-1" decimals="2" sign="-" name="us-gaap:EarningsPerShareBasic" scale="0" id="f-188">0.19</ix:nonFraction>)</span></td><td style="background-color:#ffffff;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usdPerShare" contextRef="c-13" decimals="2" sign="-" name="us-gaap:EarningsPerShareBasic" scale="0" id="f-189">0.19</ix:nonFraction>)</span></td><td style="background-color:#ffffff;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Weighted average shares outstanding - basic</span></td><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-1" decimals="0" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" format="ixt:num-dot-decimal" scale="0" id="f-190">24,861,190</ix:nonFraction></span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-13" decimals="0" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" format="ixt:num-dot-decimal" scale="0" id="f-191">24,850,261</ix:nonFraction></span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Net loss per share - diluted</span></td><td style="background-color:#ffffff;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usdPerShare" contextRef="c-1" decimals="2" sign="-" name="us-gaap:EarningsPerShareDiluted" scale="0" id="f-192">0.19</ix:nonFraction>)</span></td><td style="background-color:#ffffff;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usdPerShare" contextRef="c-13" decimals="2" sign="-" name="us-gaap:EarningsPerShareDiluted" scale="0" id="f-193">0.19</ix:nonFraction>)</span></td><td style="background-color:#ffffff;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Weighted average shares outstanding - diluted</span></td><td colspan="3" style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:3pt double #000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-1" decimals="0" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" format="ixt:num-dot-decimal" scale="0" id="f-194">24,861,190</ix:nonFraction></span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:3pt double #000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-13" decimals="0" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" format="ixt:num-dot-decimal" scale="0" id="f-195">24,850,261</ix:nonFraction></span></td></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr></table></div><div style="margin-bottom:6pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The accompanying notes are an integral part of these consolidated financial statements.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="margin-bottom:6pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">F- 4</span></div></div></div><div id="ic4bfd2faeedf4470adc28b9f3bba3b4c_103"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">TECOGEN INC.</span></div><div style="text-align:right"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:6pt;font-weight:700;line-height:120%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:6pt;font-weight:700;line-height:120%;text-decoration:underline" href="#ic4bfd2faeedf4470adc28b9f3bba3b4c_85">Table of Contents</a></span></div></div><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">CONSOLIDATED STATEMENTS OF STOCKHOLDERS&#8217; EQUITY</span></div><div style="margin-bottom:9pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">For the Years Ended December&#160;31, 2024 and 2023 </span></div><div style="margin-bottom:6pt;margin-top:5pt;text-align:center;text-indent:36pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.415%"><tr><td style="width:1.0%"/><td style="width:30.223%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.976%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:8.900%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.535%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:7.135%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.535%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:9.194%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.535%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:9.635%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:1.123%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.988%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.535%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:9.786%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="30" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Common Stock Shares</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Common Stock $<ix:nonFraction unitRef="usdPerShare" contextRef="c-5" decimals="3" name="us-gaap:CommonStockParOrStatedValuePerShare" scale="0" id="f-196">0.001</ix:nonFraction> Par Value</span></div></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Additional<br/>Paid-In<br/>Capital</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Accumulated<br/>Deficit</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Noncontrolling<br/>Interest</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Balance at December 31, 2022</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-14" decimals="INF" name="us-gaap:SharesOutstanding" format="ixt:num-dot-decimal" scale="0" id="f-197">24,850,261</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-14" decimals="0" name="us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest" format="ixt:num-dot-decimal" scale="0" id="f-198">24,850</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-15" decimals="0" name="us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest" format="ixt:num-dot-decimal" scale="0" id="f-199">57,351,008</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-16" decimals="0" sign="-" name="us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest" format="ixt:num-dot-decimal" scale="0" id="f-200">38,281,548</ix:nonFraction>)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-17" decimals="0" sign="-" name="us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest" format="ixt:num-dot-decimal" scale="0" id="f-201">106,560</ix:nonFraction>)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-18" decimals="0" name="us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest" format="ixt:num-dot-decimal" scale="0" id="f-202">18,987,750</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Distributions to noncontrolling interest</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-19" decimals="0" name="us-gaap:MinorityInterestDecreaseFromDistributionsToNoncontrollingInterestHolders" format="ixt:num-dot-decimal" scale="0" id="f-203">62,693</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-13" decimals="0" name="us-gaap:MinorityInterestDecreaseFromDistributionsToNoncontrollingInterestHolders" format="ixt:num-dot-decimal" scale="0" id="f-204">62,693</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Stock-based compensation</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-20" decimals="0" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" format="ixt:num-dot-decimal" scale="0" id="f-205">250,394</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-13" decimals="0" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" format="ixt:num-dot-decimal" scale="0" id="f-206">250,394</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Net income (loss)</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-21" decimals="0" sign="-" name="us-gaap:ProfitLoss" format="ixt:num-dot-decimal" scale="0" id="f-207">4,598,108</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-19" decimals="0" name="us-gaap:ProfitLoss" format="ixt:num-dot-decimal" scale="0" id="f-208">74,952</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-13" decimals="0" sign="-" name="us-gaap:ProfitLoss" format="ixt:num-dot-decimal" scale="0" id="f-209">4,523,156</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Balance at December 31, 2023</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-22" decimals="INF" name="us-gaap:SharesOutstanding" format="ixt:num-dot-decimal" scale="0" id="f-210">24,850,261</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-22" decimals="0" name="us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest" format="ixt:num-dot-decimal" scale="0" id="f-211">24,850</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-23" decimals="0" name="us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest" format="ixt:num-dot-decimal" scale="0" id="f-212">57,601,402</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-24" decimals="0" sign="-" name="us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest" format="ixt:num-dot-decimal" scale="0" id="f-213">42,879,656</ix:nonFraction>)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-25" decimals="0" sign="-" name="us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest" format="ixt:num-dot-decimal" scale="0" id="f-214">94,301</ix:nonFraction>)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="0" name="us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest" format="ixt:num-dot-decimal" scale="0" id="f-215">14,652,295</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Exercise of stock options</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-26" decimals="0" name="us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised" format="ixt:num-dot-decimal" id="f-216">100,000</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-26" decimals="0" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" id="f-217">100</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-27" decimals="0" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" format="ixt:num-dot-decimal" id="f-218">70,900</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" format="ixt:num-dot-decimal" id="f-219">71,000</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Distributions to noncontrolling interest</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-28" decimals="0" name="us-gaap:MinorityInterestDecreaseFromDistributionsToNoncontrollingInterestHolders" format="ixt:num-dot-decimal" id="f-220">96,974</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" name="us-gaap:MinorityInterestDecreaseFromDistributionsToNoncontrollingInterestHolders" format="ixt:num-dot-decimal" id="f-221">96,974</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Stock-based compensation</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-27" decimals="0" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" format="ixt:num-dot-decimal" id="f-222">172,987</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" format="ixt:num-dot-decimal" id="f-223">172,987</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Net income (loss)</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-29" decimals="0" sign="-" name="us-gaap:ProfitLoss" format="ixt:num-dot-decimal" id="f-224">4,760,238</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-28" decimals="0" name="us-gaap:ProfitLoss" format="ixt:num-dot-decimal" id="f-225">86,468</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" sign="-" name="us-gaap:ProfitLoss" format="ixt:num-dot-decimal" id="f-226">4,673,770</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Balance at December 31, 2024</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-30" decimals="INF" name="us-gaap:SharesOutstanding" format="ixt:num-dot-decimal" id="f-227">24,950,261</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-30" decimals="0" name="us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest" format="ixt:num-dot-decimal" id="f-228">24,950</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-31" decimals="0" name="us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest" format="ixt:num-dot-decimal" id="f-229">57,845,289</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-32" decimals="0" sign="-" name="us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest" format="ixt:num-dot-decimal" id="f-230">47,639,894</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-33" decimals="0" sign="-" name="us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest" format="ixt:num-dot-decimal" id="f-231">104,807</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest" format="ixt:num-dot-decimal" id="f-232">10,125,538</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div><div style="margin-bottom:6pt;text-align:center"><span><br/></span></div><div style="margin-bottom:6pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The accompanying notes are an integral part of these consolidated financial statements.</span></div><div style="margin-bottom:6pt;text-align:center"><span><br/></span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="margin-bottom:6pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">F- 5</span></div></div></div><div id="ic4bfd2faeedf4470adc28b9f3bba3b4c_109"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">TECOGEN INC.</span></div><div style="text-align:right"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:6pt;font-weight:700;line-height:120%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:6pt;font-weight:700;line-height:120%;text-decoration:underline" href="#ic4bfd2faeedf4470adc28b9f3bba3b4c_85">Table of Contents</a></span></div></div><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">CONSOLIDATED STATEMENTS OF CASH FLOWS</span></div><div style="text-align:center;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">For the Years Ended December&#160;31, 2024 and 2023</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%"> </span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:95.321%"><tr><td style="width:1.0%"/><td style="width:71.446%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.243%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.566%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.245%"/><td style="width:0.1%"/></tr><tr style="height:6pt"><td colspan="3" rowspan="2" style="padding:0 1pt"/><td colspan="3" rowspan="2" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" rowspan="2" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" rowspan="2" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td></tr><tr style="height:6pt"><td colspan="12" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">CASH FLOWS FROM OPERATING ACTIVITIES:</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Consolidated loss</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" sign="-" name="us-gaap:ProfitLoss" format="ixt:num-dot-decimal" scale="0" id="f-233">4,673,770</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-13" decimals="0" sign="-" name="us-gaap:ProfitLoss" format="ixt:num-dot-decimal" scale="0" id="f-234">4,523,156</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">Adjustments to reconcile net loss to net cash used in operating activities:</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Depreciation, accretion and amortization, net</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" name="us-gaap:DepreciationDepletionAndAmortization" format="ixt:num-dot-decimal" scale="0" id="f-235">553,783</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-13" decimals="0" name="us-gaap:DepreciationDepletionAndAmortization" format="ixt:num-dot-decimal" scale="0" id="f-236">567,712</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Gain on sale of assets</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" name="us-gaap:GainLossOnDispositionOfAssets1" format="ixt:num-dot-decimal" scale="0" id="f-237">12,181</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-13" decimals="0" name="us-gaap:GainLossOnDispositionOfAssets1" format="ixt:num-dot-decimal" scale="0" id="f-238">36,207</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Provision for credit losses</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" name="us-gaap:ProvisionForDoubtfulAccounts" format="ixt:num-dot-decimal" scale="0" id="f-239">146,010</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-13" decimals="0" name="us-gaap:ProvisionForDoubtfulAccounts" format="ixt:num-dot-decimal" scale="0" id="f-240">902,432</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Provision for inventory reserve</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" name="us-gaap:InventoryWriteDown" format="ixt:num-dot-decimal" scale="0" id="f-241">70,530</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-13" decimals="0" name="us-gaap:InventoryWriteDown" format="ixt:num-dot-decimal" scale="0" id="f-242">402,883</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Stock-based compensation</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" name="us-gaap:ShareBasedCompensation" format="ixt:num-dot-decimal" scale="0" id="f-243">172,987</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-13" decimals="0" name="us-gaap:ShareBasedCompensation" format="ixt:num-dot-decimal" scale="0" id="f-244">250,394</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Goodwill impairment</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" name="us-gaap:GoodwillImpairmentLoss" format="ixt:num-dot-decimal" scale="0" id="f-245">217,295</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-13" decimals="0" name="us-gaap:GoodwillImpairmentLoss" format="ixt:fixed-zero" scale="0" id="f-246">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Non-cash interest expense</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" name="tgen:NoncashInterestExpense" format="ixt:num-dot-decimal" scale="0" id="f-247">45,025</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-13" decimals="0" name="tgen:NoncashInterestExpense" format="ixt:num-dot-decimal" scale="0" id="f-248">5,505</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">Changes in operating assets and liabilities: </span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(Increase) decrease in:</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Accounts receivable</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" sign="-" name="us-gaap:IncreaseDecreaseInAccountsReceivable" format="ixt:num-dot-decimal" scale="0" id="f-249">608,929</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-13" decimals="0" name="us-gaap:IncreaseDecreaseInAccountsReceivable" format="ixt:num-dot-decimal" scale="0" id="f-250">81,195</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Inventory, net</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" sign="-" name="us-gaap:IncreaseDecreaseInInventories" format="ixt:num-dot-decimal" scale="0" id="f-251">848,884</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-13" decimals="0" name="us-gaap:IncreaseDecreaseInInventories" format="ixt:num-dot-decimal" scale="0" id="f-252">82,525</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Unbilled revenue</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" name="us-gaap:IncreaseDecreaseInContractWithCustomerLiability" format="ixt:num-dot-decimal" scale="0" id="f-253">859,634</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-13" decimals="0" name="us-gaap:IncreaseDecreaseInContractWithCustomerLiability" format="ixt:num-dot-decimal" scale="0" id="f-254">56,994</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Prepaid expenses and other current assets</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" name="tgen:IncreaseDecreaseInPrepaidExpenseAndOtherCurrentAssets" format="ixt:num-dot-decimal" scale="0" id="f-255">319,926</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-13" decimals="0" sign="-" name="tgen:IncreaseDecreaseInPrepaidExpenseAndOtherCurrentAssets" format="ixt:num-dot-decimal" scale="0" id="f-256">40,550</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Other non-current assets</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" sign="-" name="us-gaap:IncreaseDecreaseInOtherOperatingAssets" format="ixt:num-dot-decimal" scale="0" id="f-257">510,723</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-13" decimals="0" sign="-" name="us-gaap:IncreaseDecreaseInOtherOperatingAssets" format="ixt:num-dot-decimal" scale="0" id="f-258">265,725</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Increase (decrease) in:</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Accounts payable</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" sign="-" name="us-gaap:IncreaseDecreaseInAccountsPayable" format="ixt:num-dot-decimal" scale="0" id="f-259">371,736</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-13" decimals="0" name="us-gaap:IncreaseDecreaseInAccountsPayable" format="ixt:num-dot-decimal" scale="0" id="f-260">1,161,416</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Accrued expenses</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" name="us-gaap:IncreaseDecreaseInAccruedLiabilities" format="ixt:num-dot-decimal" scale="0" id="f-261">386,257</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-13" decimals="0" name="us-gaap:IncreaseDecreaseInAccruedLiabilities" format="ixt:num-dot-decimal" scale="0" id="f-262">128,869</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Deferred revenue</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" name="us-gaap:IncreaseDecreaseInDeferredRevenue" format="ixt:num-dot-decimal" scale="0" id="f-263">5,850,265</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-13" decimals="0" name="us-gaap:IncreaseDecreaseInDeferredRevenue" format="ixt:num-dot-decimal" scale="0" id="f-264">543,842</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Other current liabilities</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" sign="-" name="us-gaap:IncreaseDecreaseInOtherCurrentLiabilities" format="ixt:num-dot-decimal" id="f-265">832,162</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-13" decimals="0" sign="-" name="us-gaap:IncreaseDecreaseInOtherCurrentLiabilities" format="ixt:num-dot-decimal" scale="0" id="f-266">421,049</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Net cash provided by (used in) operating activities</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" name="us-gaap:NetCashProvidedByUsedInOperatingActivities" format="ixt:num-dot-decimal" scale="0" id="f-267">4,060,547</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-13" decimals="0" sign="-" name="us-gaap:NetCashProvidedByUsedInOperatingActivities" format="ixt:num-dot-decimal" scale="0" id="f-268">817,810</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">CASH FLOWS FROM INVESTING ACTIVITIES:</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Purchases of property and equipment</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" name="us-gaap:PaymentsToAcquirePropertyPlantAndEquipment" format="ixt:num-dot-decimal" scale="0" id="f-269">969,163</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-13" decimals="0" name="us-gaap:PaymentsToAcquirePropertyPlantAndEquipment" format="ixt:num-dot-decimal" scale="0" id="f-270">46,851</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Proceeds on sale of property and equipment</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" name="us-gaap:ProceedsFromSaleOfPropertyPlantAndEquipment" format="ixt:num-dot-decimal" scale="0" id="f-271">51,400</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-13" decimals="0" name="us-gaap:ProceedsFromSaleOfPropertyPlantAndEquipment" format="ixt:num-dot-decimal" scale="0" id="f-272">34,655</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Payment for business acquisition</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" name="us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired" format="ixt:fixed-zero" scale="0" id="f-273">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-13" decimals="0" name="us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired" format="ixt:num-dot-decimal" scale="0" id="f-274">170,000</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Distributions to noncontrolling interest</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" name="tgen:PaymentsToNoncontrollingInterestsInvestingActivities" format="ixt:num-dot-decimal" scale="0" id="f-275">96,974</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-13" decimals="0" name="tgen:PaymentsToNoncontrollingInterestsInvestingActivities" format="ixt:num-dot-decimal" scale="0" id="f-276">62,693</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Net used in investing activities</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" sign="-" name="us-gaap:NetCashProvidedByUsedInInvestingActivities" format="ixt:num-dot-decimal" scale="0" id="f-277">1,014,737</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-13" decimals="0" sign="-" name="us-gaap:NetCashProvidedByUsedInInvestingActivities" format="ixt:num-dot-decimal" scale="0" id="f-278">244,889</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">CASH FLOWS FROM FINANCING ACTIVITIES:</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Proceeds from related party note</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" name="us-gaap:ProceedsFromNotesPayable" format="ixt:num-dot-decimal" scale="0" id="f-279">1,000,000</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-13" decimals="0" name="us-gaap:ProceedsFromNotesPayable" format="ixt:num-dot-decimal" scale="0" id="f-280">500,000</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Finance lease principal payments</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" name="us-gaap:FinanceLeasePrincipalPayments" format="ixt:num-dot-decimal" scale="0" id="f-281">62,847</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-13" decimals="0" name="us-gaap:FinanceLeasePrincipalPayments" format="ixt:fixed-zero" scale="0" id="f-282">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Proceeds from exercise of stock options</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" name="us-gaap:ProceedsFromStockOptionsExercised" format="ixt:num-dot-decimal" scale="0" id="f-283">71,000</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-13" decimals="0" name="us-gaap:ProceedsFromStockOptionsExercised" format="ixt:fixed-zero" scale="0" id="f-284">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Net cash provided by financing activities</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" name="us-gaap:NetCashProvidedByUsedInFinancingActivities" format="ixt:num-dot-decimal" scale="0" id="f-285">1,008,153</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-13" decimals="0" name="us-gaap:NetCashProvidedByUsedInFinancingActivities" format="ixt:num-dot-decimal" scale="0" id="f-286">500,000</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Change in cash and cash equivalents</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" format="ixt:num-dot-decimal" scale="0" id="f-287">4,053,963</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-13" decimals="0" sign="-" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" format="ixt:num-dot-decimal" scale="0" id="f-288">562,699</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Cash and cash equivalents, beginning of the year</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="0" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" format="ixt:num-dot-decimal" scale="0" id="f-289">1,351,270</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-18" decimals="0" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" format="ixt:num-dot-decimal" scale="0" id="f-290">1,913,969</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Cash and cash equivalents, end of the year</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" format="ixt:num-dot-decimal" scale="0" id="f-291">5,405,233</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="0" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" format="ixt:num-dot-decimal" scale="0" id="f-292">1,351,270</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div><div style="text-indent:9pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%;text-decoration:underline">Supplemental disclosure of cash flow information:</span></div><div style="margin-bottom:3pt;margin-top:5pt;text-align:center;text-indent:36pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:95.321%"><tr><td style="width:1.0%"/><td style="width:71.446%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.243%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.566%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.245%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Cash paid for interest</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" name="us-gaap:InterestPaidNet" format="ixt:num-dot-decimal" scale="0" id="f-293">45,278</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-13" decimals="0" name="us-gaap:InterestPaidNet" format="ixt:num-dot-decimal" scale="0" id="f-294">10,926</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Cash paid for taxes</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" name="us-gaap:IncomeTaxesPaid" format="ixt:num-dot-decimal" scale="0" id="f-295">22,565</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-13" decimals="0" name="us-gaap:IncomeTaxesPaid" format="ixt:num-dot-decimal" scale="0" id="f-296">32,491</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:9pt"><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Non-cash investing activities</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Right-of-use assets acquired under operating leases</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" name="us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability" format="ixt:num-dot-decimal" scale="0" id="f-297">1,650,994</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-13" decimals="0" name="us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability" format="ixt:num-dot-decimal" scale="0" id="f-298">148,093</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Right-of-use assets acquired under finance leases</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" name="tgen:VehiclesAcquiredUnderFinanceLeases" format="ixt:num-dot-decimal" scale="0" id="f-299">295,085</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-13" decimals="0" name="tgen:VehiclesAcquiredUnderFinanceLeases" format="ixt:num-dot-decimal" scale="0" id="f-300">200,187</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Aegis acquisition:</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Accounts receivable credit</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" name="tgen:AssetAcquisitionConsiderationTransferredNonCashAccountsReceivableCredit" format="ixt:fixed-zero" scale="0" id="f-301">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-13" decimals="0" name="tgen:AssetAcquisitionConsiderationTransferredNonCashAccountsReceivableCredit" format="ixt:num-dot-decimal" scale="0" id="f-302">300,000</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Accounts payable assumed</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" name="tgen:AssetAcquisitionConsiderationTransferredNonCashAccountsPayable" format="ixt:fixed-zero" scale="0" id="f-303">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-13" decimals="0" name="tgen:AssetAcquisitionConsiderationTransferredNonCashAccountsPayable" format="ixt:num-dot-decimal" scale="0" id="f-304">91,048</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Contingent consideration</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" name="tgen:AssetAcquisitionConsiderationTransferredNonCashContingentConsideration" format="ixt:num-dot-decimal" scale="0" id="f-305">272,901</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-13" decimals="0" name="tgen:AssetAcquisitionConsiderationTransferredNonCashContingentConsideration" format="ixt:num-dot-decimal" scale="0" id="f-306">1,256,656</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total fair value of non-cash consideration</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" name="tgen:AssetAcquisitionConsiderationTransferredNonCash" format="ixt:num-dot-decimal" scale="0" id="f-307">272,901</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-13" decimals="0" name="tgen:AssetAcquisitionConsiderationTransferredNonCash" format="ixt:num-dot-decimal" scale="0" id="f-308">1,647,704</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div><div style="margin-bottom:6pt;text-align:center"><span><br/></span></div><div style="margin-bottom:6pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The accompanying notes are an integral part of these consolidated financial statements.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="margin-bottom:6pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">F- 6</span></div></div></div><div id="ic4bfd2faeedf4470adc28b9f3bba3b4c_112"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">TECOGEN INC.</span></div><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Notes to Audited Consolidated Financial Statements for December 31, 2024 and 2023</span></div></div><div style="text-align:justify"><span><br/></span></div><div id="ic4bfd2faeedf4470adc28b9f3bba3b4c_115"></div><div style="margin-bottom:6pt;margin-top:6pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Note 1.  <ix:nonNumeric contextRef="c-1" name="us-gaap:NatureOfOperations" id="f-309" continuedAt="f-309-1" escape="true">Nature of Business and Operations</ix:nonNumeric></span></div><ix:continuation id="f-309-1" continuedAt="f-309-2"><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Tecogen Inc. (together with its subsidiaries "we", "our", "us", "Tecogen", or "Company"), a Delaware Corporation, was incorporated on September 15, 2000, and acquired the assets and liabilities of the Tecogen Products division of Thermo Power Corporation. We produce commercial and industrial, natural-gas-fueled engine-driven, combined heat and power (CHP) products that reduce energy costs, decrease greenhouse gas emissions and alleviate congestion on the national power grid. Our products supply electric power or mechanical power for cooling, while heat from the engine is recovered and purposefully used at a facility. The majority of our customers are located in regions with the highest utility rates, typically California, the Midwest and the Northeast.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our operations are comprised of <ix:nonFraction unitRef="segment" contextRef="c-1" decimals="0" name="us-gaap:NumberOfOperatingSegments" format="ixt-sec:numwordsen" scale="0" id="f-310">three</ix:nonFraction> business segments. Our Products segment designs, manufactures and sells industrial and commercial cogeneration systems as described above. Our Services segment provides operation and maintenance services to customers for our products.  Our Energy Production segment sells energy in the form of electricity, heat, hot water and cooling to our customers under long-term sales agreements. </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Liquidity, Going Concern and Management's Plans</span></div><div style="text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The consolidated financial statements have been prepared in accordance with U.S. generally accepted accounting </span></div><div style="text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">principles assuming that we will continue as a going concern, which contemplates the realization of assets and the settlement of obligations in the normal course of business. As of December&#160;31, 2024, our cash and cash equivalents were $<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="us-gaap:CashAndCashEquivalentsAtCarryingValue" format="ixt:num-dot-decimal" scale="0" id="f-311"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="us-gaap:CashAndCashEquivalentsAtCarryingValue" format="ixt:num-dot-decimal" scale="0" id="f-312">5,405,233</ix:nonFraction></ix:nonFraction>, compared to $<ix:nonFraction unitRef="usd" contextRef="c-6" decimals="0" name="us-gaap:CashAndCashEquivalentsAtCarryingValue" format="ixt:num-dot-decimal" scale="0" id="f-313">1,351,270</ix:nonFraction> at December&#160;31, 2023, an increase of $<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" format="ixt:num-dot-decimal" scale="0" id="f-314">4,053,963</ix:nonFraction>. For the year ended December&#160;31, 2024 we generated $<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" name="us-gaap:NetCashProvidedByUsedInOperatingActivities" format="ixt:num-dot-decimal" scale="0" id="f-315">4,060,547</ix:nonFraction> in cash from operations and incurred net operating losses of $<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" sign="-" name="us-gaap:OperatingIncomeLoss" format="ixt:num-dot-decimal" scale="0" id="f-316">4,534,087</ix:nonFraction>, due to lower Products sales and lower gross margin. Working capital at December&#160;31, 2024 was $<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="tgen:WorkingCapitalNet" format="ixt:num-dot-decimal" scale="0" id="f-317">5,329,650</ix:nonFraction>, compared to $<ix:nonFraction unitRef="usd" contextRef="c-6" decimals="0" name="tgen:WorkingCapitalNet" format="ixt:num-dot-decimal" scale="0" id="f-318">9,822,546</ix:nonFraction> at December&#160;31, 2023, a decrease of $<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" name="tgen:IncreaseDecreaseInWorkingCapital" format="ixt:num-dot-decimal" scale="0" id="f-319">4,492,896</ix:nonFraction> and our accumulated deficit was $<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" sign="-" name="us-gaap:RetainedEarningsAccumulatedDeficit" format="ixt:num-dot-decimal" scale="0" id="f-320">47,639,894</ix:nonFraction>. </span></div></ix:continuation><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"><ix:continuation id="f-309-2">As a result of the above factors, management has performed an analysis to evaluate the entity&#8217;s ability to continue as a going concern for one year after the financial statements issuance date. Management&#8217;s analysis includes forecasting future revenues, expenditures and cash flows, taking into consideration past performance as well as key initiatives recently undertaken. Our forecasts are dependent on our ability to maintain margins based on the Company's ability to close on new and expanded business, leverage existing working capital, and effectively manage expenses. New and expanded business includes the sale and shipment of newly developed hybrid-drive air-cooled chillers, increased services revenue due to the acquisition of additional maintenance contracts in February 2024 and April 2024, and the anticipated expansion of markets served by our chiller products into the data center market, which is currently experiencing power constraints. Our backlog at December&#160;31, 2024 was $<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="tgen:Backlog" format="ixt:num-dot-decimal" scale="0" id="f-321">12,336,248</ix:nonFraction>, which is an increase of $<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" name="tgen:IncreaseDecreaseInBacklog" format="ixt:num-dot-decimal" scale="0" id="f-322">4,948,103</ix:nonFraction> from the December&#160;31, 2023 backlog. Based on management's analysis, we believe that cash flows from operations  will be sufficient to fund operations over the next twelve months.</ix:continuation> </span></div><div id="ic4bfd2faeedf4470adc28b9f3bba3b4c_118"></div><div style="margin-bottom:6pt;margin-top:6pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Note 2.  <ix:nonNumeric contextRef="c-1" name="us-gaap:BasisOfPresentationAndSignificantAccountingPoliciesTextBlock" id="f-323" continuedAt="f-323-1" escape="true">Summary of Significant Accounting Policies</ix:nonNumeric></span></div><ix:nonNumeric contextRef="c-1" name="tgen:PrinciplesOfConsolidationAndBasisOfPresentationPolicyTextBlock" id="f-324" continuedAt="f-324-1" escape="true"><ix:continuation id="f-323-1" continuedAt="f-323-2"><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Principles of Consolidation and Basis of Presentation</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The financial statements have been prepared in accordance with accounting standards set by the Financial Accounting Standards Board, or FASB.  The FASB sets generally accepted accounting principles, or GAAP, to ensure financial condition, results of operations, and cash flows are consistently reported. References to GAAP issued by the FASB in these footnotes are to the FASB Accounting Standards Codification, or ASC.  We adopted the presentation requirements for noncontrolling interests required by ASC 810 Consolidation. Under ASC 810, earnings or losses attributed to the noncontrolling interests are reported as part of the consolidated earnings and not a separate component of income or expense.  </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The accompanying consolidated financial statements include our accounts and the accounts of the entities in which we have a controlling financial interest. Those entities include our wholly-owned subsidiary, American DG Energy Inc. ("ADGE"), Tecogen CHP Solutions, Inc., and a joint venture, American DG New York, LLC, or ADGNY, in which ADGE holds a <ix:nonFraction unitRef="number" contextRef="c-5" decimals="3" name="tgen:PercentageOfOwnedJointVenture" scale="-2" id="f-325">51.0</ix:nonFraction>% interest. As the controlling partner, all major decisions in respect of ADGNY are made by ADGE in accordance with the joint venture agreement. The interests in the individual underlying energy system projects in ADGNY vary between ADGE and its joint venture partner. The noncontrolling interest and distributions are determined based on economic ownership. The economic ownership is calculated by the amount invested by us and the noncontrolling partner in each site. Each quarter, we calculate a year-to-date profit/loss for each site that is part of ADGNY and the noncontrolling interest percent of economic ownership in each site is applied to determine the noncontrolling interest share in the profit/loss. The same methodology is used to determine quarterly distributions of available cash to the noncontrolling interest partner. On our balance sheet, noncontrolling interest represents the joint venture partner&#8217;s investment in ADGNY, plus its share of after-tax profits less any cash distributions. ADGE owned a controlling <ix:nonFraction unitRef="number" contextRef="c-5" decimals="3" name="tgen:PercentageOfOwnedJointVenture" scale="-2" id="f-326">51.0</ix:nonFraction>% legal and economic interest in ADGNY as of December&#160;31, 2024. </span></div></ix:continuation></ix:nonNumeric><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="margin-bottom:6pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">F- 7</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">TECOGEN INC.</span></div><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Notes to Audited Consolidated Financial Statements for December 31, 2024 and 2023</span></div><div style="text-align:center"><span><br/></span></div></div><ix:continuation id="f-323-2" continuedAt="f-323-3"><ix:continuation id="f-324-1" continuedAt="f-324-2"><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Investments in partnerships and companies in which we do not have a controlling financial interest but where we have significant influence, if any, are accounted for under the equity method.</span></div></ix:continuation><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"><ix:continuation id="f-324-2">Noncontrolling interests in the net assets and operations of ADGNY are reflected in the caption &#8220;Noncontrolling interest&#8221; in the accompanying consolidated financial statements.  All intercompany transactions have been eliminated.</ix:continuation> </span></div><ix:nonNumeric contextRef="c-1" name="us-gaap:UseOfEstimates" id="f-327" escape="true"><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Use of Estimates</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The preparation of financial statements in conformity with accounting principles generally accepted in the United States of America requires management to make estimates and assumptions that affect the reported amounts of assets and liabilities and disclosure of contingent assets and liabilities at the date of the financial statements and the reported amounts of revenues and expenses during the reporting period.  Actual results could differ from those estimates.</span></div></ix:nonNumeric><ix:nonNumeric contextRef="c-1" name="us-gaap:PriorPeriodReclassificationAdjustmentDescription" id="f-328" escape="true"><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Reclassification of Prior Year Presentation</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Certain prior year amounts have been reclassified for consistency with the current year presentation. These reclassifications had no effect on the reported results of operations.</span></div></ix:nonNumeric><ix:nonNumeric contextRef="c-1" name="us-gaap:ConcentrationRiskCreditRisk" id="f-329" escape="true"><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Concentration of Credit Risk</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Financial instruments that expose us to concentrations of credit risk consist primarily of cash and cash equivalents and accounts receivable.  We maintain our cash balances in bank accounts, which at times may exceed the Federal Deposit Insurance Corporation&#8217;s ("FDIC") general deposit insurance limits.  The amount on deposit at December&#160;31, 2024 and 2023 which exceeded the $<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="INF" name="us-gaap:CashFDICInsuredAmount" format="ixt:num-dot-decimal" scale="0" id="f-330">250,000</ix:nonFraction> federally insured limit were approximately $<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="us-gaap:CashUninsuredAmount" format="ixt:num-dot-decimal" scale="0" id="f-331">4,954,395</ix:nonFraction> and $<ix:nonFraction unitRef="usd" contextRef="c-6" decimals="0" name="us-gaap:CashUninsuredAmount" format="ixt:num-dot-decimal" scale="0" id="f-332">1,009,094</ix:nonFraction>, respectively.  We have not experienced any losses in such accounts and thus believe that we are not exposed to any significant credit risk on cash.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">There was no customer who represented 10% of revenues for the years ended December&#160;31, 2024 and December&#160;31, 2023. There was one customer who represented <ix:nonFraction unitRef="number" contextRef="c-34" decimals="3" name="us-gaap:ConcentrationRiskPercentage1" scale="-2" id="f-333">12</ix:nonFraction>% of the accounts receivable balance as of December&#160;31, 2024, and one customers who represented <ix:nonFraction unitRef="number" contextRef="c-35" decimals="3" name="us-gaap:ConcentrationRiskPercentage1" scale="-2" id="f-334">14</ix:nonFraction>% of the accounts receivable balance as of December&#160;31, 2023.</span></div></ix:nonNumeric><ix:nonNumeric contextRef="c-1" name="us-gaap:CashAndCashEquivalentsPolicyTextBlock" id="f-335" escape="true"><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Cash and Cash Equivalents</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We consider all highly liquid instruments with an original maturity date of three months or less when purchased to be cash and cash equivalents. We have cash balances in certain financial institutions in amounts which occasionally exceed current FDIC limits. The financial stability of these institutions is continually reviewed by senior management. We believe that we are not exposed to any significant credit risk on cash and cash equivalents.</span></div></ix:nonNumeric><ix:nonNumeric contextRef="c-1" name="us-gaap:TradeAndOtherAccountsReceivablePolicy" id="f-336" escape="true"><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Accounts Receivable</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On January 1, 2023, we adopted ASU 2016-13, </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Financial Instruments, Credit Losses (Topic 326)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. Accounts receivable are stated at the amount management expects to collect from outstanding balances. The allowance for credit losses is estimated based on historical experience, aging of the receivable, the counterparty&#8217;s ability to pay, condition of general economy and industry, and </span><span style="color:#2d2d2d;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">combined with management's estimate of current conditions, reasonable and supportable forecasts of future losses to determine estimated credit losses in our</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> evaluation of outstanding accounts receivable at the end of the year. The allowance for credit losses reflects management's evaluation of our outstanding accounts receivable at the end of the year and our best estimate of probable losses inherent in the accounts receivable balance. Accounts receivable deemed uncollectible are charged against the allowance for credit losses when identified. Our provision for credit losses decreased to $<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" name="us-gaap:AllowanceForDoubtfulAccountsReceivableWriteOffs" format="ixt:num-dot-decimal" scale="0" id="f-337">146,010</ix:nonFraction> in the year ended December&#160;31, 2024, compared to $<ix:nonFraction unitRef="usd" contextRef="c-13" decimals="0" name="us-gaap:AllowanceForDoubtfulAccountsReceivableWriteOffs" format="ixt:num-dot-decimal" scale="0" id="f-338">902,432</ix:nonFraction> in the year ended December&#160;31, 2023, due to the write down of certain install receivables which were deemed uncollectible in the year ended December&#160;31, 2023. At December&#160;31, 2024 and 2023, the allowance for credit losses was $<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent" format="ixt:num-dot-decimal" scale="0" id="f-339">295,932</ix:nonFraction> and $<ix:nonFraction unitRef="usd" contextRef="c-6" decimals="0" name="us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent" format="ixt:num-dot-decimal" scale="0" id="f-340">149,992</ix:nonFraction>, respectively.</span></div></ix:nonNumeric><ix:nonNumeric contextRef="c-1" name="us-gaap:InventoryPolicyTextBlock" id="f-341" escape="true"><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Inventory</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Raw materials, work in process, and finished goods inventories are stated at the lower of cost, as determined by the average cost method, or net realizable value.  We periodically review inventory quantities on hand for excess and/or obsolete inventory based primarily on historical usage, as well as based on estimated forecast of product demand and anticipated usage.  Any reserves that result from this review are charged to cost of sales.</span></div></ix:nonNumeric><ix:nonNumeric contextRef="c-1" name="us-gaap:PropertyPlantAndEquipmentPolicyTextBlock" id="f-342" continuedAt="f-342-1" escape="true"><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Property, Plant and Equipment</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Property, plant and equipment are recorded at cost. Depreciation is provided using the straight-line method over the estimated useful life of the asset, which range from <span style="-sec-ix-hidden:f-343">three</span> to <ix:nonNumeric contextRef="c-37" name="us-gaap:PropertyPlantAndEquipmentUsefulLife" format="ixt-sec:durwordsen" id="f-344">fifteen years</ix:nonNumeric>.  Leasehold improvements are amortized using the straight-line method over the lesser of the estimated useful lives of the assets or the term of the related leases.  Expenditures for maintenance and repairs are expensed, while renewals and betterments that materially extend the life of an asset are capitalized.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We review our property, plant and equipment for potential impairment whenever events or changes in business circumstances indicate that the carrying value of the assets may not be fully recoverable or that the useful lives of the assets are </span></div></ix:nonNumeric></ix:continuation><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="margin-bottom:6pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">F- 8</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">TECOGEN INC.</span></div><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Notes to Audited Consolidated Financial Statements for December 31, 2024 and 2023</span></div><div style="text-align:center"><span><br/></span></div></div><ix:continuation id="f-323-3" continuedAt="f-323-4"><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"><ix:continuation id="f-342-1">no longer appropriate. We evaluate the recoverability of our long-lived assets when impairment is indicated by comparing the net book value of the asset group to the estimated future undiscounted cash flows attributable to such assets. If the sum of the projected undiscounted cash flows (excluding interest charges) is less than the carrying value of the assets, the assets will be written down to the estimated fair value and such loss is recognized in income from continuing operations in the period in which the determination is made. If impairment is indicated, the asset is written down to its estimated fair value.</ix:continuation> </span></div><ix:nonNumeric contextRef="c-1" name="us-gaap:IntangibleAssetsFiniteLivedPolicy" id="f-345" continuedAt="f-345-1" escape="true"><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Intangible Assets</span></div></ix:nonNumeric><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"><ix:continuation id="f-345-1">Intangible assets subject to amortization include costs incurred by us to acquire product certifications, certain patent costs, developed technologies, and customer contracts.  These costs are amortized on a straight-line basis over the estimated economic life of the intangible asset.  Indefinite life intangible assets such as trademarks are recorded at cost and not amortized.</ix:continuation> </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The favorable contract asset which relates to existing ADGE customer contracts is more fully described in Note 8. "Intangible Assets and Liabilities other than Goodwill". Customer contracts are more fully described in Note 5. "Aegis Contract and Related Asset Acquisition".  </span></div><ix:nonNumeric contextRef="c-1" name="us-gaap:ImpairmentOrDisposalOfLongLivedAssetsPolicyTextBlock" id="f-346" continuedAt="f-346-1" escape="true"><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Impairment of Long-lived Assets</span></div></ix:nonNumeric><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"><ix:continuation id="f-346-1">Long-lived assets, including intangible assets and property, plant and equipment, are evaluated for impairment whenever events or changes in circumstances have indicated that an asset may not be recoverable and are grouped with other assets to the lowest level for which identifiable cash flows are largely independent of the cash flows of other groups of assets and liabilities.  If the sum of the projected undiscounted cash flows (excluding interest charges) is less than the carrying value of the assets, the assets will be written down to the estimated fair value and such loss is recognized in income from continuing operations in the period in which the determination is made.</ix:continuation> Management determined that <ix:nonFraction unitRef="usd" contextRef="c-13" decimals="0" name="us-gaap:ImpairmentOfLongLivedAssetsHeldForUse" format="ixt:fixed-zero" scale="0" id="f-347"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" name="us-gaap:ImpairmentOfLongLivedAssetsHeldForUse" format="ixt:fixed-zero" scale="0" id="f-348">no</ix:nonFraction></ix:nonFraction> impairment of long-lived assets existed as of December&#160;31, 2024 and 2023, respectively.</span></div><ix:nonNumeric contextRef="c-1" name="us-gaap:BusinessCombinationsPolicy" id="f-349" escape="true"><div style="margin-bottom:6pt;margin-top:6pt;padding-left:36pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Business Combinations</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In accordance with applicable accounting standards, we estimate the fair value of assets acquired and liabilities assumed as of the acquisition date of each business combination. Any excess purchase price over the fair value of the net tangible and intangible assets acquired is allocated to goodwill. We may make certain estimates and assumptions when determining the fair values of assets acquired and liabilities assumed, including intangible assets. Critical estimates in valuing certain intangible assets include but are not limited to future expected cash flows from energy production sites or customer maintenance contracts, estimated operating costs, as well as discount rates. At the acquisition date, we will also record acquisition related liabilities, if applicable, for any contingent consideration or deferred payments to the seller and pre-acquisition deferred maintenance contingencies identified at service contract acquisition. Contingent consideration and pre-acquisition deferred maintenance contingencies are recorded at fair value on the acquisition date based on our expectation of achieving the contractually defined revenue targets and actual and projected future costs. The fair value of the contingent consideration and pre-acquisition deferred maintenance liabilities are remeasured each reporting period after the acquisition date and any changes in the estimated fair value are reflected as gains or losses in cost of goods sold or general and administrative expense in the consolidated statement of operations. Contingent consideration liabilities and deferred payments to sellers are recorded as current liabilities and other long-term liabilities in the consolidated balance sheets based on the expected timing of settlement.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Management&#8217;s estimates of fair value are based upon assumptions believed to be reasonable, but which are inherently uncertain and unpredictable and, as a result, actual results may differ from estimates. Any changes to provisional amounts identified during the measurement period are recognized in the reporting period in which the adjustment amounts are determined. Transaction costs associated with business combinations are expensed as incurred.</span></div></ix:nonNumeric><ix:nonNumeric contextRef="c-1" name="us-gaap:GoodwillAndIntangibleAssetsGoodwillPolicy" id="f-350" continuedAt="f-350-1" escape="true"><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Goodwill</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Goodwill is the excess of the fair value of consideration paid for businesses over the fair value of the identifiable net assets acquired. Impairment testing for goodwill is performed annually, generally in the fourth fiscal quarter, or more frequently if impairment indicators are present. </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">To determine if goodwill is potentially impaired, we have the option to perform a qualitative assessment. However, we may elect to bypass the qualitative assessment and perform an impairment test even if no indications of a potential impairment exist. The impairment test for goodwill is performed at the reporting unit level and compares the fair value of the reporting unit (calculated using a discounted cash flow method) to its carrying value, including goodwill.  The discount rate represents our estimate of the weighted-average cost of capital, or expected return, that a marketplace participant would have required as of the valuation date. If the carrying value exceeds the fair value, an impairment charge is recorded for the excess carrying value over fair value, limited to the total amount of goodwill of that reporting unit. For 2024, we assessed goodwill impairment of our energy production reporting unit and our Aegis service maintenance contracts reporting unit.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We used a discounted cash flow approach to develop the estimated fair value of each reporting unit. Management </span></div></ix:nonNumeric></ix:continuation><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="margin-bottom:6pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">F- 9</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">TECOGEN INC.</span></div><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Notes to Audited Consolidated Financial Statements for December 31, 2024 and 2023</span></div><div style="text-align:center"><span><br/></span></div></div><ix:continuation id="f-323-4" continuedAt="f-323-5"><ix:continuation id="f-350-1"><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">judgment is required in developing the assumptions for the discounted cash flow model. The discount rate, profitability assumptions, and terminal growth rate assumptions of the Energy Production unit utilized in the discounted cash flow model used to estimate its fair value are specific to the Energy Production unit, which the discount rate, profitability assumptions, and terminal growth rate assumptions utilized for the Aegis service maintenance reporting unit are specific to the Aegis service maintenance reporting. An impairment would be recorded if the carrying amount of a reporting unit including goodwill exceeded the estimated fair value. Based on the aforementioned analysis, our assessment in 2024 indicated that the carrying  value of our energy production reporting unit exceeded their fair value and therefore goodwill was impaired. We recorded a goodwill impairment charge of $<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" name="us-gaap:GoodwillImpairmentLoss" format="ixt:num-dot-decimal" scale="0" id="f-351">217,295</ix:nonFraction> in our Consolidated Financial Statements. Our assessment of the Aegis service maintenance contracts reporting unit, at December&#160;31, 2024, indicated that the carrying value of the service maintenance contracts did not exceed their fair value and therefore goodwill was not impaired. (see Note 10."Goodwill").</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We adopted the provisions of ASU 2017-04, during 2018, which simplified the impairment testing process by eliminating the requirement to determine the implied fair value of goodwill. We test goodwill for impairment on either a qualitative basis under certain conditions, or a quantitative basis. On a quantitative basis, fair value of the reporting units is primarily determined using a probability weighted discounted cash flow analysis.</span></div></ix:continuation><ix:nonNumeric contextRef="c-1" name="tgen:ContingentConsiderationArrangementsPolicyPolicyTextBlock" id="f-352" escape="true"><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Acquisition-Related Contingent Consideration</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Acquisition-related contingent consideration, which primarily consists of contingent consideration payable obligations, equal to a percentage of the revenue collected for maintenance services pursuant to the Aegis contract and related asset acquisitions, was recorded in the Consolidated Balance Sheets at its acquisition date estimated fair value, in accordance with the acquisition method of accounting. The fair value of the acquisition-related contingent consideration is remeasured each reporting period, with changes in fair value recorded in the Consolidated Statements of Operations. The fair value measurement of contingent consideration obligations arising from business combinations is determined via a probability-weighted discounted cash flow analysis, using unobservable (Level 3) inputs. These inputs may include: (i) the estimated amount and timing of projected cash flows, (ii) the probability of the achievement of the factor(s) on which the contingency is based and (iii) the risk-adjusted discount rate used to present value the probability-weighted cash flows. Significant increases or decreases in any of those inputs in isolation could result in a significantly higher or lower fair value measurement.</span></div></ix:nonNumeric><ix:nonNumeric contextRef="c-1" name="us-gaap:LesseeLeasesPolicyTextBlock" id="f-353" continuedAt="f-353-1" escape="true"><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Leases</span></div></ix:nonNumeric><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"><ix:continuation id="f-353-1">On January 1, 2019, we adopted the guidance under ASU No. 2016-02, &#8220;Leases&#8221; ("ASC 842&#8221;). ASC 842 requires lessees to recognize most leases on their balance sheets as a right-of-use ("ROU") asset with a corresponding lease liability. ROU assets represent our right to use an underlying asset for the lease term and lease liabilities represent our obligation to make lease payments arising from the lease. Lease ROU assets and liabilities are recognized at lease commencement date based on the present value of lease payments over the expected lease term.</ix:continuation> See Note 14."Leases". </span></div><ix:nonNumeric contextRef="c-1" name="us-gaap:EarningsPerSharePolicyTextBlock" id="f-354" continuedAt="f-354-1" escape="true"><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Income (loss) per Common Share</span></div></ix:nonNumeric><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"><ix:continuation id="f-354-1">We compute basic income (loss) per share by dividing net income (loss) for the period by the weighted-average number of shares of common stock outstanding during the period.  We compute our diluted earnings (loss) per common share using the treasury stock method.  For purposes of calculating diluted earnings per share, we consider our shares issuable in connection with convertible debentures, stock options and warrants to be dilutive common stock equivalents when the exercise/conversion price is less than the average market price of our common stock for the period.</ix:continuation> </span></div><ix:nonNumeric contextRef="c-1" name="us-gaap:SegmentReportingPolicyPolicyTextBlock" id="f-355" escape="true"><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Segment Information</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our operations are comprised of <ix:nonFraction unitRef="segment" contextRef="c-1" decimals="0" name="us-gaap:NumberOfOperatingSegments" format="ixt-sec:numwordsen" scale="0" id="f-356">three</ix:nonFraction> business segments. Our Products segment designs, manufactures and sells industrial and commercial cogeneration systems as described above. Our Services segment installs and maintains our cogeneration systems. Our Energy Production segment sells energy in the form of electricity, heat, hot water and cooling to our customers under long-term sales agreements. Segment profit is based on operating income after the elimination of intercompany transactions. Segment profit is a measure of operating performance of our reportable segments and may not be comparable to similar measures reported by other companies. Segment profit is a performance metric utilized by our Chief Executive Officer, who is our Chief Operating Decision Maker, to allocate resources to and access performance of our segments. See Note 18. "Segments" for a reconciliation of segment profit to income from operations.</span></div></ix:nonNumeric><ix:nonNumeric contextRef="c-1" name="us-gaap:IncomeTaxPolicyTextBlock" id="f-357" continuedAt="f-357-1" escape="true"><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Income Taxes</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We use the asset and liability method of accounting for income taxes.  The current or deferred tax consequences of transactions are measured by applying the provisions of enacted tax laws to determine the amount of taxes payable currently or in future years.  Deferred tax assets and liabilities are determined based on the difference between the financial statement and tax bases of assets and liabilities and expected future tax consequences of events that have been included in the financial statements or tax returns using enacted tax rates in effect for the years in which the differences are expected to reverse.  Under this method, a valuation allowance is used to offset deferred taxes if, based upon the available evidence, it is more likely than </span></div></ix:nonNumeric></ix:continuation><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="margin-bottom:6pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">F- 10</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">TECOGEN INC.</span></div><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Notes to Audited Consolidated Financial Statements for December 31, 2024 and 2023</span></div><div style="text-align:center"><span><br/></span></div></div><ix:continuation id="f-323-5" continuedAt="f-323-6"><ix:continuation id="f-357-1"><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">not that some or all of the deferred tax assets may not be realized.  Management evaluates the recoverability of deferred taxes and the adequacy of the valuation allowance annually.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We have adopted the provisions of the accounting standards relative to accounting for uncertainties in tax positions. These provisions provide guidance on the recognition, derecognition and measurement of potential tax benefits associated with tax positions.  We elected to recognize interest and penalties related to income tax matters as a component of income tax expense in the statements of operations.  We have analyzed our current tax return compliance positions and determined that no uncertain tax positions have been taken that would require recognition.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">With few exceptions, we are no longer subject to possible income tax examinations by federal, state or local taxing authorities for tax years before 2021, with the exception of loss carryforwards in the event they are utilized in future years.  Our  tax returns are open to adjustment from 2001 forward, as a result of the fact that the we have loss carryforwards from those years, which may be adjusted in the year those losses are utilized.</span></div></ix:continuation><ix:nonNumeric contextRef="c-1" name="us-gaap:FairValueOfFinancialInstrumentsPolicy" id="f-358" continuedAt="f-358-1" escape="true"><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Fair Value of Financial Instruments</span></div></ix:nonNumeric><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"><ix:continuation id="f-358-1">Our financial instruments are cash and cash equivalents, accounts receivable, available-for-sale securities and accounts payable.  The recorded values of cash and cash equivalents, accounts receivable and accounts payable approximate their fair values based on their short-term nature.</ix:continuation> See Note 16. "Fair Value Measurements".</span></div><ix:nonNumeric contextRef="c-1" name="us-gaap:RevenueFromContractWithCustomerPolicyTextBlock" id="f-359" continuedAt="f-359-1" escape="true"><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Revenue Recognition</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Revenue is recognized when performance obligations under the terms of a contract with our customer are satisfied; generally, this occurs with the transfer of control of our products, services and energy production. Revenue is measured as the amount of consideration we expect to receive in exchange for transferring goods or providing services or energy to customers. </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Shipping and handling fees billed to customers in a sales transaction are recorded in revenue for goods provided. were $<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" name="tgen:ContractWithCustomerShippingAndHandlingBilled" format="ixt:num-dot-decimal" scale="0" id="f-360">96,890</ix:nonFraction> and $<ix:nonFraction unitRef="usd" contextRef="c-13" decimals="0" name="tgen:ContractWithCustomerShippingAndHandlingBilled" format="ixt:num-dot-decimal" scale="0" id="f-361">174,662</ix:nonFraction>, for the years ended December&#160;31, 2024 and 2023, respectively. The related shipping and handling costs incurred are accounted for as fulfillment activities and are recognized as cost of goods sold when control of the product transfers to the customer, which were $<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" name="tgen:CostOfGoodsSoldShippingAndHandling" format="ixt:num-dot-decimal" scale="0" id="f-362">59,331</ix:nonFraction> and $<ix:nonFraction unitRef="usd" contextRef="c-13" decimals="0" name="tgen:CostOfGoodsSoldShippingAndHandling" format="ixt:num-dot-decimal" scale="0" id="f-363">79,616</ix:nonFraction>, for the years ended December&#160;31, 2024 and 2023, respectively. The costs of inbound freight is recorded in general and administrative expenses. For the years ended December&#160;31, 2024 and 2023, $<ix:nonFraction unitRef="usd" contextRef="c-38" decimals="0" name="tgen:ShippingandHandlingExpenses" format="ixt:num-dot-decimal" scale="0" id="f-364">248,229</ix:nonFraction> and $<ix:nonFraction unitRef="usd" contextRef="c-39" decimals="0" name="tgen:ShippingandHandlingExpenses" format="ixt:num-dot-decimal" scale="0" id="f-365">427,880</ix:nonFraction> of shipping and handling costs were included in general and administrative expenses in the accompanying consolidated statements of operations, respectively. We elected to exclude from revenue any value-add sales and other taxes which we collect concurrent with revenue-producing activities. These accounting policy elections are consistent with the manner in which we have historically recorded shipping and handling fees and taxes. Incremental costs incurred by us in obtaining a contract with a customer are negligible, if any, and are expensed ratably in proportion to the related revenue recognized.</span></div></ix:nonNumeric><ix:nonNumeric contextRef="c-1" name="us-gaap:AdvertisingCostsPolicyTextBlock" id="f-366" continuedAt="f-366-1" escape="true"><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Advertising Costs</span></div></ix:nonNumeric><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"><ix:continuation id="f-366-1">We expense the costs of advertising as incurred.</ix:continuation>  For the years ended December&#160;31, 2024 and 2023, advertising expense was approximately $<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:AdvertisingExpense" format="ixt:num-dot-decimal" scale="0" id="f-367">74,000</ix:nonFraction> and $<ix:nonFraction unitRef="usd" contextRef="c-13" decimals="-3" name="us-gaap:AdvertisingExpense" format="ixt:num-dot-decimal" scale="0" id="f-368">80,000</ix:nonFraction>, respectively.</span></div><ix:nonNumeric contextRef="c-1" name="us-gaap:ResearchAndDevelopmentExpensePolicy" id="f-369" continuedAt="f-369-1" escape="true"><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Research and Development Costs</span></div></ix:nonNumeric><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"><ix:continuation id="f-369-1">Research and development expenditures are expensed as incurred.</ix:continuation>  Our total research and development expenditures were approximately $<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" name="tgen:ResearchAndDevelopmentExpenseGross" format="ixt:num-dot-decimal" scale="0" id="f-370">962,000</ix:nonFraction> and $<ix:nonFraction unitRef="usd" contextRef="c-13" decimals="0" name="tgen:ResearchAndDevelopmentExpenseGross" format="ixt:num-dot-decimal" scale="0" id="f-371">840,000</ix:nonFraction> for the years ended December&#160;31, 2024 and 2023, respectively. </span></div><ix:nonNumeric contextRef="c-1" name="us-gaap:ShareBasedCompensationOptionAndIncentivePlansPolicy" id="f-372" escape="true"><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Stock-Based Compensation</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Stock-based compensation cost is measured at the grant date, based on the estimated fair value of the award, and is recognized as an expense in the statements of operations over the requisite service period.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The determination of the fair value of share-based payment awards is affected by our stock price.  For the awards issued prior to our being publicly traded, we considered the sales price of the common stock in private placements to unrelated third parties as a measure of the fair value of our common stock.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We utilize actual forfeitures when calculating the expense for the period. Stock-based compensation expense recognized is based on awards that are ultimately expected to vest.  We evaluate the assumptions used to value awards regularly and if factors change and different assumptions are employed, stock-based compensation expense may differ significantly from what has been recorded in the past.  If there are any modifications or cancellations of the underlying unvested securities, we may be required to accelerate, increase or cancel any remaining unearned stock-based compensation expense.</span></div></ix:nonNumeric><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">See Note 15."Stockholders' Equity" for a summary of the restricted stock and stock option activity under our stock-based employee compensation plan for the years ended December&#160;31, 2024, and 2023. </span></div><div style="margin-bottom:6pt;margin-top:6pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Disaggregated Revenue</span></div></ix:continuation><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="margin-bottom:6pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">F- 11</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">TECOGEN INC.</span></div><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Notes to Audited Consolidated Financial Statements for December 31, 2024 and 2023</span></div><div style="text-align:center"><span><br/></span></div></div><ix:continuation id="f-323-6" continuedAt="f-323-7"><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In general, our business segmentation is aligned according to the nature and economic characteristics of our products and customer relationships and provides meaningful disaggregation of each business segment's results of operations. </span></div><ix:nonNumeric contextRef="c-1" name="us-gaap:DisaggregationOfRevenueTableTextBlock" id="f-373" escape="true"><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table further disaggregates our revenue by major source by segment for the years ended December&#160;31, 2024 and 2023.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:center;text-indent:36pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:401.25pt"><tr><td style="width:1.0pt"/><td style="width:193.00pt"/><td style="width:1.0pt"/><td style="width:1.0pt"/><td style="width:1.75pt"/><td style="width:1.0pt"/><td style="width:1.0pt"/><td style="width:97.75pt"/><td style="width:1.0pt"/><td style="width:1.0pt"/><td style="width:1.00pt"/><td style="width:1.0pt"/><td style="width:1.0pt"/><td style="width:97.75pt"/><td style="width:1.0pt"/></tr><tr style="height:14pt"><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="9" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Years Ended</span></td></tr><tr style="height:14pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2024</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2023</span></td></tr><tr style="height:14pt"><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Products:</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/></tr><tr style="height:14pt"><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Cogeneration</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-40" decimals="0" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="0" id="f-374">2,677,930</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-41" decimals="0" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="0" id="f-375">2,761,667</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:14pt"><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Chiller</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-42" decimals="0" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="0" id="f-376">1,647,374</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-43" decimals="0" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="0" id="f-377">5,303,978</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:14pt"><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Engineered Accessories</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-44" decimals="0" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="0" id="f-378">118,692</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-45" decimals="0" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="0" id="f-379">794,301</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:14pt"><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total Products Revenue</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-46" decimals="0" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="0" id="f-380">4,443,996</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-47" decimals="0" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="0" id="f-381">8,859,946</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr style="height:14pt"><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Services</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-48" decimals="0" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="0" id="f-382">16,074,870</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-49" decimals="0" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="0" id="f-383">14,523,054</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:14pt"><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Energy production</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-50" decimals="0" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="0" id="f-384">2,100,670</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-51" decimals="0" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="0" id="f-385">1,756,419</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:14pt"><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total revenue</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-52" decimals="0" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="0" id="f-386">22,619,536</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-53" decimals="0" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="0" id="f-387">25,139,419</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div></ix:nonNumeric><ix:continuation id="f-359-1" continuedAt="f-359-2"><div style="margin-bottom:6pt;margin-top:6pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Products Segment</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our Product revenues include cogeneration systems that supply electricity and hot water, chillers that provide air-conditioning and hot water and engineered accessories, which consist of ancillary products and parts necessary to install a cogeneration unit including integration into the customers&#8217; existing electrical and mechanical systems. We refer to the package of engineered accessories and engineering and design services necessary for the customers' installation of a cogeneration unit as light installation services.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We transfer control and generally recognize a sale when we ship a product from our manufacturing facility at which point the customer takes ownership of the product. Payment terms on product sales are generally <ix:nonNumeric contextRef="c-1" name="tgen:RevenueFromContractWithCustomerPaymentPeriod" format="ixt-sec:durday" id="f-388">30</ix:nonNumeric> days. </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We recognize revenue in certain circumstances before delivery to the customer has occurred (commonly referred to as bill and hold transactions). We recognize revenue related to such transactions once, among other things, the customer has made a written fixed commitment to purchase the product(s) under normal billing and credit terms, the customer has requested the product(s) be held for future delivery as scheduled and designated by them, risk of ownership has been assumed by the customer, and the product(s) are tagged as sold and segregated for storage awaiting further direction from the customer. Due to the infrequent nature and duration of bill and hold arrangements, the value associated with custodial storage services is deemed immaterial in the context of the contract and in total, and accordingly, none of the transaction price is allocated to such service.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Depending on the product and terms of the arrangement, we may defer the recognition of a portion of the transaction price received because we have to satisfy a future obligation (e.g., product start-up service). Amounts allocated to product start-up services are recognized as revenue when the start-up service has been completed. We use an observable selling price to determine standalone selling prices where available and either a combination of an adjusted market assessment approach, an expected cost plus a margin approach, and/or a residual approach to determine the standalone selling prices for separate performance obligations as a basis for allocating contract consideration when an observable selling price is not available. Amounts received but not recognized pending completion of performance are recognized as contract liabilities and are recorded as deferred revenue along with deposits by customers. </span></div><div style="margin-bottom:6pt;margin-top:6pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Services Segment</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Maintenance services are provided under either long-term maintenance contracts or time and material maintenance contracts. Revenue under time and material maintenance contracts is recognized when the maintenance service is completed. Revenue under long-term maintenance contracts is recognized either ratably over the term of the contract where the contract price is fixed or when the periodic maintenance activities are completed and the invoiced cost to the customer is based on run hours or kilowatts produced in a given period. We use an output method to measure progress towards completion of our performance obligation which results in the recognition of revenue on the basis of a direct measurement of the value to the customer of the services transferred to date relative to the remaining services promised under the contract. We use the practical expedient at ASC 606-10-55-18 of recognizing revenue in an amount equal to the amount we have the right to invoice the customer under the contract. </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our initial acquisition of the Aegis maintenance contracts and related business closed on March 15, 2023. We have included the financial results of the Aegis maintenance agreements in our consolidated financial statements from April 1, 2023, from February 1, 2024 and from May 1, 2024, the closing or acquisition dates for the acquisitions in our revenue from the Services segment. Payment terms for maintenance services are generally <ix:nonNumeric contextRef="c-1" name="tgen:RevenueFromContractWithCustomerPaymentPeriod" format="ixt-sec:durday" id="f-389">30</ix:nonNumeric> days.</span></div></ix:continuation></ix:continuation><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="margin-bottom:6pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">F- 12</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">TECOGEN INC.</span></div><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Notes to Audited Consolidated Financial Statements for December 31, 2024 and 2023</span></div><div style="text-align:center"><span><br/></span></div></div><ix:continuation id="f-323-7" continuedAt="f-323-8"><ix:continuation id="f-359-2" continuedAt="f-359-3"><div style="margin-bottom:6pt;margin-top:6pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Energy Production Segment</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Revenue from energy contracts is recognized when electricity, heat, hot and/or chilled water is produced by our owned on-site cogeneration systems. Each month we bill the customer and recognize revenue for the various forms of energy delivered, based on meter readings which capture the quantity of the various forms of energy delivered in a given month, under a contractually defined formula which takes into account the current month's cost of energy from the local power utility. </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As the various forms of energy delivered by us under energy production contracts are simultaneously delivered and consumed by the customer, our performance obligation under these contracts is considered to be satisfied over time. We use an output method to measure progress towards completion of our performance obligation which results in the recognition of revenue on the basis of a direct measurement of the value to the customer of the services transferred to date relative to the remaining services promised under the contract. We use the practical expedient at ASC 606-10-55-18 of recognizing revenue in an amount equal to that amount to which we have the right to invoice the customer under the contract. Payment terms on invoices under these contracts are generally <ix:nonNumeric contextRef="c-1" name="tgen:RevenueFromContractWithCustomerPaymentPeriod" format="ixt-sec:durday" id="f-390">30</ix:nonNumeric> days. </span></div><div style="margin-bottom:6pt;margin-top:6pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Contract Balances</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The timing of revenue recognition, billings and cash collections result in billed accounts receivable, unbilled revenue (contract assets) and deferred revenue, consisting of customer deposits and billings in excess of revenue recognized (contract liabilities) on the consolidated balance sheets.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We did not recognize any revenue during the year ended December&#160;31, 2024 that was included in the unbilled revenue receivable as of December&#160;31, 2024. </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Revenue recognized during the year ended December&#160;31, 2024 that was included in deferred revenue at the beginning of the period was $<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" name="us-gaap:DeferredRevenueRevenueRecognized1" format="ixt:num-dot-decimal" scale="0" id="f-391">662,730</ix:nonFraction>.</span></div><div style="margin-bottom:6pt;margin-top:6pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Remaining Performance Obligations</span></div></ix:continuation><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"><ix:continuation id="f-359-3">Remaining performance obligations related to ASC 606 represent the aggregate transaction price allocated to performance obligations with an original contract term greater than one year, excluding certain maintenance contracts and all energy production contracts where a direct measurement of the value to the customer is used as a method of measuring progress towards completion of our performance obligation. Exclusion of these remaining performance obligations is due in part to the inability to quantify values based on unknown future levels of delivery and in some cases rates used to bill customers. Remaining performance obligations therefore consist of unsatisfied or partially satisfied performance obligations related to fixed price maintenance contracts and installation contracts.</ix:continuation> </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As of December&#160;31, 2024, the aggregate amount of the transaction price allocated to remaining unsatisfied performance obligations was approximately $<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="us-gaap:RevenueRemainingPerformanceObligation" format="ixt:num-dot-decimal" scale="0" id="f-392">7,867,082</ix:nonFraction>. We expect to recognize revenue of approximately <ix:nonFraction unitRef="number" contextRef="c-5" decimals="2" name="us-gaap:RevenueRemainingPerformanceObligationPercentage" scale="-2" id="f-393">84</ix:nonFraction>% of the remaining performance obligations over the next 24 months, <ix:nonFraction unitRef="number" contextRef="c-54" decimals="2" name="us-gaap:RevenueRemainingPerformanceObligationPercentage" scale="-2" id="f-394">82</ix:nonFraction>% recognized in the first 12 months and <ix:nonFraction unitRef="number" contextRef="c-55" decimals="2" name="us-gaap:RevenueRemainingPerformanceObligationPercentage" scale="-2" id="f-395">2</ix:nonFraction>%&#160;recognized over the subsequent 12 months, and the remainder recognized thereafter.</span></div><ix:nonNumeric contextRef="c-1" name="us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock" id="f-396" continuedAt="f-396-1" escape="true"><div style="margin-bottom:6pt;margin-top:6pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Significant New Accounting Standards Adopted this Period </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">New accounting standards adopted in the year ended December&#160;31, 2023.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Financial Instruments, Credit Losses (Topic 326)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. In June 2016, the Financial Accounting Standards Board issued ASU No. 2016-13, </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Financial Instruments, Credit Losses (Topic 326)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">, which was subsequently amended by ASUs 2018-19, 2019-04, 2019-05, 2019-11, and 2020-03. Topic 326 replaces the existing incurred loss impairment model with a methodology that incorporates all expected credit loss estimates, resulting in more timely recognition of losses. Under Topic 326, we are required to measure all expected credit losses for financial assets held at the reporting date based on historical experience, current conditions, and reasonable and supportable forecasts that affect the collectability of the reported financial assets. It also requires credit losses related to available-for-sale debt securities to be recorded through an allowance for credit losses. We adopted Topic 326 on January 1, 2023 on a modified retrospective basis. The adoption did not have a material effect on our consolidated financial statements. </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">New accounting standards adopted in the year ended December&#160;31, 2024.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Segment Reporting (Topic 280) - Improvements to Reportable Segment Disclosure</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">s. In November 2023, the Financial Accounting Standards Board issued ASU 2023-07, </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Segment Reporting (Topic 280) - Improvements to Reportable Segment Disclosures</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. The new standard requires enhanced disclosures about a public entity's reportable segments including more detailed information about a reportable segment's expenses. The amendments in this update apply to all public entities that are required to report segment information, and include those entities that have a single reportable segment. The amendments in this update are effective for fiscal years beginning after December 15, 2023, and interim periods within fiscal years beginning after December 15, 2024. Early adoption is permitted. We adopted Topic 280 on January 1, 2024. Retrospective application is </span></div></ix:nonNumeric></ix:continuation><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="margin-bottom:6pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">F- 13</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">TECOGEN INC.</span></div><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Notes to Audited Consolidated Financial Statements for December 31, 2024 and 2023</span></div><div style="text-align:center"><span><br/></span></div></div><ix:continuation id="f-396-1"><ix:continuation id="f-323-8"><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">required for all periods presented in the financial statements. The adoption of Topic 280 did not have a material effect on our consolidated financial statements, other than with respect to expanded disclosure.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Recently Issued Accounting Pronouncements</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Income Taxes (Topic 740) - Improvements to Income Tax Disclosure</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">s. In December 2023, the Financial Accounting Standards Board issued ASU 2023-09, </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Income Taxes (Topic 740) - Improvements to Income Tax Disclosures</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. ASU 2023-09 provides more transparency about income tax information through improvements to income tax disclosures primarily related to the rate reconciliation and income taxes paid information. The amendments in this update are effective for annual periods beginning after December 15, 2024. Early adoption is permitted. The adoption of Topic 740 will not have a material effect on our consolidated financial statements, other than with respect to expanded disclosure.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Compensation - Stock Compensation (Topic 718) - </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In March 2024, the Financial Accounting Standards Board Issued ASU 2024-01, </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Compensation - Stock Compensation (Topic 718)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. ASU 2024-01 addresses generally accepted accounting principles relating to profits interest awards and similar awards provided to employees or non-employees to align compensation with an entity's operating performance and provide the holders with the opportunity to participate in future profits and/or equity appreciation of the entity. Since profits interest holders only participate in future profits and/or equity appreciation and have no rights to the existing assets of the entity, a profits interest award should be accounted for as a share-based compensation arrangement (Topic 718) or similar to a cash bonus or profit-sharing arrangement (Topic 710). The amendments in this update apply to all entities that enter into share-based payment transactions and are effective for annual periods beginning after December 15, 2024 and interim periods for those annual periods. Early adoption is permitted for both interim and annual periods that have not yet been issued or made available for issuance. If adopted in an interim period, the Update should be adopted as of the beginning of the annual period that includes the interim period. The amendments can be applied retrospectively to all prior periods presented in the financial statements or prospectively to profits interest and similar awards granted or modified on or after the date the entity first applies the amendments. If applied retrospectively,  the entity is required to provide disclosures in paragraphs 250-10-50-1 through 50-3. If applied prospectively, the entity is required to disclose the nature and reason for the change in accounting principle. ASU 2024-01 may apply to Tecogen should we issue profits interest awards after December 15, 2024, adoption of which we believe will not have a material effect on our financial position or results of operation.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Codification Improvements &#8211; Amendments to Remove References to the Concepts Statements</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. In March 2024, the Financial Accounting Standards Board Issued ASU 2024-02, </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Codification Improvements &#8211; Amendments to Remove References to the Concepts Statements</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. ASU 2024-02 contains amendments to the Codification that remove references to various FASB Concept Statements, affecting a variety of Topics in the Codification and applies to all reporting entities. The amendments in this update are effective for public entities for fiscal years beginning after December 31, 2024. Early application of the amendments in this update are permitted for any fiscal year or interim period for which financial statements have not yet been issued or made available for issuance. If adopted in an interim period, the amendment must be adopted as of the beginning of the fiscal years that includes the interim period. An entity should apply the amendments prospectively to all new transactions recognized on or after the date that the entity first applies the amendments, or retrospectively to the beginning of the earliest comparative period presented in which the amendments were first applied, by adjusting the opening balance of retained earnings, or other appropriated components of equity or net assets, as of the beginning of the earliest comparative period presented. ASU 2024-02 will apply to Tecogen after December 15, 2024, adoption of which we believe will not have a material effect on our financial position or results of operation.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"> Income Statement &#8211; Reporting Comprehensive Income &#8211; Expense Disaggregation Disclosures (Subtopic 220-40). </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In November 2024, the Financial Accounting Standards Board Issued ASU 2024-03 </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Income Statement- Reporting Comprehensive Income &#8211; Expense Disaggregation Disclosures (Subtopic 220-40)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. This update is intended to improve disclosures about public entity&#8217;s expenses and will require more detailed information about types of expenses including inventory purchases, employee compensation, depreciation, amortization and depletion in commonly presented captions such as cost of sales, SG&amp;A and research and development. In addition, an entity will be required to include certain amounts that are already disclosed under GAAP in the same disclosure as the other disaggregation requirements; disclose a qualitative description of the amounts remaining in expense captions not separately disaggregated quantitatively; and, disclose the amount of selling expense and, in annual reporting periods, the entity&#8217;s definition of selling expenses. The amendments are effective for annual reporting periods beginning after December 15, 2026, and interim reporting periods beginning after December 15, 2027. Early adoption is permitted. The amendments should be applied prospectively to the financial statements after the effective date and retrospectively to any and all prior periods presented in the financial statements. ASU 2024-03 will apply to Tecogen after December 15, 2026, adoption of which will not have a material effect on our financial position or results of operation, but will require additional disclosure.</span></div></ix:continuation></ix:continuation><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span><br/></span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="margin-bottom:6pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">F- 14</span></div></div></div><div id="ic4bfd2faeedf4470adc28b9f3bba3b4c_124"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">TECOGEN INC.</span></div><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Notes to Audited Consolidated Financial Statements for December 31, 2024 and 2023</span></div><div style="text-align:center"><span><br/></span></div></div><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Note 3.  <ix:nonNumeric contextRef="c-1" name="us-gaap:EarningsPerShareTextBlock" id="f-399" continuedAt="f-399-1" escape="true">Income (loss) per Common Share:</ix:nonNumeric></span></div><ix:nonNumeric contextRef="c-1" name="us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" id="f-400" escape="true"><ix:continuation id="f-399-1"><div style="margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Basic and diluted loss per common share for the years ended</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%"> </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">December&#160;31, 2024 and 2023, respectively, was as follows:</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:center;text-indent:36pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:85.964%"><tr><td style="width:1.0%"/><td style="width:54.852%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:20.498%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.650%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:20.500%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Years Ended</span></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2024</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2023</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Numerator:</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Net loss attributable to stockholders</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" sign="-" name="us-gaap:NetIncomeLoss" format="ixt:num-dot-decimal" scale="0" id="f-401">4,760,238</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-13" decimals="0" sign="-" name="us-gaap:NetIncomeLoss" format="ixt:num-dot-decimal" scale="0" id="f-402">4,598,108</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Denominator:</span></td><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Weighted average shares outstanding - Basic</span></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-1" decimals="0" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" format="ixt:num-dot-decimal" scale="0" id="f-403">24,861,190</ix:nonFraction></span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-13" decimals="0" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" format="ixt:num-dot-decimal" scale="0" id="f-404">24,850,261</ix:nonFraction></span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Effect of dilutive securities:</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Stock options</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-56" decimals="0" name="us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment" format="ixt:fixed-zero" scale="0" id="f-405">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-57" decimals="0" name="us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment" format="ixt:fixed-zero" scale="0" id="f-406">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Weighted average shares outstanding - Diluted</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-1" decimals="0" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" format="ixt:num-dot-decimal" scale="0" id="f-407">24,861,190</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-13" decimals="0" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" format="ixt:num-dot-decimal" scale="0" id="f-408">24,850,261</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Basic loss per share</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usdPerShare" contextRef="c-1" decimals="2" sign="-" name="us-gaap:EarningsPerShareBasic" scale="0" id="f-409">0.19</ix:nonFraction>)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usdPerShare" contextRef="c-13" decimals="2" sign="-" name="us-gaap:EarningsPerShareBasic" scale="0" id="f-410">0.19</ix:nonFraction>)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Diluted loss per share</span></td><td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usdPerShare" contextRef="c-1" decimals="2" sign="-" name="us-gaap:EarningsPerShareDiluted" scale="0" id="f-411">0.19</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usdPerShare" contextRef="c-13" decimals="2" sign="-" name="us-gaap:EarningsPerShareDiluted" scale="0" id="f-412">0.19</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:14pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Anti-dilutive shares underlying stock options outstanding</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-56" decimals="0" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" format="ixt:num-dot-decimal" scale="0" id="f-413">1,222,516</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-57" decimals="0" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" format="ixt:num-dot-decimal" scale="0" id="f-414">1,757,676</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr></table></div></ix:continuation></ix:nonNumeric><div id="ic4bfd2faeedf4470adc28b9f3bba3b4c_127"></div><div style="margin-bottom:6pt;margin-top:6pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Note 4.  <ix:nonNumeric contextRef="c-1" name="us-gaap:MergersAcquisitionsAndDispositionsDisclosuresTextBlock" id="f-415" continuedAt="f-415-1" escape="true">Acquisition of American DG Energy Inc.</ix:nonNumeric></span></div><ix:continuation id="f-415-1"><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On May&#160;18, 2017, we completed our acquisition, by means of a stock-for-stock merger, of <ix:nonFraction unitRef="number" contextRef="c-58" decimals="INF" name="us-gaap:SubsidiaryOrEquityMethodInvesteeCumulativePercentageOwnershipAfterAllTransactions" scale="-2" id="f-416">100</ix:nonFraction>% of the outstanding common shares of American DG Energy Inc. (&#8220;American DG Energy" or "ADGE&#8221;), a company which installed, owned, operated and maintained complete distributed generation of electricity systems, or DG systems or energy systems, and other complementary systems at customer sites and sells electricity, hot water, heat and cooling energy under long-term contracts at prices guaranteed to the customer to be below conventional utility rates, by means of a merger of one of our wholly owned subsidiaries with and into ADGE such that ADGE became a wholly owned subsidiary of Tecogen. We acquired ADGE to, among other reasons, expand our product offerings and benefit directly from the long-term contracted revenue streams generated by these installations. We gained control of ADGE on May&#160;18, 2017 by issuing shares of our Common Stock to the prior stockholders of ADGE.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Goodwill of $<ix:nonFraction unitRef="usd" contextRef="c-59" decimals="-5" name="us-gaap:Goodwill" scale="6" id="f-417">13.3</ix:nonFraction> million arising from the acquisition is primarily attributable to the going concern element of ADGE&#8217;s business, including its assembled workforce and the long-term contractual nature of its business, as well as expected cost synergies from the merger related primarily to the elimination of administrative overhead and duplicative personnel. <ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="us-gaap:BusinessAcquisitionPurchasePriceAllocationGoodwillExpectedTaxDeductibleAmount" format="ixt:fixed-zero" scale="0" id="f-418">None</ix:nonFraction> of the goodwill recognized is expected to be deductible for income tax purposes.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The favorable contract asset and the unfavorable contract liability, both of which relate to existing customer contracts, and the estimated amortization are more fully described in Note 8. "Intangible Assets and Liabilities other than Goodwill".</span></div></ix:continuation><div id="ic4bfd2faeedf4470adc28b9f3bba3b4c_130"></div><div style="margin-bottom:6pt;margin-top:6pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Note 5.  <ix:nonNumeric contextRef="c-1" name="us-gaap:BusinessCombinationDisclosureTextBlock" id="f-419" continuedAt="f-419-1" escape="true">Aegis Contract and Related Asset Acquisition</ix:nonNumeric></span></div><ix:continuation id="f-419-1" continuedAt="f-419-2"><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On March 15, 2023, we entered into an agreement ("Agreement") with Aegis Energy Services, LLC (&#8220;Aegis&#8221;) pursuant to which Aegis agreed to assign to us and we agreed to assume certain Aegis maintenance agreements, we agreed to purchase certain assets from Aegis, and related matters (&#8220;Acquisition&#8221;).  On April 1, 2023, the Acquisition closed. Under the Agreement, we agreed to acquire from Aegis and assume Aegis&#8217; rights and obligations arising on or after April 1, 2023, under maintenance agreements pursuant to which Aegis provided maintenance services to third parties for approximately <ix:nonFraction unitRef="cogenerationsystem" contextRef="c-60" decimals="0" name="tgen:AssetAcquisitionMaintenanceAgreementsNumberOfCogenerationSystems" scale="0" id="f-420">200</ix:nonFraction> cogeneration systems and we agreed to acquire from Aegis certain vehicles and inventory used by Aegis in connection with the performance of its maintenance services.  At closing, we acquired eight (<ix:nonFraction unitRef="vehicle" contextRef="c-60" decimals="INF" name="tgen:NumberOfAssetsAcquired" scale="0" id="f-421">8</ix:nonFraction>) Aegis vehicles for consideration consisting of $<ix:nonFraction unitRef="usd" contextRef="c-61" decimals="0" name="tgen:PaymentsForAssetAcquisitions" format="ixt:num-dot-decimal" scale="0" id="f-422">170,000</ix:nonFraction> in cash.  Also, we issued credits against outstanding accounts receivable due from Aegis in the amount of $<ix:nonFraction unitRef="usd" contextRef="c-61" decimals="0" name="us-gaap:AssetAcquisitionConsiderationTransferredOtherAssets" format="ixt:num-dot-decimal" scale="0" id="f-423">300,000</ix:nonFraction> for the acquisition of inventory that Aegis used to provide maintenance services. At closing, we hired eight (<ix:nonFraction unitRef="employee" contextRef="c-60" decimals="INF" name="tgen:NumberOfEmployeesAcquired" scale="0" id="f-424">8</ix:nonFraction>) Aegis employees who, following the closing, have agreed to continue to provide maintenance services relating to the cogeneration systems covered by the maintenance agreements assumed pursuant to the Agreement. Following the closing and for a period of up to seven (<ix:nonNumeric contextRef="c-61" name="tgen:AssetAcquisitionMaintenanceAgreementsProfitSharingPeriod" format="ixt-sec:duryear" id="f-425">7</ix:nonNumeric>) years, we agreed to pay Aegis a percentage of the revenue collected for maintenance services provided pursuant to the maintenance agreements acquired from Aegis. Further, prior to December 31, 2023, we had the right to acquire and assume additional Aegis&#8217; maintenance agreements for cogeneration systems on substantially similar terms and conditions. The Agreement contained certain indemnification provisions and agreements on the part of Aegis and for each party to cooperate with each other and provide certain transitional assistance. We acquired the Aegis maintenance agreements to expand our Service portfolio and to benefit from the long-term contract revenue stream generated by these agreements.  </span></div></ix:continuation><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="margin-bottom:6pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">F- 15</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">TECOGEN INC.</span></div><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Notes to Audited Consolidated Financial Statements for December 31, 2024 and 2023</span></div><div style="text-align:center"><span><br/></span></div></div><ix:continuation id="f-419-2" continuedAt="f-419-3"><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On February 1, 2024, Tecogen and Aegis amended the Agreement to add eighteen (<ix:nonFraction unitRef="maintenancecontract" contextRef="c-62" decimals="0" name="tgen:AssetAcquisitionNumberOfAdditionalMaintenanceContracts" scale="0" id="f-426">18</ix:nonFraction>) additional maintenance contracts assumed by us (the "February 2024 Amendment") which includes an undertaking by Aegis to use commercially reasonable efforts to support and assist our execution of maintenance service agreements for an additional thirty-six (<ix:nonFraction unitRef="cogenerationunit" contextRef="c-62" decimals="0" name="tgen:AssetAcquisitionMaintenanceAgreementsNumberOfAdditionalCogenerationUnits" scale="0" id="f-427">36</ix:nonFraction>) cogeneration units sold to customers by Aegis. </span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On May 1, 2024, Tecogen and Aegis amended the Agreement to add thirty-one (<ix:nonFraction unitRef="maintenancecontract" contextRef="c-63" decimals="0" name="tgen:AssetAcquisitionNumberOfAdditionalMaintenanceContracts" scale="0" id="f-428">31</ix:nonFraction>) additional maintenance contracts assumed by us (the "May 2024 Amendment") which includes an undertaking by Aegis to use commercially reasonable efforts to support and assist our execution of maintenance service agreements for an additional forty-eight (<ix:nonFraction unitRef="cogenerationunit" contextRef="c-63" decimals="0" name="tgen:AssetAcquisitionMaintenanceAgreementsNumberOfAdditionalCogenerationUnits" scale="0" id="f-429">48</ix:nonFraction>) cogeneration units sold to customers by Aegis.  </span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">No additional maintenance service agreements contemplated in the February 2024 Amendment or the May 2024 Amendment have been executed as of December&#160;31, 2024.</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We have determined that the assignment and assumption of the Aegis maintenance agreements, in combination with the related asset acquisition and the retention of the former Aegis employees, constitutes a business and should be accounted for as a business combination under the acquisition method. As of the acquisition date, we recognized, separately from goodwill, the identifiable assets acquired and the liabilities assumed, at fair value. We have applied an interpretation of the guidance in ASC 805, Business Combinations, that allows an entity to combine multiple acquisitions as one single transaction due to the April 1, 2023, February 1, 2024 and May 1, 2024 acquisitions being executed in contemplation of one another to achieve the same commercial objective for the Company. As a result, we have adjusted the initial accounting for the April 1, 2023 acquisition for the value of net assets acquired from the February 1, 2024 and May 1, 2024 acquisitions.</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We have included the financial results of the Aegis maintenance agreements in our consolidated financial statements from April 1, 2023, from February 1, 2024 and from May 1, 2024, the closing or acquisition dates for the acquisitions.</span></div><ix:nonNumeric contextRef="c-1" name="us-gaap:AssetAcquisitionTableTextBlock" id="f-430" continuedAt="f-430-1" escape="true"><div style="margin-bottom:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes the consideration paid for the Aegis acquisition and the fair value of assets acquired and contract-related liabilities assumed as of the acquisition date:</span></div><div style="margin-bottom:6pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.561%"><tr><td style="width:1.0%"/><td style="width:44.568%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.822%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.387%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.996%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.387%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.675%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.387%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.678%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="21" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Acquisitions</span></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">April 1, 2023</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">February 1, 2024</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">May 1, 2024</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Total</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Consideration Paid:</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Cash</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-61" decimals="0" name="tgen:PaymentsForAssetAcquisitions" format="ixt:num-dot-decimal" id="f-431">170,000</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-64" decimals="0" name="tgen:PaymentsForAssetAcquisitions" format="ixt:fixed-zero" id="f-432">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-65" decimals="0" name="tgen:PaymentsForAssetAcquisitions" format="ixt:fixed-zero" id="f-433">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-66" decimals="0" name="tgen:PaymentsForAssetAcquisitions" format="ixt:num-dot-decimal" id="f-434">170,000</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Accounts receivable credit issued</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-61" decimals="0" name="us-gaap:AssetAcquisitionConsiderationTransferredOtherAssets" format="ixt:num-dot-decimal" id="f-435">300,000</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-64" decimals="0" name="us-gaap:AssetAcquisitionConsiderationTransferredOtherAssets" format="ixt:fixed-zero" id="f-436">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-65" decimals="0" name="us-gaap:AssetAcquisitionConsiderationTransferredOtherAssets" format="ixt:fixed-zero" id="f-437">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-66" decimals="0" name="us-gaap:AssetAcquisitionConsiderationTransferredOtherAssets" format="ixt:num-dot-decimal" id="f-438">300,000</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Account payable due to Aegis</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-61" decimals="0" name="tgen:AssetAcquisitionConsiderationTransferredAccountsPayable" format="ixt:num-dot-decimal" id="f-439">91,048</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-64" decimals="0" name="tgen:AssetAcquisitionConsiderationTransferredAccountsPayable" format="ixt:fixed-zero" id="f-440">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-65" decimals="0" name="tgen:AssetAcquisitionConsiderationTransferredAccountsPayable" format="ixt:fixed-zero" id="f-441">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-66" decimals="0" name="tgen:AssetAcquisitionConsiderationTransferredAccountsPayable" format="ixt:num-dot-decimal" id="f-442">91,048</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Contingent consideration</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-61" decimals="0" name="us-gaap:AssetAcquisitionConsiderationTransferredContingentConsideration" format="ixt:num-dot-decimal" id="f-443">1,256,656</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-64" decimals="0" name="us-gaap:AssetAcquisitionConsiderationTransferredContingentConsideration" format="ixt:num-dot-decimal" id="f-444">101,641</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-65" decimals="0" name="us-gaap:AssetAcquisitionConsiderationTransferredContingentConsideration" format="ixt:num-dot-decimal" id="f-445">171,260</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-66" decimals="0" name="us-gaap:AssetAcquisitionConsiderationTransferredContingentConsideration" format="ixt:num-dot-decimal" id="f-446">1,529,557</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total fair value of consideration transferred</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-61" decimals="0" name="us-gaap:AssetAcquisitionConsiderationTransferred" format="ixt:num-dot-decimal" id="f-447">1,817,704</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-64" decimals="0" name="us-gaap:AssetAcquisitionConsiderationTransferred" format="ixt:num-dot-decimal" id="f-448">101,641</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-65" decimals="0" name="us-gaap:AssetAcquisitionConsiderationTransferred" format="ixt:num-dot-decimal" id="f-449">171,260</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-66" decimals="0" name="us-gaap:AssetAcquisitionConsiderationTransferred" format="ixt:num-dot-decimal" id="f-450">2,090,605</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:12pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Identifiable assets acquired and liabilities assumed:</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Assets acquired</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Property, plant and equipment</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-61" decimals="0" name="tgen:AssetAcquisitionPropertyPlantAndEquipment" format="ixt:num-dot-decimal" id="f-451">170,000</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-64" decimals="0" name="tgen:AssetAcquisitionPropertyPlantAndEquipment" format="ixt:fixed-zero" id="f-452">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-65" decimals="0" name="tgen:AssetAcquisitionPropertyPlantAndEquipment" format="ixt:fixed-zero" id="f-453">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-66" decimals="0" name="tgen:AssetAcquisitionPropertyPlantAndEquipment" format="ixt:num-dot-decimal" id="f-454">170,000</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Inventory</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-61" decimals="0" name="tgen:AssetAcquisitionInventory" format="ixt:num-dot-decimal" id="f-455">391,048</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-64" decimals="0" name="tgen:AssetAcquisitionInventory" format="ixt:fixed-zero" id="f-456">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-65" decimals="0" name="tgen:AssetAcquisitionInventory" format="ixt:fixed-zero" id="f-457">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-66" decimals="0" name="tgen:AssetAcquisitionInventory" format="ixt:num-dot-decimal" id="f-458">391,048</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Identifiable intangible asset - customer contracts</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-61" decimals="0" name="us-gaap:FinitelivedIntangibleAssetsAcquired1" format="ixt:num-dot-decimal" id="f-459">1,772,659</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-64" decimals="0" name="us-gaap:FinitelivedIntangibleAssetsAcquired1" format="ixt:num-dot-decimal" id="f-460">184,587</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-65" decimals="0" name="us-gaap:FinitelivedIntangibleAssetsAcquired1" format="ixt:num-dot-decimal" id="f-461">267,877</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-66" decimals="0" name="us-gaap:FinitelivedIntangibleAssetsAcquired1" format="ixt:num-dot-decimal" id="f-462">2,225,123</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-61" decimals="0" name="tgen:AssetAcquisitionAssetsAcquired" format="ixt:num-dot-decimal" id="f-463">2,333,707</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-64" decimals="0" name="tgen:AssetAcquisitionAssetsAcquired" format="ixt:num-dot-decimal" id="f-464">184,587</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-65" decimals="0" name="tgen:AssetAcquisitionAssetsAcquired" format="ixt:num-dot-decimal" id="f-465">267,877</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-66" decimals="0" name="tgen:AssetAcquisitionAssetsAcquired" format="ixt:num-dot-decimal" id="f-466">2,786,171</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Acquired contract-related liabilities assumed</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Deferred maintenance reserve</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-61" decimals="0" name="tgen:AssetAcquisitionReserves" format="ixt:num-dot-decimal" id="f-467">853,271</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-64" decimals="0" name="tgen:AssetAcquisitionReserves" format="ixt:fixed-zero" id="f-468">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-65" decimals="0" name="tgen:AssetAcquisitionReserves" format="ixt:fixed-zero" id="f-469">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-66" decimals="0" name="tgen:AssetAcquisitionReserves" format="ixt:num-dot-decimal" id="f-470">853,271</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Net identifiable assets acquired</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-61" decimals="0" name="tgen:AssetAcquisitionAssetsAcquiredAndLiabilitiesAssumedNet" format="ixt:num-dot-decimal" id="f-471">1,480,436</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-64" decimals="0" name="tgen:AssetAcquisitionAssetsAcquiredAndLiabilitiesAssumedNet" format="ixt:num-dot-decimal" id="f-472">184,587</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-65" decimals="0" name="tgen:AssetAcquisitionAssetsAcquiredAndLiabilitiesAssumedNet" format="ixt:num-dot-decimal" id="f-473">267,877</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-66" decimals="0" name="tgen:AssetAcquisitionAssetsAcquiredAndLiabilitiesAssumedNet" format="ixt:num-dot-decimal" id="f-474">1,932,900</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Excess of cost over fair value of net assets acquired (Goodwill)</span></td><td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-61" decimals="0" name="us-gaap:GoodwillAcquiredDuringPeriod" format="ixt:num-dot-decimal" id="f-475">337,268</ix:nonFraction>&#160;</span></td><td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="padding:0 1pt"/><td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-62" decimals="0" sign="-" name="tgen:AssetAcquisitionGoodwill" format="ixt:num-dot-decimal" id="f-476">82,946</ix:nonFraction>)</span></td><td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="padding:0 1pt"/><td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-63" decimals="0" sign="-" name="tgen:AssetAcquisitionGoodwill" format="ixt:num-dot-decimal" id="f-477">96,617</ix:nonFraction>)</span></td><td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="padding:0 1pt"/><td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-67" decimals="0" name="tgen:AssetAcquisitionGoodwill" format="ixt:num-dot-decimal" id="f-478">157,705</ix:nonFraction>&#160;</span></td><td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div></ix:nonNumeric><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Initial Acquisition - April 1, 2023</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The amounts initially recognized for inventory, identifiable intangible assets, contingent consideration and deferred maintenance reserves were provisional pending completion of the necessary valuations and analysis. ASC 805 establishes a measurement period to provide companies with a reasonable amount of time to obtain the information necessary to identify and measure various items in a business combination and cannot extend beyond one year from the acquisition date. As of December&#160;31, 2023, we completed our analysis and valuation.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As of December&#160;31, 2024, we recorded no remeasurment adjustments to the fair value of the contingent consideration and deferred maintenance reserves given the probability of achieving the revenue estimates and the actual and expected maintenance costs  were consistent with our initial valuation.</span></div></ix:continuation><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="margin-bottom:6pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">F- 16</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">TECOGEN INC.</span></div><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Notes to Audited Consolidated Financial Statements for December 31, 2024 and 2023</span></div><div style="text-align:center"><span><br/></span></div></div><ix:continuation id="f-419-3" continuedAt="f-419-4"><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">February 2024 Amendment</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The amounts initially recognized for identifiable intangible assets and contingent consideration are provisional, pending completion of the necessary valuations and analysis. ASC 805 establishes a measurement period to provide companies with a reasonable amount of time to obtain the information necessary to identify and measure various items in a business combination and cannot extend beyond one year from the acquisition date. During the year ended December&#160;31, 2024, we identified a $<ix:nonFraction unitRef="usd" contextRef="c-68" decimals="0" name="tgen:AssetAcquisitionProvisionalInformationInitialAccountingIncompleteAdjustmentContingentConsiderationLiability" format="ixt:num-dot-decimal" scale="0" id="f-479">9,232</ix:nonFraction> adjustment to increase the contingent consideration liability and a $<ix:nonFraction unitRef="usd" contextRef="c-68" decimals="0" name="tgen:AssetAcquisitionProvisionalInformationInitialAccountingIncompleteAdjustmentFiniteLivedIntangibleAssetsAcquired" format="ixt:num-dot-decimal" scale="0" id="f-480">5,052</ix:nonFraction> adjustment reducing the customer contracts intangible asset. As of December&#160;31, 2024, we completed our analysis and valuation for the February 2024 amendment.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">May 2024 Amendment</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The amounts initially recognized for identifiable intangible assets and contingent consideration are provisional pending completion of the necessary valuations and analysis. ASC 805 establishes a measurement period to provide companies with a reasonable amount of time to obtain the information necessary to identify and measure various items in a business combination and cannot extend beyond one year from the acquisition date. As of December&#160;31, 2024, we have completed our analysis and valuation for the May 2024 amendment.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Acquisition Valuation</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The fair value of the identifiable intangible asset was estimated using the income approach. The excess cash flow was discounted to present value using an appropriate rate of return to estimate the market value of the customer identifiable intangible asset and the risks associated with the future revenue forecasts due to potential changes in customer energy requirements or changes in the economic viability of these CHP sites which depend on the spread between natural gas fuel and electricity prices, all of which are not within our control. Key assumptions to value the customer identifiable intangible asset included the discount rate of <ix:nonFraction unitRef="number" contextRef="c-69" decimals="2" name="tgen:IntangibleAssetsMeasurementInput" scale="-2" id="f-481">15</ix:nonFraction>%, profitability assumptions, revenue assumptions, and anticipated existing contract run out were the material assumptions utilized in the discounted cash flow model used to estimate fair value. The discount rate reflects an estimate of our weighted-average cost of capital. </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Following the closing and for a period of up to seven (<ix:nonNumeric contextRef="c-61" name="tgen:AssetAcquisitionMaintenanceAgreementsProfitSharingPeriod" format="ixt-sec:duryear" id="f-482">7</ix:nonNumeric>) years, we agreed to pay Aegis contingent consideration equal to a percentage of the revenue collected for maintenance services provided pursuant to the maintenance agreements acquired from Aegis. On the date of acquisition, the fair value of the contingent consideration and the deferred maintenance reserve were calculated under the income approach using a weighted average cost of capital of <ix:nonFraction unitRef="number" contextRef="c-69" decimals="2" name="tgen:IntangibleAssetsMeasurementInput" scale="-2" id="f-483">15</ix:nonFraction>%, discounting the future cash flows to present value, and are subsequently remeasured to fair value at each reporting date until the fair value contingencies are resolved. Fair value adjustments which may be determined at subsequent reporting dates will be recorded in our consolidated statements of operations and will not impact the goodwill balance after the measurement period.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The contingent consideration is payable within forty-five (<ix:nonNumeric contextRef="c-61" name="tgen:AssetAcquisitionContingentConsiderationPaymentPeriod" format="ixt-sec:durday" id="f-484">45</ix:nonNumeric>) days following the end of each calendar quarter through the earlier of the expiration or termination of the relevant maintenance agreements, or the seventh (7th) anniversary of the acquisition date. The consideration is equal to the product of the revenues collected in a calendar quarter multiplied by an applicable percentage. The agreement stipulates quarterly aggregate revenue targets and an applicable percentage, and provides for a higher applicable percentage if revenues exceed the target revenues. The applicable percentage ranges from <ix:nonFraction unitRef="number" contextRef="c-70" decimals="2" name="tgen:AssetAcquisitionContingentConsiderationPercentage" scale="-2" id="f-485">5</ix:nonFraction>% to <ix:nonFraction unitRef="number" contextRef="c-71" decimals="2" name="tgen:AssetAcquisitionContingentConsiderationPercentage" scale="-2" id="f-486">10</ix:nonFraction>% over the agreement term. The deferred maintenance reserve represents costs, which are expected to be incurred over a <ix:nonNumeric contextRef="c-61" name="tgen:AssetAcquisitionDeferredMaintenanceCostsIncurredPeriod" format="ixt-sec:durwordsen" id="f-487">three-year</ix:nonNumeric> period from the date of acquisition to repair customer equipment which had not been sufficiently maintained prior to our acquisition of the maintenance service agreements. </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The purchase price of the acquisition was allocated to the tangible and intangible assets acquired and liabilities assumed and recognized at their fair value based on widely accepted valuation techniques in accordance with ASC 820, "Fair Value Measurement," as of the acquisition date. The process for estimating fair value requires the use of significant assumptions and estimates of future cash flows and developing appropriate discount rates. The excess of the purchase price over fair value of the net identified assets acquired and liabilities assumed was recorded as goodwill. Goodwill is primarily attributable to the going concern element of the Aegis business, including its assembled workforce and the long-term nature of the customer maintenance agreements, as well as anticipated cost synergies due primarily to the elimination of administrative overhead. Goodwill resulting from the Aegis acquisition is not expected to be deductible for income tax purposes. </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Acquisition-related costs which consisted on recurring internal resources were de minimus and such costs were expensed as incurred (ASC 805-50-30-1).</span></div></ix:continuation><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="margin-bottom:6pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">F- 17</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">TECOGEN INC.</span></div><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Notes to Audited Consolidated Financial Statements for December 31, 2024 and 2023</span></div><div style="text-align:center"><span><br/></span></div></div><ix:continuation id="f-419-4"><ix:continuation id="f-430-1"><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes the contract-related liabilities assumed as of December&#160;31, 2024:</span></div><div style="margin-bottom:6pt;text-align:center;text-indent:36pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:69.736%"><tr><td style="width:1.0%"/><td style="width:47.746%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:24.057%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.638%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:24.059%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2024</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2023</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Acquisition liabilities, current</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Contingent consideration</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-68" decimals="0" name="tgen:AssetAcquisitionConsiderationTransferredContingentConsiderationCurrent" format="ixt:num-dot-decimal" id="f-488">328,350</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-72" decimals="0" name="tgen:AssetAcquisitionConsiderationTransferredContingentConsiderationCurrent" format="ixt:num-dot-decimal" id="f-489">200,639</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Deferred maintenance reserve</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-68" decimals="0" name="tgen:AssetAcquisitionReservesCurrent" format="ixt:num-dot-decimal" id="f-490">574,202</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-72" decimals="0" name="tgen:AssetAcquisitionReservesCurrent" format="ixt:num-dot-decimal" id="f-491">644,724</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-68" decimals="0" name="tgen:AssetAcquisitionLiabilitiesAssumedCurrent" format="ixt:num-dot-decimal" id="f-492">902,552</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-72" decimals="0" name="tgen:AssetAcquisitionLiabilitiesAssumedCurrent" format="ixt:num-dot-decimal" id="f-493">845,363</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Acquisition liabilities, long-term</span></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Contingent consideration</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-68" decimals="0" name="tgen:AssetAcquisitionConsiderationTransferredContingentConsiderationNoncurrent" format="ixt:num-dot-decimal" id="f-494">1,008,760</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-72" decimals="0" name="tgen:AssetAcquisitionConsiderationTransferredContingentConsiderationNoncurrent" format="ixt:num-dot-decimal" id="f-495">994,743</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Deferred maintenance reserve</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-68" decimals="0" name="tgen:AssetAcquisitionReservesNoncurrent" format="ixt:fixed-zero" id="f-496">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-72" decimals="0" name="tgen:AssetAcquisitionReservesNoncurrent" format="ixt:num-dot-decimal" id="f-497">187,036</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-68" decimals="0" name="tgen:AssetAcquisitionLiabilitiesAssumedNoncurrent" format="ixt:num-dot-decimal" id="f-498">1,008,760</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-72" decimals="0" name="tgen:AssetAcquisitionLiabilitiesAssumedNoncurrent" format="ixt:num-dot-decimal" id="f-499">1,181,779</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div></ix:continuation><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:112%">Revenues and gross profit from the Aegis maintenance contracts were $<ix:nonFraction unitRef="usd" contextRef="c-68" decimals="0" name="us-gaap:BusinessAcquisitionsProFormaRevenue" format="ixt:num-dot-decimal" scale="0" id="f-500">2,671,051</ix:nonFraction> and $<ix:nonFraction unitRef="usd" contextRef="c-68" decimals="0" name="us-gaap:BusinessAcquisitionsProFormaNetIncomeLoss" format="ixt:num-dot-decimal" scale="0" id="f-501">1,764,227</ix:nonFraction> and $<ix:nonFraction unitRef="usd" contextRef="c-72" decimals="0" name="us-gaap:BusinessAcquisitionsProFormaRevenue" format="ixt:num-dot-decimal" scale="0" id="f-502">1,884,891</ix:nonFraction> and $<ix:nonFraction unitRef="usd" contextRef="c-72" decimals="0" name="us-gaap:BusinessAcquisitionsProFormaNetIncomeLoss" format="ixt:num-dot-decimal" scale="0" id="f-503">1,167,225</ix:nonFraction>, respectively, for the years ended December&#160;31, 2024 and 2023. The revenue and gross profit are included in our Services segment since the date of the respective contract acquisitions.</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:112%">Periodic Remeasurement of Contingent Liabilities</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:112%">The fair value of the contingent consideration and pre-acquisition deferred maintenance liabilities are remeasured each reporting period after the acquisition date and any changes in the estimated fair value are reflected as gains or losses in cost of goods sold or general and administrative expense in the consolidated statement of operations.</span></div><div style="margin-bottom:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:112%">We performed a remeasurement analysis of the contingent consideration and pre-acquisition deferred maintenance liabilities at December&#160;31, 2024 and determined that the carrying value of the liabilities approximated the estimated fair value of the of the liabilities, based on a discounted cash flow analysis, and did not record a remeasurement adjustment for the year ended December&#160;31, 2024. </span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:112%">We are unable to provide the pro forma information required under ASC 805-10-50-2(h) as the disclosure is impracticable since the required pre-acquisition historical information could not be obtained from Aegis.</span></div></ix:continuation><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:112%">Note 6 .  <ix:nonNumeric contextRef="c-1" name="us-gaap:DisposalGroupsIncludingDiscontinuedOperationsDisclosureTextBlock" id="f-504" continuedAt="f-504-1" escape="true">Sale of Energy Producing Assets and Goodwill Impairment</ix:nonNumeric></span></div><ix:continuation id="f-504-1"><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">During the first quarter of 2019, we sold certain energy producing assets, including the associated energy production contracts for total consideration of $<ix:nonFraction unitRef="usd" contextRef="c-73" decimals="-6" name="us-gaap:ProceedsFromSaleOfProductiveAssets" scale="6" id="f-505">7</ix:nonFraction> million. </span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In connection with the asset sales, we entered into agreements with the purchaser to maintain and operate the assets over the remaining periods of the associated energy production contracts (through August 2033 and January 2034, respectively) in exchange for monthly fees for both maintenance and operation. These agreements contain provisions whereby we have guaranteed to the purchaser a minimum level or threshold of cash flows from the associated energy production contracts. Actual results are compared to the minimum threshold bi-annually and we reimburse any shortfall to the purchaser. To the extent actual results are in excess of the minimum threshold, we are entitled to <ix:nonFraction unitRef="number" contextRef="c-5" decimals="2" name="tgen:EnergyProductionAgreementsPercentageOfExcessCashFlowsAboveThreshold" format="ixt-sec:numwordsen" scale="-2" id="f-506">fifty</ix:nonFraction> percent of such excess under the agreements. We received excess payments in both the years ended December&#160;31, 2024 and 2023. For the years ended December&#160;31, 2024 and 2023, we recognized $<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" name="tgen:EnergyProductionAgreementsRevenueOfExcessCashFlowsAboveThreshold" format="ixt:num-dot-decimal" scale="0" id="f-507">73,243</ix:nonFraction> and $<ix:nonFraction unitRef="usd" contextRef="c-13" decimals="0" name="tgen:EnergyProductionAgreementsRevenueOfExcessCashFlowsAboveThreshold" format="ixt:num-dot-decimal" scale="0" id="f-508">25,633</ix:nonFraction>, respectively, of revenue representing our share of the excess cash flows under the energy production contracts. Included in our current receivables as of December&#160;31, 2024 and 2023, are excess cash flows of  $<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="tgen:EnergyProductionAgreementsAccountsReceivableFromExcessCashFlowsAboveThreshold" format="ixt:num-dot-decimal" scale="0" id="f-509">98,876</ix:nonFraction> and $<ix:nonFraction unitRef="usd" contextRef="c-6" decimals="0" name="tgen:EnergyProductionAgreementsAccountsReceivableFromExcessCashFlowsAboveThreshold" format="ixt:num-dot-decimal" scale="0" id="f-510">25,633</ix:nonFraction>, respectively. </span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The foregoing agreements also contain provisions whereby we have agreed to make whole the purchaser in the event the counterparty to the energy production contract(s) defaults on or otherwise terminates before the stated expiration of the energy production contract. Should we be required to make whole the purchaser under such provisions, we would be entitled to seek recovery from the counterparty to the energy production contract(s) under a similar provision contained in those contracts in respect of early termination. We did not recognize any counterparty contract default costs in the years ended December&#160;31, 2024 and 2023.</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We are also responsible under the agreements for site decommissioning costs, if any, in excess of certain threshold amounts by site. Decommissioning of site assets is performed when, if and as requested by the counterparty to the energy production contract upon termination of the energy production contract. We recognized $<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" name="tgen:EnergyProductionAgreementsSiteDecommissioningCosts" format="ixt:num-dot-decimal" scale="0" id="f-511">20,000</ix:nonFraction> of site decommissioning costs for the year ended December&#160;31, 2024 and did <ix:nonFraction unitRef="usd" contextRef="c-13" decimals="0" name="tgen:EnergyProductionAgreementsSiteDecommissioningCosts" format="ixt:fixed-zero" scale="0" id="f-512">not</ix:nonFraction> recognize any site decommissioning costs for the year ended December&#160;31, 2023.</span></div></ix:continuation><div id="ic4bfd2faeedf4470adc28b9f3bba3b4c_133"></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span><br/></span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="margin-bottom:6pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">F- 18</span></div></div></div><div id="ic4bfd2faeedf4470adc28b9f3bba3b4c_136"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">TECOGEN INC.</span></div><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Notes to Audited Consolidated Financial Statements for December 31, 2024 and 2023</span></div></div><div style="margin-bottom:6pt;margin-top:6pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Note 7.  <ix:nonNumeric contextRef="c-1" name="us-gaap:InventoryDisclosureTextBlock" id="f-513" continuedAt="f-513-1" escape="true">Inventory, net</ix:nonNumeric></span></div><ix:nonNumeric contextRef="c-1" name="us-gaap:ScheduleOfInventoryCurrentTableTextBlock" id="f-514" escape="true"><ix:continuation id="f-513-1"><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Inventory at December&#160;31, 2024 and 2023 consisted of the following.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:center;text-indent:36pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:57.748%"><tr><td style="width:1.0%"/><td style="width:53.583%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:20.925%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:1.065%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:20.927%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 1.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Raw materials, net</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="us-gaap:InventoryRawMaterialsNetOfReserves" format="ixt:num-dot-decimal" scale="0" id="f-515">8,525,879</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="0" name="us-gaap:InventoryRawMaterialsNetOfReserves" format="ixt:num-dot-decimal" scale="0" id="f-516">8,803,054</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Work-in-process</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="us-gaap:InventoryWorkInProcessNetOfReserves" format="ixt:num-dot-decimal" scale="0" id="f-517">930,769</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="0" name="us-gaap:InventoryWorkInProcessNetOfReserves" format="ixt:num-dot-decimal" scale="0" id="f-518">798,522</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Finished goods, net</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="us-gaap:InventoryFinishedGoodsNetOfReserves" format="ixt:num-dot-decimal" scale="0" id="f-519">177,357</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="0" name="us-gaap:InventoryFinishedGoodsNetOfReserves" format="ixt:num-dot-decimal" scale="0" id="f-520">951,843</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="us-gaap:InventoryNet" format="ixt:num-dot-decimal" scale="0" id="f-521">9,634,005</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="0" name="us-gaap:InventoryNet" format="ixt:num-dot-decimal" scale="0" id="f-522">10,553,419</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div></ix:continuation></ix:nonNumeric><div style="margin-bottom:6pt;text-align:center;text-indent:36pt"><span><br/></span></div><div id="ic4bfd2faeedf4470adc28b9f3bba3b4c_139"></div><div style="margin-bottom:6pt;margin-top:6pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Note 8.  <ix:nonNumeric contextRef="c-1" name="us-gaap:IntangibleAssetsDisclosureTextBlock" id="f-523" continuedAt="f-523-1" escape="true">Intangible Assets and Liabilities Other Than Goodwill</ix:nonNumeric></span></div><ix:continuation id="f-523-1" continuedAt="f-523-2"><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">During the years ended December&#160;31, 2024 and 2023, we did not capitalize any cost incurred for product certification costs, patent-related costs or trademarks.  Also included in intangible assets are legal costs incurred by us to obtain patents for our intellectual property.  These patents, once they are placed in service, are amortized on a straight-line basis over the estimated economic life of the associated product, which ranges from approximately <ix:nonNumeric contextRef="c-74" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" format="ixt-sec:duryear" id="f-524">7</ix:nonNumeric>-<ix:nonNumeric contextRef="c-75" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" format="ixt-sec:duryear" id="f-525">10</ix:nonNumeric> years.  </span></div><ix:nonNumeric contextRef="c-1" name="us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" id="f-526" escape="true"><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Intangible assets and liabilities at December&#160;31, 2024 and 2023 consist of the following:</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span><br/></span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:center;text-indent:36pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:501.00pt"><tr><td style="width:1.0pt"/><td style="width:132.25pt"/><td style="width:1.0pt"/><td style="width:1.0pt"/><td style="width:1.75pt"/><td style="width:1.0pt"/><td style="width:1.0pt"/><td style="width:51.25pt"/><td style="width:1.0pt"/><td style="width:1.0pt"/><td style="width:1.75pt"/><td style="width:1.0pt"/><td style="width:1.0pt"/><td style="width:63.25pt"/><td style="width:1.0pt"/><td style="width:1.0pt"/><td style="width:1.75pt"/><td style="width:1.0pt"/><td style="width:1.0pt"/><td style="width:51.25pt"/><td style="width:1.0pt"/><td style="width:1.0pt"/><td style="width:1.75pt"/><td style="width:1.0pt"/><td style="width:1.0pt"/><td style="width:51.25pt"/><td style="width:1.0pt"/><td style="width:1.0pt"/><td style="width:1.75pt"/><td style="width:1.0pt"/><td style="width:1.0pt"/><td style="width:63.25pt"/><td style="width:1.0pt"/><td style="width:1.0pt"/><td style="width:1.75pt"/><td style="width:1.0pt"/><td style="width:1.0pt"/><td style="width:52.00pt"/><td style="width:1.0pt"/></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="15" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2024</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="15" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2023</span></td></tr><tr style="height:23pt"><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Intangible assets</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Cost</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Accumulated Amortization</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Net</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Cost</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Accumulated Amortization</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Net</span></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;border-top:2pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Product certifications</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-76" decimals="0" name="us-gaap:IntangibleAssetsGrossExcludingGoodwill" format="ixt:num-dot-decimal" scale="0" id="f-527">777,465</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-76" decimals="0" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" format="ixt:num-dot-decimal" scale="0" id="f-528">709,855</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-76" decimals="0" name="us-gaap:IntangibleAssetsNetExcludingGoodwill" format="ixt:num-dot-decimal" scale="0" id="f-529">67,610</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-77" decimals="0" name="us-gaap:IntangibleAssetsGrossExcludingGoodwill" format="ixt:num-dot-decimal" scale="0" id="f-530">777,465</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-77" decimals="0" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" format="ixt:num-dot-decimal" scale="0" id="f-531">658,676</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-77" decimals="0" name="us-gaap:IntangibleAssetsNetExcludingGoodwill" format="ixt:num-dot-decimal" scale="0" id="f-532">118,789</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Patents</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-78" decimals="0" name="us-gaap:IntangibleAssetsGrossExcludingGoodwill" format="ixt:num-dot-decimal" scale="0" id="f-533">888,910</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-78" decimals="0" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" format="ixt:num-dot-decimal" scale="0" id="f-534">584,493</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-78" decimals="0" name="us-gaap:IntangibleAssetsNetExcludingGoodwill" format="ixt:num-dot-decimal" scale="0" id="f-535">304,417</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-79" decimals="0" name="us-gaap:IntangibleAssetsGrossExcludingGoodwill" format="ixt:num-dot-decimal" scale="0" id="f-536">888,910</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-79" decimals="0" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" format="ixt:num-dot-decimal" scale="0" id="f-537">496,807</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-79" decimals="0" name="us-gaap:IntangibleAssetsNetExcludingGoodwill" format="ixt:num-dot-decimal" scale="0" id="f-538">392,103</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Developed technology</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-80" decimals="0" name="us-gaap:IntangibleAssetsGrossExcludingGoodwill" format="ixt:num-dot-decimal" scale="0" id="f-539">240,000</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-80" decimals="0" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" format="ixt:num-dot-decimal" scale="0" id="f-540">188,000</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-80" decimals="0" name="us-gaap:IntangibleAssetsNetExcludingGoodwill" format="ixt:num-dot-decimal" scale="0" id="f-541">52,000</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-81" decimals="0" name="us-gaap:IntangibleAssetsGrossExcludingGoodwill" format="ixt:num-dot-decimal" scale="0" id="f-542">240,000</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-81" decimals="0" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" format="ixt:num-dot-decimal" scale="0" id="f-543">172,000</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-81" decimals="0" name="us-gaap:IntangibleAssetsNetExcludingGoodwill" format="ixt:num-dot-decimal" scale="0" id="f-544">68,000</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Trademarks</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-82" decimals="0" name="us-gaap:IntangibleAssetsGrossExcludingGoodwill" format="ixt:num-dot-decimal" scale="0" id="f-545">26,896</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-82" decimals="0" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" format="ixt:fixed-zero" scale="0" id="f-546">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-82" decimals="0" name="us-gaap:IntangibleAssetsNetExcludingGoodwill" format="ixt:num-dot-decimal" scale="0" id="f-547">26,896</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-83" decimals="0" name="us-gaap:IntangibleAssetsGrossExcludingGoodwill" format="ixt:num-dot-decimal" scale="0" id="f-548">26,896</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-83" decimals="0" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" format="ixt:fixed-zero" scale="0" id="f-549">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-83" decimals="0" name="us-gaap:IntangibleAssetsNetExcludingGoodwill" format="ixt:num-dot-decimal" scale="0" id="f-550">26,896</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">In process R&amp;D</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-84" decimals="0" name="us-gaap:IntangibleAssetsGrossExcludingGoodwill" format="ixt:num-dot-decimal" scale="0" id="f-551">263,936</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-84" decimals="0" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" format="ixt:num-dot-decimal" scale="0" id="f-552">141,394</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-84" decimals="0" name="us-gaap:IntangibleAssetsNetExcludingGoodwill" format="ixt:num-dot-decimal" scale="0" id="f-553">122,542</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-85" decimals="0" name="us-gaap:IntangibleAssetsGrossExcludingGoodwill" format="ixt:num-dot-decimal" scale="0" id="f-554">263,936</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-85" decimals="0" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" format="ixt:num-dot-decimal" scale="0" id="f-555">103,689</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-85" decimals="0" name="us-gaap:IntangibleAssetsNetExcludingGoodwill" format="ixt:num-dot-decimal" scale="0" id="f-556">160,247</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Favorable contract assets</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-86" decimals="0" name="us-gaap:IntangibleAssetsGrossExcludingGoodwill" format="ixt:num-dot-decimal" scale="0" id="f-557">384,465</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-86" decimals="0" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" format="ixt:num-dot-decimal" scale="0" id="f-558">379,839</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-86" decimals="0" name="us-gaap:IntangibleAssetsNetExcludingGoodwill" format="ixt:num-dot-decimal" scale="0" id="f-559">4,626</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-87" decimals="0" name="us-gaap:IntangibleAssetsGrossExcludingGoodwill" format="ixt:num-dot-decimal" scale="0" id="f-560">384,465</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-87" decimals="0" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" format="ixt:num-dot-decimal" scale="0" id="f-561">376,139</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-87" decimals="0" name="us-gaap:IntangibleAssetsNetExcludingGoodwill" format="ixt:num-dot-decimal" scale="0" id="f-562">8,326</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Customer contract</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-88" decimals="0" name="us-gaap:IntangibleAssetsGrossExcludingGoodwill" format="ixt:num-dot-decimal" scale="0" id="f-563">2,225,123</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-88" decimals="0" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" format="ixt:num-dot-decimal" scale="0" id="f-564">290,025</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-88" decimals="0" name="us-gaap:IntangibleAssetsNetExcludingGoodwill" format="ixt:num-dot-decimal" scale="0" id="f-565">1,935,098</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-89" decimals="0" name="us-gaap:IntangibleAssetsGrossExcludingGoodwill" format="ixt:num-dot-decimal" scale="0" id="f-566">1,772,659</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-89" decimals="0" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" format="ixt:num-dot-decimal" scale="0" id="f-567">110,791</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-89" decimals="0" name="us-gaap:IntangibleAssetsNetExcludingGoodwill" format="ixt:num-dot-decimal" scale="0" id="f-568">1,661,868</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="us-gaap:IntangibleAssetsGrossExcludingGoodwill" format="ixt:num-dot-decimal" scale="0" id="f-569">4,806,795</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" format="ixt:num-dot-decimal" scale="0" id="f-570">2,293,606</ix:nonFraction>)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="us-gaap:IntangibleAssetsNetExcludingGoodwill" format="ixt:num-dot-decimal" scale="0" id="f-571">2,513,189</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="0" name="us-gaap:IntangibleAssetsGrossExcludingGoodwill" format="ixt:num-dot-decimal" scale="0" id="f-572">4,354,331</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-6" decimals="0" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" format="ixt:num-dot-decimal" scale="0" id="f-573">1,918,102</ix:nonFraction>)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="0" name="us-gaap:IntangibleAssetsNetExcludingGoodwill" format="ixt:num-dot-decimal" scale="0" id="f-574">2,436,229</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"/></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Intangible liability</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;border-top:2pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Unfavorable contract liability</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-90" decimals="0" name="tgen:IntangibleLiabilityGross" format="ixt:num-dot-decimal" scale="0" id="f-575">2,618,168</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-90" decimals="0" name="tgen:FiniteLivedIntangibleLiabilitiesAccumulatedAmortization" format="ixt:num-dot-decimal" scale="0" id="f-576">2,195,329</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-90" decimals="0" name="tgen:IntangibleLiabilitiesNet" format="ixt:num-dot-decimal" scale="0" id="f-577">422,839</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-91" decimals="0" name="tgen:IntangibleLiabilityGross" format="ixt:num-dot-decimal" scale="0" id="f-578">2,618,168</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-91" decimals="0" name="tgen:FiniteLivedIntangibleLiabilitiesAccumulatedAmortization" format="ixt:num-dot-decimal" scale="0" id="f-579">2,019,122</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-91" decimals="0" name="tgen:IntangibleLiabilitiesNet" format="ixt:num-dot-decimal" scale="0" id="f-580">599,046</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div></ix:nonNumeric><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The aggregate amortization expense related to non-contract related intangible assets was $<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" name="us-gaap:AmortizationOfIntangibleAssets" format="ixt:num-dot-decimal" scale="0" id="f-581">192,571</ix:nonFraction> and $<ix:nonFraction unitRef="usd" contextRef="c-13" decimals="0" name="us-gaap:AmortizationOfIntangibleAssets" format="ixt:num-dot-decimal" scale="0" id="f-582">222,884</ix:nonFraction> during the years ended December&#160;31, 2024 and 2023, respectively. The net aggregate expense (credit) related to the amortization of the contract related intangible assets and liabilities for the years ended December&#160;31, 2024 and 2023 was $<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" name="tgen:AmortizationofContractRelatedIntangibleAssetsandLiabilitiesNet" format="ixt:num-dot-decimal" scale="0" id="f-583">6,727</ix:nonFraction> and $(<ix:nonFraction unitRef="usd" contextRef="c-13" decimals="0" sign="-" name="tgen:AmortizationofContractRelatedIntangibleAssetsandLiabilitiesNet" format="ixt:num-dot-decimal" scale="0" id="f-584">110,031</ix:nonFraction>), respectively.  </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Contract Asset and Liability</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The favorable contract asset and unfavorable contract liability in the foregoing table represent the fair value of ADGE's customer contracts (both positive for favorable contracts and negative for unfavorable contracts) which were acquired by us on May 18, 2017 (see Note 4. "Acquisition of American DG Energy Inc."). The customer contract asset includes the maintenance services contracts acquired by us on April 1, 2023 as part of the Aegis acquisition and pursuant to the February 2024 Amendment and the May 2024 Amendment.  (See Note 5. "Aegis Contract and Related Asset Acquisition". </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Amortization of intangibles including contract related amounts is calculated using the straight line method over the remaining useful life or contract term, which range from approximately <span style="-sec-ix-hidden:f-585">one</span> to <ix:nonNumeric contextRef="c-93" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" format="ixt-sec:durwordsen" id="f-586">eleven years</ix:nonNumeric>, and is charged against cost of sales in the accompanying consolidated statement of operations. <ix:nonNumeric contextRef="c-1" name="us-gaap:ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock" id="f-587" continuedAt="f-587-1" escape="true">Aggregate future amortization over the next five years is estimated to be as follows:</ix:nonNumeric></span></div></ix:continuation><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="margin-bottom:6pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">F- 19</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">TECOGEN INC.</span></div><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Notes to Audited Consolidated Financial Statements for December 31, 2024 and 2023</span></div></div><ix:continuation id="f-587-1"><ix:continuation id="f-523-2"><div style="margin-bottom:6pt;margin-top:5pt;text-align:center;text-indent:36pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:404.25pt"><tr><td style="width:1.0pt"/><td style="width:193.75pt"/><td style="width:1.0pt"/><td style="width:1.0pt"/><td style="width:3.25pt"/><td style="width:1.0pt"/><td style="width:1.0pt"/><td style="width:63.25pt"/><td style="width:1.0pt"/><td style="width:1.0pt"/><td style="width:1.75pt"/><td style="width:1.0pt"/><td style="width:1.0pt"/><td style="width:63.25pt"/><td style="width:1.0pt"/><td style="width:1.0pt"/><td style="width:1.75pt"/><td style="width:1.0pt"/><td style="width:1.0pt"/><td style="width:63.25pt"/><td style="width:1.0pt"/></tr><tr style="height:33pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Non-contract related intangibles</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Contract related intangibles</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Total</span></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2025</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-94" decimals="0" name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseNextRollingTwelveMonths" format="ixt:num-dot-decimal" scale="0" id="f-588">169,754</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-95" decimals="0" name="tgen:FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseNextRolling12Months" format="ixt:num-dot-decimal" scale="0" id="f-589">79,042</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="tgen:FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseNextRolling12Months" format="ixt:num-dot-decimal" scale="0" id="f-590">248,796</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2026</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-94" decimals="0" name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseRollingYearTwo" format="ixt:num-dot-decimal" scale="0" id="f-591">168,244</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-95" decimals="0" name="tgen:FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearTwo" format="ixt:num-dot-decimal" scale="0" id="f-592">124,483</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="tgen:FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearTwo" format="ixt:num-dot-decimal" scale="0" id="f-593">292,727</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2027</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-94" decimals="0" name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseRollingYearThree" format="ixt:num-dot-decimal" scale="0" id="f-594">167,936</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-95" decimals="0" name="tgen:FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearThree" format="ixt:num-dot-decimal" scale="0" id="f-595">131,199</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="tgen:FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearThree" format="ixt:num-dot-decimal" scale="0" id="f-596">299,135</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2028</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-94" decimals="0" name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseRollingYearFour" format="ixt:num-dot-decimal" scale="0" id="f-597">23,278</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-95" decimals="0" name="tgen:FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearFour" format="ixt:num-dot-decimal" scale="0" id="f-598">137,208</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="tgen:FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearFour" format="ixt:num-dot-decimal" scale="0" id="f-599">160,486</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2029</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-94" decimals="0" name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseRollingYearFive" format="ixt:num-dot-decimal" scale="0" id="f-600">5,786</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-95" decimals="0" name="tgen:FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearFive" format="ixt:num-dot-decimal" scale="0" id="f-601">137,208</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="tgen:FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearFive" format="ixt:num-dot-decimal" scale="0" id="f-602">142,994</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Thereafter</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-94" decimals="0" name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseRollingAfterYearFive" format="ixt:num-dot-decimal" scale="0" id="f-603">11,571</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-95" decimals="0" name="tgen:FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingAfterYearFive" format="ixt:num-dot-decimal" scale="0" id="f-604">907,745</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="tgen:FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingAfterYearFive" format="ixt:num-dot-decimal" scale="0" id="f-605">919,316</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="background-color:#cceeff;border-bottom:3pt double #000000;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-94" decimals="0" name="us-gaap:FiniteLivedIntangibleAssetsNet" format="ixt:num-dot-decimal" scale="0" id="f-606">546,569</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-95" decimals="0" name="tgen:FiniteLivedIntangibleAssetsAndLiabilitiesNet" format="ixt:num-dot-decimal" scale="0" id="f-607">1,516,885</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="tgen:FiniteLivedIntangibleAssetsAndLiabilitiesNet" format="ixt:num-dot-decimal" scale="0" id="f-608">2,063,454</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div></ix:continuation></ix:continuation><div style="margin-bottom:6pt;text-align:center;text-indent:36pt"><span><br/></span></div><div id="ic4bfd2faeedf4470adc28b9f3bba3b4c_142"></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Note 9.  <ix:nonNumeric contextRef="c-1" name="us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock" id="f-609" continuedAt="f-609-1" escape="true">Property, Plant and Equipment, net</ix:nonNumeric></span></div><ix:continuation id="f-609-1" continuedAt="f-609-2"><ix:nonNumeric contextRef="c-1" name="us-gaap:PropertyPlantAndEquipmentTextBlock" id="f-610" escape="true"><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Property, plant and equipment at December&#160;31, 2024 and 2023 consisted of the following:</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:center;text-indent:36pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:83.918%"><tr><td style="width:1.0%"/><td style="width:50.293%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.450%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.671%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:14.056%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.671%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:14.059%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Estimated&#160;Useful<br/>Life&#160;(in&#160;Years)</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Energy systems</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="c-96" name="us-gaap:PropertyPlantAndEquipmentUsefulLife" format="ixt-sec:duryear" id="f-611">10</ix:nonNumeric> - <ix:nonNumeric contextRef="c-97" name="us-gaap:PropertyPlantAndEquipmentUsefulLife" format="ixt-sec:duryear" id="f-612">15</ix:nonNumeric> years</span></div></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-98" decimals="0" name="us-gaap:PropertyPlantAndEquipmentGross" format="ixt:num-dot-decimal" scale="0" id="f-613">2,810,232</ix:nonFraction>&#160;</span></td><td style="border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-99" decimals="0" name="us-gaap:PropertyPlantAndEquipmentGross" format="ixt:num-dot-decimal" scale="0" id="f-614">2,810,232</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Machinery and equipment</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="c-100" name="us-gaap:PropertyPlantAndEquipmentUsefulLife" format="ixt-sec:duryear" id="f-615">5</ix:nonNumeric> - <ix:nonNumeric contextRef="c-101" name="us-gaap:PropertyPlantAndEquipmentUsefulLife" format="ixt-sec:duryear" id="f-616">7</ix:nonNumeric> years</span></div></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-102" decimals="0" name="us-gaap:PropertyPlantAndEquipmentGross" format="ixt:num-dot-decimal" scale="0" id="f-617">1,598,538</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-103" decimals="0" name="us-gaap:PropertyPlantAndEquipmentGross" format="ixt:num-dot-decimal" scale="0" id="f-618">1,744,596</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Furniture and fixtures</span></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="c-104" name="us-gaap:PropertyPlantAndEquipmentUsefulLife" format="ixt-sec:duryear" id="f-619">5</ix:nonNumeric> years</span></div></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-104" decimals="0" name="us-gaap:PropertyPlantAndEquipmentGross" format="ixt:num-dot-decimal" scale="0" id="f-620">224,868</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-105" decimals="0" name="us-gaap:PropertyPlantAndEquipmentGross" format="ixt:num-dot-decimal" scale="0" id="f-621">212,963</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Computer software</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="c-106" name="us-gaap:PropertyPlantAndEquipmentUsefulLife" format="ixt-sec:duryear" id="f-622">3</ix:nonNumeric> - <ix:nonNumeric contextRef="c-107" name="us-gaap:PropertyPlantAndEquipmentUsefulLife" format="ixt-sec:duryear" id="f-623">5</ix:nonNumeric> years</span></div></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-108" decimals="0" name="us-gaap:PropertyPlantAndEquipmentGross" format="ixt:num-dot-decimal" scale="0" id="f-624">192,865</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-109" decimals="0" name="us-gaap:PropertyPlantAndEquipmentGross" format="ixt:num-dot-decimal" scale="0" id="f-625">192,865</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Leasehold improvements</span></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">*</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-110" decimals="0" name="us-gaap:PropertyPlantAndEquipmentGross" format="ixt:num-dot-decimal" scale="0" id="f-626">906,739</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-111" decimals="0" name="us-gaap:PropertyPlantAndEquipmentGross" format="ixt:num-dot-decimal" scale="0" id="f-627">466,789</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="us-gaap:PropertyPlantAndEquipmentGross" format="ixt:num-dot-decimal" scale="0" id="f-628">5,733,242</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="0" name="us-gaap:PropertyPlantAndEquipmentGross" format="ixt:num-dot-decimal" scale="0" id="f-629">5,427,445</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Less - accumulated depreciation and amortization</span></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" format="ixt:num-dot-decimal" scale="0" id="f-630">3,995,206</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-6" decimals="0" name="us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" format="ixt:num-dot-decimal" scale="0" id="f-631">4,264,868</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Net property, plant and equipment</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="us-gaap:PropertyPlantAndEquipmentNet" format="ixt:num-dot-decimal" scale="0" id="f-632">1,738,036</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="0" name="us-gaap:PropertyPlantAndEquipmentNet" format="ixt:num-dot-decimal" scale="0" id="f-633">1,162,577</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div><div style="margin-bottom:6pt;margin-top:6pt;text-indent:72pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">* <ix:footnote id="fn-1" footnoteRole="http://www.xbrl.org/2003/role/footnote">Lesser of estimated useful life of asset or lease term</ix:footnote></span></div></ix:nonNumeric><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Depreciation and amortization expense on property and equipment for the years ended December&#160;31, 2024 and 2023 was $<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" name="tgen:DepreciationDepletionandAmortizationPropertyPlantandEquipment" format="ixt:num-dot-decimal" scale="0" id="f-634">354,485</ix:nonFraction> and $<ix:nonFraction unitRef="usd" contextRef="c-13" decimals="0" name="tgen:DepreciationDepletionandAmortizationPropertyPlantandEquipment" format="ixt:num-dot-decimal" scale="0" id="f-635">454,859</ix:nonFraction>, respectively. During the year ended December&#160;31, 2024, we received proceeds of $<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" name="us-gaap:ProceedsFromSaleOfPropertyPlantAndEquipment" format="ixt:num-dot-decimal" scale="0" id="f-636">51,400</ix:nonFraction> from the disposition of certain assets realizing a gain of $<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" name="us-gaap:GainLossOnDispositionOfAssets1" format="ixt:num-dot-decimal" scale="0" id="f-637">12,181</ix:nonFraction>. During the year ended December&#160;31, 2023, we received proceeds of $<ix:nonFraction unitRef="usd" contextRef="c-13" decimals="0" name="us-gaap:ProceedsFromSaleOfPropertyPlantAndEquipment" format="ixt:num-dot-decimal" scale="0" id="f-638">34,655</ix:nonFraction> from the disposition of certain assets and reversed $<ix:nonFraction unitRef="usd" contextRef="c-112" decimals="0" sign="-" name="tgen:AccruedDecommissioningCosts" format="ixt:num-dot-decimal" scale="0" id="f-639">8,687</ix:nonFraction> of accrued decomissioning costs from a former ADGE energy site, realizing a gain of $<ix:nonFraction unitRef="usd" contextRef="c-13" decimals="0" name="us-gaap:GainLossOnDispositionOfAssets1" format="ixt:num-dot-decimal" scale="0" id="f-640">36,207</ix:nonFraction>. </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">During the years December&#160;31, 2024 and 2023, we evaluated the ADGE customer contracts and and related assets and did not deem any assets to be impaired.</span></div></ix:continuation><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"><ix:continuation id="f-609-2">During the year ended December&#160;31, 2024 and 2023 there were no ADGE contract terminations.</ix:continuation> </span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="margin-bottom:6pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">F-20</span></div></div></div><div id="ic4bfd2faeedf4470adc28b9f3bba3b4c_148"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-bottom:6pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">TECOGEN INC.</span></div><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Notes to Audited Consolidated Financial Statements for December 31, 2024 and 2023</span></div><div style="text-align:center"><span><br/></span></div><div style="text-align:center"><span><br/></span></div></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Note 10.  <ix:nonNumeric contextRef="c-1" name="us-gaap:GoodwillDisclosureTextBlock" id="f-641" continuedAt="f-641-1" escape="true">Goodwill</ix:nonNumeric></span></div><ix:continuation id="f-641-1"><ix:nonNumeric contextRef="c-1" name="us-gaap:ScheduleOfGoodwillTextBlock" id="f-642" escape="true"><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Changes in the carrying amount of goodwill by reportable segment during the years ended December&#160;31, 2024 and 2023  was as follows:</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:center;text-indent:36pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:442.50pt"><tr><td style="width:1.0pt"/><td style="width:148.00pt"/><td style="width:1.0pt"/><td style="width:1.0pt"/><td style="width:67.75pt"/><td style="width:1.0pt"/><td style="width:1.0pt"/><td style="width:1.75pt"/><td style="width:1.0pt"/><td style="width:1.0pt"/><td style="width:67.75pt"/><td style="width:1.0pt"/><td style="width:1.0pt"/><td style="width:4.75pt"/><td style="width:1.0pt"/><td style="width:1.0pt"/><td style="width:67.75pt"/><td style="width:1.0pt"/><td style="width:1.0pt"/><td style="width:1.00pt"/><td style="width:1.0pt"/><td style="width:1.0pt"/><td style="width:67.75pt"/><td style="width:1.0pt"/></tr><tr style="height:24pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Products</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Services</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Energy Production</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Total</span></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Balance at December 31, 2022</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-113" decimals="0" name="us-gaap:Goodwill" format="ixt:num-dot-decimal" scale="0" id="f-643">40,870</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-114" decimals="0" name="us-gaap:Goodwill" format="ixt:fixed-zero" id="f-644">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-115" decimals="0" name="us-gaap:Goodwill" format="ixt:num-dot-decimal" scale="0" id="f-645">2,365,286</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-18" decimals="0" name="us-gaap:Goodwill" format="ixt:num-dot-decimal" scale="0" id="f-646">2,406,156</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Impairment</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-47" decimals="0" name="us-gaap:GoodwillImpairmentLoss" format="ixt:fixed-zero" id="f-647">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-53" decimals="0" name="us-gaap:GoodwillImpairmentLoss" format="ixt:fixed-zero" id="f-648">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-116" decimals="0" name="us-gaap:GoodwillImpairmentLoss" format="ixt:fixed-zero" scale="0" id="f-649">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-13" decimals="0" name="us-gaap:GoodwillImpairmentLoss" format="ixt:fixed-zero" scale="0" id="f-650">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Acquisition</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-47" decimals="0" name="us-gaap:GoodwillAcquiredDuringPeriod" format="ixt:fixed-zero" scale="0" id="f-651">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-53" decimals="0" name="us-gaap:GoodwillAcquiredDuringPeriod" format="ixt:num-dot-decimal" id="f-652">337,268</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-116" decimals="0" name="us-gaap:GoodwillAcquiredDuringPeriod" format="ixt:fixed-zero" scale="0" id="f-653">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-13" decimals="0" name="us-gaap:GoodwillAcquiredDuringPeriod" format="ixt:num-dot-decimal" scale="0" id="f-654">337,268</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Balance at December 31, 2023</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-117" decimals="0" name="us-gaap:Goodwill" format="ixt:num-dot-decimal" scale="0" id="f-655">40,870</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-118" decimals="0" name="us-gaap:Goodwill" format="ixt:num-dot-decimal" scale="0" id="f-656">337,268</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-119" decimals="0" name="us-gaap:Goodwill" format="ixt:num-dot-decimal" scale="0" id="f-657">2,365,286</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="0" name="us-gaap:Goodwill" format="ixt:num-dot-decimal" scale="0" id="f-658">2,743,424</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Impairment</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-46" decimals="0" name="us-gaap:GoodwillImpairmentLoss" format="ixt:fixed-zero" id="f-659">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-52" decimals="0" name="us-gaap:GoodwillImpairmentLoss" format="ixt:fixed-zero" id="f-660">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-120" decimals="0" name="us-gaap:GoodwillImpairmentLoss" format="ixt:num-dot-decimal" scale="0" id="f-661">217,295</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" name="us-gaap:GoodwillImpairmentLoss" format="ixt:num-dot-decimal" scale="0" id="f-662">217,295</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Acquisition - adjustment</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-47" decimals="0" name="us-gaap:GoodwillPurchaseAccountingAdjustments" format="ixt:fixed-zero" scale="0" id="f-663">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-53" decimals="0" sign="-" name="us-gaap:GoodwillPurchaseAccountingAdjustments" format="ixt:num-dot-decimal" id="f-664">179,563</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-116" decimals="0" name="us-gaap:GoodwillPurchaseAccountingAdjustments" format="ixt:fixed-zero" scale="0" id="f-665">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-13" decimals="0" sign="-" name="us-gaap:GoodwillPurchaseAccountingAdjustments" format="ixt:num-dot-decimal" scale="0" id="f-666">179,563</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Balance at December 31, 2024</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-121" decimals="0" name="us-gaap:Goodwill" format="ixt:num-dot-decimal" scale="0" id="f-667">40,870</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-122" decimals="0" name="us-gaap:Goodwill" format="ixt:num-dot-decimal" scale="0" id="f-668">157,705</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-123" decimals="0" name="us-gaap:Goodwill" format="ixt:num-dot-decimal" scale="0" id="f-669">2,147,991</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="us-gaap:Goodwill" format="ixt:num-dot-decimal" scale="0" id="f-670">2,346,566</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div></ix:nonNumeric><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We performed a goodwill impairment test of the Energy Production goodwill at December&#160;31, 2024 and determined that the carrying value of the assets exceeded estimated fair value of the of the assets, based on a discounted cash flow analysis, and recorded a goodwill impairment for the year ended December&#160;31, 2024. We performed a goodwill impairment test of the Services goodwill and determined that the estimated fair value of the assets, based on a discounted cash flow analysis, exceeded the carrying value of the assets, therefore <ix:nonFraction unitRef="usd" contextRef="c-52" decimals="0" name="us-gaap:GoodwillImpairmentLoss" format="ixt:fixed-zero" scale="0" id="f-671">no</ix:nonFraction> impairment existed for the year ended December&#160;31, 2024. </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">See Note 6. "Sale of Energy Producing Assets and Goodwill Impairment" and Note 5. "Aegis Contract and Related Asset Acquisition" for further discussion.</span></div></ix:continuation><div id="ic4bfd2faeedf4470adc28b9f3bba3b4c_151"></div><div style="margin-bottom:6pt;margin-top:6pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">                                                                                                                                                                                                                                             Note 11.  <ix:nonNumeric contextRef="c-1" name="us-gaap:DebtDisclosureTextBlock" id="f-672" continuedAt="f-672-1" escape="true">Related Party Notes  </ix:nonNumeric></span></div><ix:continuation id="f-672-1" continuedAt="f-672-2"><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On October 9, 2023, we entered into note subscription agreements with each of John N. Hatsopoulos and Earl R. Lewis, III, each a director and shareholder of the Company, pursuant to which Mr. Hatsopoulos agreed to provide financing to us of up to $<ix:nonFraction unitRef="usd" contextRef="c-124" decimals="0" name="us-gaap:NotesPayable" format="ixt:num-dot-decimal" scale="0" id="f-673">1,000,000</ix:nonFraction>, and Mr. Lewis agreed to provide financing to us of $<ix:nonFraction unitRef="usd" contextRef="c-125" decimals="0" name="us-gaap:NotesPayable" format="ixt:num-dot-decimal" scale="0" id="f-674">500,000</ix:nonFraction>, and potentially, an additional $<ix:nonFraction unitRef="usd" contextRef="c-125" decimals="0" name="us-gaap:NotesPayable" format="ixt:num-dot-decimal" scale="0" id="f-675">500,000</ix:nonFraction> at his discretion. On October 10, 2023, we borrowed $<ix:nonFraction unitRef="usd" contextRef="c-126" decimals="0" name="us-gaap:NotesPayable" format="ixt:num-dot-decimal" scale="0" id="f-676">500,000</ix:nonFraction> from Mr. Hatsopoulos and issued him a <ix:nonNumeric contextRef="c-127" name="tgen:RelatedPartyTransactionPeriod" format="ixt-sec:durwordsen" id="f-677">one-year</ix:nonNumeric> promissory note with interest accruing at <ix:nonFraction unitRef="number" contextRef="c-127" decimals="4" name="us-gaap:RelatedPartyTransactionRate" scale="-2" id="f-678">5.12</ix:nonFraction>% per annum. On July 23, 2024, we borrowed an additional $<ix:nonFraction unitRef="usd" contextRef="c-128" decimals="0" name="us-gaap:NotesPayable" format="ixt:num-dot-decimal" scale="0" id="f-679">500,000</ix:nonFraction> from Mr. Hatsopoulos, and issued a <ix:nonNumeric contextRef="c-129" name="tgen:RelatedPartyTransactionPeriod" format="ixt-sec:durwordsen" id="f-680">one-year</ix:nonNumeric> promissory note with interest accruing at <ix:nonFraction unitRef="number" contextRef="c-130" decimals="4" name="us-gaap:RelatedPartyTransactionRate" scale="-2" id="f-681">5.06</ix:nonFraction>% per annum.  On March 21, 2024, John H. Hatsopoulos amended the terms of the promissory note, dated October 10, 2023, extending the maturity date by <ix:nonNumeric contextRef="c-131" name="tgen:RelatedPartyTransactionPeriod" format="ixt-sec:durwordsen" id="f-682">one year</ix:nonNumeric>, making the maturity date October 10, 2025. On September 18, 2024, we borrowed $<ix:nonFraction unitRef="usd" contextRef="c-132" decimals="0" name="us-gaap:NotesPayable" format="ixt:num-dot-decimal" scale="0" id="f-683">500,000</ix:nonFraction> from Mr. Lewis and issued him a <ix:nonNumeric contextRef="c-133" name="tgen:RelatedPartyTransactionPeriod" format="ixt-sec:durwordsen" id="f-684">one-year</ix:nonNumeric> promissory note with interest accruing at <ix:nonFraction unitRef="number" contextRef="c-133" decimals="4" name="us-gaap:RelatedPartyTransactionRate" scale="-2" id="f-685">4.57</ix:nonFraction>% per annum. </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On January 14, 2025 we agreed to permit Mr. Lewis to either receive repayment of his note in cash or, at his discretion, convert the balance of the promissory note into shares of our common stock.  In the event of such a conversion, the number of shares of we will be required to issue will be determined by dividing the balance due under the promissory note by the average closing price per share of our shares during the <ix:nonNumeric contextRef="c-134" name="tgen:RelatedPartyTransactionPeriod" format="ixt-sec:durwordsen" id="f-686">thirty-day</ix:nonNumeric> period prior to the date of conversion.  </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On February 18, 2025 we amended the promissory notes with Mr. Hatsopoulos to extend the maturity dates for both promissory notes to July 31, 2026.  We also agreed to permit Mr. Hatsopoulos to either receive repayment of his notes in cash, or at his discretion, convert the balance(s) due of one or both of the promissory notes into shares of our common stock. In the event of such a conversion, the number of shares we will be required to issue will be determined by dividing the balance(s) due under the promissory note(s) by the average closing price per share of our shares during the <ix:nonNumeric contextRef="c-135" name="tgen:RelatedPartyTransactionPeriod" format="ixt-sec:durwordsen" id="f-687">thirty-day</ix:nonNumeric> period prior to the date of conversion. </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The loans are required to be repaid in the event of a change of control of the company and upon the occurrence of an event of default under the note, including upon a failure to pay when due the principal and interest when due, or the commencement of voluntary or involuntary bankruptcy or insolvency proceeding.</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">  </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The loans and terms of the loan agreements were unanimously approved by our board of directors.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The loans bear interest on the outstanding principal at the Internal Revenue Service&#8217;s Applicable Federal Rate to be determined at the time we issue a promissory note in connection with a loan drawdown. The notes may be prepaid by us at any time. The principal amount of each loan and accrued interest is subject to mandatory prepayment in the event of a change of control of the registrant. The promissory notes are subject to customary events of default and are transferable provided the conditions to transfer set forth in the promissory notes are satisfied by the noteholder. The proceeds of the loans are expected to be used for general working capital purposes. </span></div></ix:continuation><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="margin-bottom:6pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">F-21</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-bottom:6pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">TECOGEN INC.</span></div><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Notes to Audited Consolidated Financial Statements for December 31, 2024 and 2023</span></div><div style="text-align:center"><span><br/></span></div><div style="text-align:center"><span><br/></span></div></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span><br/></span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"><ix:continuation id="f-672-2">At December&#160;31, 2024 our obligation to Mr. Hatsopoulos under the promissory notes, inclusive of $<ix:nonFraction unitRef="usd" contextRef="c-136" decimals="0" name="us-gaap:InterestPayableCurrentAndNoncurrent" format="ixt:num-dot-decimal" scale="0" id="f-688">42,398</ix:nonFraction> of accrued and unpaid interest, was $<ix:nonFraction unitRef="usd" contextRef="c-136" decimals="0" name="us-gaap:NotesPayable" format="ixt:num-dot-decimal" scale="0" id="f-689">1,042,398</ix:nonFraction>. At December&#160;31, 2024 our obligation to Mr. Lewis under the promissory note, inclusive of $<ix:nonFraction unitRef="usd" contextRef="c-137" decimals="0" name="us-gaap:InterestPayableCurrentAndNoncurrent" format="ixt:num-dot-decimal" scale="0" id="f-690">6,474</ix:nonFraction> of accrued and unpaid interest, was $<ix:nonFraction unitRef="usd" contextRef="c-137" decimals="0" name="us-gaap:NotesPayable" format="ixt:num-dot-decimal" scale="0" id="f-691">506,474</ix:nonFraction>.</ix:continuation> </span></div><div id="ic4bfd2faeedf4470adc28b9f3bba3b4c_154"></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Note 12.  <ix:nonNumeric contextRef="c-1" name="us-gaap:CommitmentsContingenciesAndGuaranteesTextBlock" id="f-692" continuedAt="f-692-1" escape="true">Commitments and Contingencies</ix:nonNumeric></span></div><ix:continuation id="f-692-1"><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Operating Lease Obligations</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We lease office space and warehouse facilities under various lease agreements which expire through January 2031. Total rent expense for the years ended December&#160;31, 2024 and 2023 amounted to $<ix:nonFraction unitRef="usd" contextRef="c-138" decimals="0" name="us-gaap:OperatingLeaseCost" format="ixt:num-dot-decimal" scale="0" id="f-693">796,400</ix:nonFraction> and $<ix:nonFraction unitRef="usd" contextRef="c-139" decimals="0" name="us-gaap:OperatingLeaseCost" format="ixt:num-dot-decimal" scale="0" id="f-694">812,815</ix:nonFraction>, respectively. See Note 14. "Leases" for further discussion.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Finance Lease Obligations</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We lease motor vehicles under a master vehicle lease agreement, effective December 19, 2023, which expire through December 2028. See Note 14. "Leases" for further discussion.  </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Legal Matters</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On November 23, 2022, we were served with a suit filed against us on August 24, 2022 in the Ontario Superior Court of Justice by The Corporation of the Town of Milton, Milton Energy Generation Solutions Inc. and Milton Hydro Distribution Inc (the "Plaintiffs"), all of whom are municipal corporations incorporated in the Province of Ontario. The plaintiffs sued for damages in the amount of CDN $<ix:nonFraction unitRef="cad" contextRef="c-140" decimals="0" name="us-gaap:LossContingencyDamagesSoughtValue" format="ixt:num-dot-decimal" scale="0" id="f-695">1,000,000</ix:nonFraction>, prejudgment and post-judgment interest, and legal fees, alleging breach of contract, breach of warranty, negligent misrepresentations and nuisance. Plaintiffs allege that on or about July 10, 2022, a Tecogen cogenerator installed by us at the plaintiffs' facility caught fire, causing damage to the cogenerator and the plaintiff's facility. We filed a response denying liability and are represented by Canadian counsel. For the year ended December 31, 2022, we reserved $<ix:nonFraction unitRef="usd" contextRef="c-141" decimals="0" name="us-gaap:LitigationReserve" format="ixt:num-dot-decimal" scale="0" id="f-696">150,000</ix:nonFraction> for anticipated damages which may not be covered by our insurance and continued to maintain the reserve at December&#160;31, 2024. On January 13, 2025, Tecogen and our insurers entered into a Settlement Agreement and Full and Final Release from any and all claims, obligations and liabilities, arising from the July 10, 2022 fire with the plaintiffs in the amount of CDN $<ix:nonFraction unitRef="cad" contextRef="c-142" decimals="0" name="us-gaap:LossContingencyDamagesAwardedValue" format="ixt:num-dot-decimal" scale="0" id="f-697">400,000</ix:nonFraction>, of which we were responsible for CDN $<ix:nonFraction unitRef="cad" contextRef="c-143" decimals="0" name="us-gaap:LossContingencyDamagesPaidValue" format="ixt:num-dot-decimal" scale="0" id="f-698">100,000</ix:nonFraction>. On February 7, 2025 we remitted CDN $<ix:nonFraction unitRef="cad" contextRef="c-143" decimals="0" name="us-gaap:LossContingencyDamagesPaidValue" format="ixt:num-dot-decimal" scale="0" id="f-699">100,000</ix:nonFraction>, or $<ix:nonFraction unitRef="usd" contextRef="c-143" decimals="0" name="us-gaap:LossContingencyDamagesPaidValue" format="ixt:num-dot-decimal" scale="0" id="f-700">70,994</ix:nonFraction>, representing payment in full of our liability with respect to this matter.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Guarantees</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In connection with the sale of energy producing assets, we made certain guarantees to the purchaser as discussed in Note 5. "Sale of Energy Producing Assets and Goodwill Impairment." Based upon an analysis of these energy producing assets expected future performance, as of December&#160;31, 2024 we do not expect to make any material payments under the guarantee. </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Change in Control Severance Benefit Plan</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On July 9, 2020, our compensation committee of the board of directors adopted the Tecogen Inc. Change in Control Severance Benefit Plan ("Plan"). The Plan provides for up to <ix:nonNumeric contextRef="c-144" name="tgen:PeriodOfSeveranceBenefitsForKeyManagementEmployeesUnderThePlan" format="ixt-sec:durmonth" id="f-701">12</ix:nonNumeric> months of severance benefits for certain of our key management employees who are selected as plan participants by the plan administrator and who have executed a Change in Control Severance Benefit Plan Participation Notice. On July 9, 2020, Robert A. Panora, our President and Chief Operating Officer, and John K. Whiting, IV, our General Counsel and Secretary, were each designated as participants in the Plan.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Under the Plan, upon the occurrence of certain termination events following a change in control of the Company, the executive participants would receive cash severance payments equal to <ix:nonNumeric contextRef="c-144" name="tgen:PeriodOfSeveranceBenefitsForKeyManagementEmployeesUnderThePlan" format="ixt-sec:durmonth" id="f-702">12</ix:nonNumeric> months&#8217; salary and bonus payments, continuation of certain health benefits, the acceleration of bonus awards, and immediate vesting of outstanding unvested options (including performance options) to acquire our common stock. The severance payments are required to be paid in a single lump sum. The Plan has a term of <ix:nonNumeric contextRef="c-144" name="tgen:ChangeInControlSeveranceBenefitPlanPeriodInForce" format="ixt-sec:durwordsen" id="f-703">three years</ix:nonNumeric> and will automatically extend for successive additional <ix:nonNumeric contextRef="c-144" name="tgen:ChangeInControlSeveranceBenefitPlanPeriodInForceExtension" format="ixt-sec:durwordsen" id="f-704">one-year</ix:nonNumeric> terms unless we provide written notice at least <ix:nonNumeric contextRef="c-144" name="tgen:ChangeInControlSeveranceBenefitPlanNoticePeriodForCancellation" format="ixt-sec:durwordsen" id="f-705">six months</ix:nonNumeric> in advance of a then current term. </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">An executive will be entitled to severance under the Plan only if there has been a &#8220;Change in Control&#8221; of the Company and the termination of employment or service occurs during the period that is <ix:nonNumeric contextRef="c-144" name="tgen:ChangeInControlSeveranceBenefitPlanThresholdPeriodForTerminationPriorToChangeInControl" format="ixt-sec:durwordsen" id="f-706">three months</ix:nonNumeric> prior to and <ix:nonNumeric contextRef="c-144" name="tgen:ChangeInControlSeveranceBenefitPlanThresholdPeriodForTerminationAfterToChangeInControl" format="ixt-sec:durmonth" id="f-707">18</ix:nonNumeric> months following a change in control of the Company, and the termination of participant's employment or service with the Company without "Cause," or by participant for &#8220;Good Reason&#8221; as those terms are defined in the Plan. In order to be eligible to receive severance benefits under the Plan, an executive must comply with the terms of the Plan, including the release of claims in favor of the Company and certain confidentiality, non-compete, non-solicitation, and non-disparagement covenants during and following termination of employment. The Plan will be administered by the compensation committee of the board of directors (or by the full board of directors or such other committee as the board may designate).</span></div></ix:continuation><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span><br/></span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="margin-bottom:6pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">F-22</span></div></div></div><div id="ic4bfd2faeedf4470adc28b9f3bba3b4c_157"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-bottom:6pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">TECOGEN INC.</span></div><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Notes to Audited Consolidated Financial Statements for December 31, 2024 and 2023</span></div><div style="text-align:center"><span><br/></span></div><div style="text-align:center"><span><br/></span></div></div><div style="margin-bottom:6pt;margin-top:6pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Note 13.  <ix:nonNumeric contextRef="c-1" name="us-gaap:ProductWarrantyDisclosureTextBlock" id="f-708" continuedAt="f-708-1" escape="true">Product Warranty</ix:nonNumeric></span></div><ix:continuation id="f-708-1"><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We reserve an estimate of our exposure to warranty claims based on both current and historical product sales data and warranty costs incurred.  The majority of our products are sold with a <ix:nonNumeric contextRef="c-1" name="tgen:ProductWarrantyPeriod" format="ixt-sec:durwordsen" id="f-709">one-year</ix:nonNumeric> warranty.  We assess the adequacy of our recorded warranty liability periodically and adjust the reserve as necessary.  The warranty liability is included in accrued expenses on the accompanying consolidated balance sheets.</span></div><ix:nonNumeric contextRef="c-1" name="us-gaap:ScheduleOfProductWarrantyLiabilityTableTextBlock" id="f-710" escape="true"><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Changes in our warranty reserve were as follows:</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:center;text-indent:36pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:52.339%"><tr><td style="width:1.0%"/><td style="width:74.598%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:23.202%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Warranty reserve, December 31, 2022</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-18" decimals="0" name="us-gaap:StandardProductWarrantyAccrual" format="ixt:num-dot-decimal" scale="0" id="f-711">137,800</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Warranty provision for units sold</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-13" decimals="0" name="us-gaap:StandardProductWarrantyAccrualWarrantiesIssued" format="ixt:num-dot-decimal" scale="0" id="f-712">286,391</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Costs of warranty incurred</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-13" decimals="0" name="us-gaap:StandardProductWarrantyAccrualPayments" format="ixt:num-dot-decimal" scale="0" id="f-713">282,191</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Warranty reserve, December 31, 2023</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="0" name="us-gaap:StandardProductWarrantyAccrual" format="ixt:num-dot-decimal" scale="0" id="f-714">142,000</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Warranty provision for units sold</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" name="us-gaap:StandardProductWarrantyAccrualWarrantiesIssued" format="ixt:num-dot-decimal" scale="0" id="f-715">257,898</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Costs of warranty incurred</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" name="us-gaap:StandardProductWarrantyAccrualPayments" format="ixt:num-dot-decimal" scale="0" id="f-716">276,898</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Warranty reserve, December 31, 2024</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="us-gaap:StandardProductWarrantyAccrual" format="ixt:num-dot-decimal" scale="0" id="f-717">123,000</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div></ix:nonNumeric></ix:continuation><div id="ic4bfd2faeedf4470adc28b9f3bba3b4c_160"></div><div style="margin-bottom:6pt;margin-top:6pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Note 14.  <ix:nonNumeric contextRef="c-1" name="us-gaap:LesseeOperatingLeasesTextBlock" id="f-718" continuedAt="f-718-1" escape="true">Leases</ix:nonNumeric></span></div><ix:continuation id="f-718-1" continuedAt="f-718-2"><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our leases principally consist of operating leases related to our corporate office, field offices, and our research, manufacturing, and storage facilities. Effective December 19, 2023, we entered into a master finance lease agreement for motor vehicles.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">At inception, we determine if an arrangement constitutes a lease and whether that lease meets the classification criteria of a finance or operating lease. Some of our lease agreements contain lease components (e.g. minimum rent payments) and non-lease components (e.g. maintenance, labor charges, etc.). We account for each component separately based on the estimated standalone price of each component. </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Operating Leases</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Operating leases are included in Right-of-use assets, Lease obligations, current and Long-term liabilities - Lease obligations, net of current portion, on the consolidated balance sheets. These assets and liabilities are recognized at the commencement date based on the present value of remaining lease payments over the lease term and using an incremental borrowing rate consistent with the lease terms or implicit rates, when readily determinable. For those leases where it is reasonably certain at the commencement date that we will exercise the option to extend the lease, then the lease term will include the lease extension term. Short-term operating leases, which have an initial term of 12 months or less, are not recorded on the balance sheet. </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On March 31, 2023, we entered into <ix:nonFraction unitRef="leaseagreement" contextRef="c-145" decimals="0" name="tgen:LesseeOperatingLeaseNumberOfLeaseAgreements" format="ixt-sec:numwordsen" scale="0" id="f-719">two</ix:nonFraction> lease agreements for <ix:nonFraction unitRef="building" contextRef="c-145" decimals="0" name="tgen:LesseeOperatingLeaseNumberOfBuildings" format="ixt-sec:numwordsen" scale="0" id="f-720">two</ix:nonFraction> adjacent buildings, located in North Billerica, Massachusetts, containing approximately <ix:nonFraction unitRef="sqft" contextRef="c-145" decimals="INF" name="tgen:LesseeOperatingLeaseSquareFeet" format="ixt:num-dot-decimal" scale="0" id="f-721">26,412</ix:nonFraction> square feet of manufacturing, storage and office space to serve as our headquarters and manufacturing facilities. The lease agreements provide for initial lease terms of five (<ix:nonNumeric contextRef="c-145" name="us-gaap:LesseeOperatingLeaseRemainingLeaseTerm" format="ixt-sec:duryear" id="f-722">5</ix:nonNumeric>) years with <ix:nonFraction unitRef="option" contextRef="c-145" decimals="0" name="tgen:LesseeOperatingLeaseOptionToExtendNumberOfOptions" format="ixt-sec:numwordsen" scale="0" id="f-723">two</ix:nonFraction> successive options to renew for additional terms of five (<ix:nonNumeric contextRef="c-145" name="us-gaap:LesseeOperatingLeaseRemainingLeaseTerm" format="ixt-sec:duryear" id="f-724">5</ix:nonNumeric>) years. Both leases commenced on January 1, 2024 and require payment of the base rent, real estate taxes, common maintenance expenses and aggregate deposits of $<ix:nonFraction unitRef="usd" contextRef="c-146" decimals="0" name="us-gaap:LeaseCost" format="ixt:num-dot-decimal" scale="0" id="f-725">38,200</ix:nonFraction>. Our costs for initial improvements required to the leased premises is estimated to range between $<ix:nonFraction unitRef="usd" contextRef="c-147" decimals="0" name="tgen:ConstructionInProgressExpenditures" format="ixt:num-dot-decimal" scale="0" id="f-726">900,000</ix:nonFraction> and $<ix:nonFraction unitRef="usd" contextRef="c-148" decimals="0" name="tgen:ConstructionInProgressExpenditures" format="ixt:num-dot-decimal" scale="0" id="f-727">1,000,000</ix:nonFraction>. The estimated straight-line monthly rent expense for the initial term of the lease is approximately $<ix:nonFraction unitRef="usd" contextRef="c-146" decimals="0" name="us-gaap:OperatingLeaseExpense" format="ixt:num-dot-decimal" scale="0" id="f-728">26,962</ix:nonFraction> per month. In accordance with ASC 842-20-30-1, we recorded the lease liability and right-of-use asset using the discount rate for the lease upon the lease commencement date, January 1, 2024. </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On January 1, 2024 we extended our lease for the <ix:nonFraction unitRef="sqft" contextRef="c-149" decimals="0" name="tgen:LesseeOperatingLeaseSquareFeet" format="ixt:num-dot-decimal" scale="0" id="f-729">2,800</ix:nonFraction> square foot Valley Stream, NY service center for an additional three (<ix:nonNumeric contextRef="c-149" name="us-gaap:LesseeOperatingLeaseRenewalTerm" format="ixt-sec:duryear" id="f-730">3</ix:nonNumeric>) years through December 31, 2026, with an option to renew for an additional term of three (<ix:nonNumeric contextRef="c-146" name="tgen:LesseeOperatingLeaseOptionToExtendPeriod" format="ixt-sec:duryear" id="f-731">3</ix:nonNumeric>) years. The straight-line base monthly rent for the extension is $<ix:nonFraction unitRef="usd" contextRef="c-149" decimals="0" name="tgen:LesseeOperatingLeaseOptionToExtendMonthlyRent" format="ixt:num-dot-decimal" scale="0" id="f-732">4,560</ix:nonFraction> per month. On February 1, 2024 we entered into a lease agreement for <ix:nonFraction unitRef="sqft" contextRef="c-150" decimals="0" name="tgen:LesseeOperatingLeaseSquareFeet" format="ixt:num-dot-decimal" scale="0" id="f-733">2,063</ix:nonFraction> square feet of office and storage space in East Syracuse, New York for an initial lease term of three (<ix:nonNumeric contextRef="c-150" name="us-gaap:LesseeOperatingLeaseTermOfContract" format="ixt-sec:duryear" id="f-734">3</ix:nonNumeric>) years, expiring on January 31, 2027, with an option for an additional lease term of two (<ix:nonNumeric contextRef="c-151" name="tgen:LesseeOperatingLeaseOptionToExtendPeriod" format="ixt-sec:duryear" id="f-735">2</ix:nonNumeric>) years. The straight-line base monthly rent for the initial lease term is $<ix:nonFraction unitRef="usd" contextRef="c-150" decimals="0" name="tgen:LesseeOperatingLeaseOptionToExtendMonthlyRent" format="ixt:num-dot-decimal" scale="0" id="f-736">1,891</ix:nonFraction> per month. On June 17, 2024, we extended our lease for <ix:nonFraction unitRef="sqft" contextRef="c-152" decimals="0" name="tgen:LesseeOperatingLeaseSquareFeet" format="ixt:num-dot-decimal" scale="0" id="f-737">1,751</ix:nonFraction> square foot Hayward, CA service center for an additional three (<ix:nonNumeric contextRef="c-152" name="us-gaap:LesseeOperatingLeaseRenewalTerm" format="ixt-sec:duryear" id="f-738">3</ix:nonNumeric>) years through July 31, 2027. The straight-line monthly rent for the extension is $<ix:nonFraction unitRef="usd" contextRef="c-152" decimals="0" name="tgen:LesseeOperatingLeaseOptionToExtendMonthlyRent" format="ixt:num-dot-decimal" scale="0" id="f-739">3,662</ix:nonFraction> per month. On January 15, 2025 we entered into a lease agreement for <ix:nonFraction unitRef="sqft" contextRef="c-153" decimals="0" name="tgen:LesseeOperatingLeaseSquareFeet" format="ixt:num-dot-decimal" scale="0" id="f-740">2,969</ix:nonFraction> square feet of office and storage space in Easton, MA for an initial term of five (<ix:nonNumeric contextRef="c-153" name="us-gaap:LesseeOperatingLeaseTermOfContract" format="ixt-sec:duryear" id="f-741">5</ix:nonNumeric>) years, expiring on January 31, 2030, with an option for an additional lease term of five (<ix:nonNumeric contextRef="c-154" name="tgen:LesseeOperatingLeaseOptionToExtendPeriod" format="ixt-sec:duryear" id="f-742">5</ix:nonNumeric>) years. The straight-line base monthly rent for the initial lease term is $<ix:nonFraction unitRef="usd" contextRef="c-153" decimals="0" name="tgen:LesseeOperatingLeaseOptionToExtendMonthlyRent" format="ixt:num-dot-decimal" scale="0" id="f-743">2,324</ix:nonFraction> per month.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Lease expense for operating leases, which principally consists of fixed payments for base rent, is recognized on a straight-line basis over the lease term. Operating lease expense for the years ended December&#160;31, 2024 and 2023 was $<ix:nonFraction unitRef="usd" contextRef="c-138" decimals="0" name="us-gaap:OperatingLeaseCost" format="ixt:num-dot-decimal" scale="0" id="f-744">796,400</ix:nonFraction> and $<ix:nonFraction unitRef="usd" contextRef="c-139" decimals="0" name="us-gaap:OperatingLeaseCost" format="ixt:num-dot-decimal" scale="0" id="f-745">812,815</ix:nonFraction>,  respectively. </span></div></ix:continuation><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="margin-bottom:6pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">F-23</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-bottom:6pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">TECOGEN INC.</span></div><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Notes to Audited Consolidated Financial Statements for December 31, 2024 and 2023</span></div><div style="text-align:center"><span><br/></span></div><div style="text-align:center"><span><br/></span></div></div><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span><br/></span></div><ix:continuation id="f-718-2" continuedAt="f-718-3"><ix:nonNumeric contextRef="c-1" name="us-gaap:LeaseCostTableTextBlock" id="f-746" continuedAt="f-746-1" escape="true"><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Supplemental information related to operating leases for the years ended December&#160;31, 2024 and 2023 was as follows:</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:center;text-indent:36pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:486.00pt"><tr><td style="width:1.0pt"/><td style="width:298.00pt"/><td style="width:1.0pt"/><td style="width:1.0pt"/><td style="width:1.00pt"/><td style="width:1.0pt"/><td style="width:1.0pt"/><td style="width:88.00pt"/><td style="width:1.0pt"/><td style="width:1.0pt"/><td style="width:1.00pt"/><td style="width:1.0pt"/><td style="width:1.0pt"/><td style="width:88.00pt"/><td style="width:1.0pt"/></tr><tr style="height:15pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2024</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2023</span></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Cash paid for amounts included in the measurement of operating lease liabilities</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" name="us-gaap:OperatingLeasePayments" format="ixt:num-dot-decimal" scale="0" id="f-747">727,418</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-13" decimals="0" name="us-gaap:OperatingLeasePayments" format="ixt:num-dot-decimal" id="f-748">743,849</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Right-of-use assets obtained in exchange for operating lease liabilities</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" name="us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability" format="ixt:num-dot-decimal" scale="0" id="f-749">1,650,994</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-13" decimals="0" name="us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability" format="ixt:num-dot-decimal" id="f-750">148,093</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Weighted-average remaining lease term - operating leases</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="c-5" name="us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1" format="ixt-sec:duryear" id="f-751">4.1</ix:nonNumeric> Years</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="c-6" name="us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1" format="ixt-sec:duryear" id="f-752">4.6</ix:nonNumeric> Years</span></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Weighted-average discount rate - operating leases</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-5" decimals="3" name="us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent" scale="-2" id="f-753">7.5</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-6" decimals="3" name="us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent" scale="-2" id="f-754">6.4</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr></table></div></ix:nonNumeric><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Finance Leases</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Finance leases are included in Right-of-use assets, Lease obligations, current and Long-term liabilities - Lease obligations, net of current portion, on the condensed consolidated balance sheets. These assets and liabilities are recognized at the commencement date based on the present value of remaining lease payments over the lease term and using an incremental borrowing rate consistent with the lease terms or implicit rates, when readily determinable. For those leases where it is reasonably certain at the commencement date that we will exercise the option to extend the lease, then the lease term will include the lease extension term. Short-term operating leases, which have an initial term of 12 months or less, are not recorded on the balance sheet. </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Lease expense for finance leases, consisting of fixed payments for base rent and initial costs for the year ended December&#160;31, 2024 and 2023 was $<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" name="tgen:FinanceLeaseExpense" format="ixt:num-dot-decimal" scale="0" id="f-755">119,690</ix:nonFraction> and $<ix:nonFraction unitRef="usd" contextRef="c-13" decimals="0" name="tgen:FinanceLeaseExpense" format="ixt:num-dot-decimal" scale="0" id="f-756">2,338</ix:nonFraction>, respectively. Depreciation and amortization expense on right-of-use finance lease assets for the years ended December&#160;31, 2024 and 2023 was $<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" name="us-gaap:FinanceLeaseRightOfUseAssetAmortization" format="ixt:num-dot-decimal" scale="0" id="f-757">61,572</ix:nonFraction> and $<ix:nonFraction unitRef="usd" contextRef="c-13" decimals="0" name="us-gaap:FinanceLeaseRightOfUseAssetAmortization" scale="0" id="f-758">0</ix:nonFraction>, respectively.</span></div><ix:continuation id="f-746-1"><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Supplemental information for finance leases for the year ended December&#160;31, 2024 and 2023 was as follows:</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:center;text-indent:36pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:94.736%"><tr><td style="width:1.0%"/><td style="width:60.628%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.417%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:17.418%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.417%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:17.420%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2024</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2023</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Cash paid for amounts included in the measurement of finance lease liabilities</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" name="tgen:FinanceLeasePrincipalPaymentsAndOtherCosts" format="ixt:num-dot-decimal" scale="0" id="f-759">88,845</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-13" decimals="0" name="tgen:FinanceLeasePrincipalPaymentsAndOtherCosts" format="ixt:fixed-zero" scale="0" id="f-760">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="6" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Right-of-use assets obtained in exchange for finance lease liabilities</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" name="us-gaap:RightOfUseAssetObtainedInExchangeForFinanceLeaseLiability" format="ixt:num-dot-decimal" scale="0" id="f-761">295,085</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-13" decimals="0" name="us-gaap:RightOfUseAssetObtainedInExchangeForFinanceLeaseLiability" format="ixt:num-dot-decimal" scale="0" id="f-762">200,187</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="6" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Weighted-average remaining lease term - finance leases</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="c-5" name="us-gaap:FinanceLeaseWeightedAverageRemainingLeaseTerm1" format="ixt-sec:duryear" id="f-763">4.3</ix:nonNumeric> years</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="c-6" name="us-gaap:FinanceLeaseWeightedAverageRemainingLeaseTerm1" format="ixt-sec:duryear" id="f-764">5.0</ix:nonNumeric> years</span></td></tr><tr><td colspan="6" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Weighted-average discount rate - finance leases</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-5" decimals="4" name="us-gaap:FinanceLeaseWeightedAverageDiscountRatePercent" scale="-2" id="f-765">10.0</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-6" decimals="4" name="us-gaap:FinanceLeaseWeightedAverageDiscountRatePercent" scale="-2" id="f-766">10.4</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr></table></div></ix:continuation><ix:nonNumeric contextRef="c-1" name="tgen:AssetsAndLiabilitiesLesseeTableTextBlock" id="f-767" escape="true"><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Supplemental balance sheet information related to operating leases for the years ended December&#160;31, 2024 and 2023 was as follows:</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:center;text-indent:36pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:94.736%"><tr><td style="width:1.0%"/><td style="width:60.628%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.417%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:17.418%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.417%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:17.420%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2024</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2023</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Operating leases</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Right-of-use assets</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="us-gaap:OperatingLeaseRightOfUseAsset" format="ixt:num-dot-decimal" id="f-768">1,730,358</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="0" name="us-gaap:OperatingLeaseRightOfUseAsset" format="ixt:num-dot-decimal" id="f-769">743,096</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Operating lease liability, current</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="us-gaap:OperatingLeaseLiabilityCurrent" format="ixt:num-dot-decimal" id="f-770">430,382</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="0" name="us-gaap:OperatingLeaseLiabilityCurrent" format="ixt:num-dot-decimal" id="f-771">248,933</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Operating lease liability, long-term</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="us-gaap:OperatingLeaseLiabilityNoncurrent" format="ixt:num-dot-decimal" id="f-772">1,341,789</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="0" name="us-gaap:OperatingLeaseLiabilityNoncurrent" format="ixt:num-dot-decimal" id="f-773">523,660</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total operating lease liability</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="us-gaap:OperatingLeaseLiability" format="ixt:num-dot-decimal" id="f-774">1,772,171</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="0" name="us-gaap:OperatingLeaseLiability" format="ixt:num-dot-decimal" id="f-775">772,593</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div><div style="margin-bottom:6pt;margin-top:6pt;padding-left:13.5pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Supplemental balance sheet information related to finance leases for the year ended December&#160;31, 2024 and 2023 is as follows:</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:94.736%"><tr><td style="width:1.0%"/><td style="width:60.628%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.417%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:17.418%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.417%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:17.420%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2024</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2023</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Finance leases</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Right-of-use assets - motor vehicles</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-155" decimals="0" name="us-gaap:FinanceLeaseRightOfUseAsset" format="ixt:num-dot-decimal" id="f-776">425,563</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-156" decimals="0" name="us-gaap:FinanceLeaseRightOfUseAsset" format="ixt:num-dot-decimal" id="f-777">200,187</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Right-of-use asset - boiler</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-157" decimals="0" name="us-gaap:FinanceLeaseRightOfUseAsset" format="ixt:num-dot-decimal" id="f-778">26,827</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-158" decimals="0" name="us-gaap:FinanceLeaseRightOfUseAsset" format="ixt:fixed-zero" id="f-779">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt 0 7pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="us-gaap:FinanceLeaseRightOfUseAsset" format="ixt:num-dot-decimal" id="f-780">452,390</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="0" name="us-gaap:FinanceLeaseRightOfUseAsset" format="ixt:num-dot-decimal" id="f-781">200,187</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;padding:0 1pt 0 7pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Finance lease liability, current</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="us-gaap:FinanceLeaseLiabilityCurrent" format="ixt:num-dot-decimal" id="f-782">85,646</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="0" name="us-gaap:FinanceLeaseLiabilityCurrent" format="ixt:num-dot-decimal" id="f-783">40,540</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Finance lease liability, long-term</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="us-gaap:FinanceLeaseLiabilityNoncurrent" format="ixt:num-dot-decimal" id="f-784">325,235</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="0" name="us-gaap:FinanceLeaseLiabilityNoncurrent" format="ixt:num-dot-decimal" id="f-785">159,647</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total finance lease liability</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="us-gaap:FinanceLeaseLiability" format="ixt:num-dot-decimal" id="f-786">410,881</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="0" name="us-gaap:FinanceLeaseLiability" format="ixt:num-dot-decimal" id="f-787">200,187</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div></ix:nonNumeric></ix:continuation><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span><br/></span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="margin-bottom:6pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">F-24</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-bottom:6pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">TECOGEN INC.</span></div><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Notes to Audited Consolidated Financial Statements for December 31, 2024 and 2023</span></div><div style="text-align:center"><span><br/></span></div><div style="text-align:center"><span><br/></span></div></div><ix:nonNumeric contextRef="c-1" name="us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock" id="f-788" escape="true"><ix:continuation id="f-718-3"><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Future minimum lease commitments under non-cancellable operating and finance leases as of December&#160;31, 2024 were as follows:</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:center;text-indent:36pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:429.00pt"><tr><td style="width:1.0pt"/><td style="width:148.00pt"/><td style="width:1.0pt"/><td style="width:1.0pt"/><td style="width:1.00pt"/><td style="width:1.0pt"/><td style="width:1.0pt"/><td style="width:88.00pt"/><td style="width:1.0pt"/><td style="width:1.0pt"/><td style="width:1.00pt"/><td style="width:1.0pt"/><td style="width:1.0pt"/><td style="width:88.00pt"/><td style="width:1.0pt"/><td style="width:1.0pt"/><td style="width:1.00pt"/><td style="width:1.0pt"/><td style="width:1.0pt"/><td style="width:88.00pt"/><td style="width:1.0pt"/></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Operating Leases</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Finance Leases</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Total</span></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2025</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" format="ixt:num-dot-decimal" scale="0" id="f-789">542,066</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="us-gaap:FinanceLeaseLiabilityPaymentsDueNextTwelveMonths" format="ixt:num-dot-decimal" id="f-790">122,460</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="tgen:OperatingAndFinanceLeaseLiabilityToBePaidYearOne" format="ixt:num-dot-decimal" id="f-791">664,526</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2026</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" format="ixt:num-dot-decimal" scale="0" id="f-792">538,297</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="us-gaap:FinanceLeaseLiabilityPaymentsDueYearTwo" format="ixt:num-dot-decimal" id="f-793">113,845</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="tgen:OperatingAndFinanceLeaseLiabilityToBePaidYearTwo" format="ixt:num-dot-decimal" id="f-794">652,142</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2027</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearThree" format="ixt:num-dot-decimal" scale="0" id="f-795">442,471</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="us-gaap:FinanceLeaseLiabilityPaymentsDueYearThree" format="ixt:num-dot-decimal" id="f-796">113,845</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="tgen:OperatingAndFinanceLeaseLiabilityToBePaidYearThree" format="ixt:num-dot-decimal" id="f-797">556,316</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2028</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFour" format="ixt:num-dot-decimal" scale="0" id="f-798">395,827</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="us-gaap:FinanceLeaseLiabilityPaymentsDueYearFour" format="ixt:num-dot-decimal" id="f-799">113,845</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="tgen:OperatingAndFinanceLeaseLiabilityToBePaidYearFour" format="ixt:num-dot-decimal" id="f-800">509,672</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2029</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFive" format="ixt:num-dot-decimal" scale="0" id="f-801">55,435</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="us-gaap:FinanceLeaseLiabilityPaymentsDueYearFive" format="ixt:num-dot-decimal" id="f-802">43,669</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="tgen:OperatingAndFinanceLeaseLiabilityToBePaidYearFive" format="ixt:num-dot-decimal" id="f-803">99,104</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Thereafter</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" format="ixt:num-dot-decimal" scale="0" id="f-804">61,569</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="us-gaap:FinanceLeaseLiabilityPaymentsDueAfterYearFive" format="ixt:fixed-zero" id="f-805">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="tgen:OperatingAndFinanceLeaseLiabilityToBePaidAfterYearFive" format="ixt:num-dot-decimal" id="f-806">61,569</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total lease payments</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue" format="ixt:num-dot-decimal" scale="0" id="f-807">2,035,665</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="us-gaap:FinanceLeaseLiabilityPaymentsDue" format="ixt:num-dot-decimal" scale="0" id="f-808">507,664</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="tgen:OperatingAndFinanceLeaseLiabilityToBePaid" format="ixt:num-dot-decimal" scale="0" id="f-809">2,543,329</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Less: imputed interest</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="us-gaap:LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" format="ixt:num-dot-decimal" scale="0" id="f-810">263,494</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="us-gaap:FinanceLeaseLiabilityUndiscountedExcessAmount" format="ixt:num-dot-decimal" id="f-811">96,783</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="tgen:OperatingAndFinanceLeaseLiabilityUndiscountedExcessAmount" format="ixt:num-dot-decimal" id="f-812">360,277</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="us-gaap:OperatingLeaseLiability" format="ixt:num-dot-decimal" scale="0" id="f-813">1,772,171</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="us-gaap:FinanceLeaseLiability" format="ixt:num-dot-decimal" scale="0" id="f-814">410,881</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="tgen:OperatingAndFinanceLeaseLiability" format="ixt:num-dot-decimal" scale="0" id="f-815">2,183,052</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div></ix:continuation></ix:nonNumeric><div id="ic4bfd2faeedf4470adc28b9f3bba3b4c_163"></div><div style="margin-bottom:6pt;margin-top:6pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Note 15.  <ix:nonNumeric contextRef="c-1" name="us-gaap:ShareholdersEquityAndShareBasedPaymentsTextBlock" id="f-816" continuedAt="f-816-1" escape="true">Stockholders&#8217; Equity</ix:nonNumeric></span></div><ix:continuation id="f-816-1" continuedAt="f-816-2"><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Common Stock</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The holders of our Common Stock have the right to vote their interest on a per share basis.  At December&#160;31, 2024 and 2023, there were <ix:nonFraction unitRef="shares" contextRef="c-5" decimals="0" name="us-gaap:CommonStockSharesOutstanding" format="ixt:num-dot-decimal" scale="0" id="f-817">24,950,261</ix:nonFraction> and <ix:nonFraction unitRef="shares" contextRef="c-6" decimals="0" name="us-gaap:CommonStockSharesOutstanding" format="ixt:num-dot-decimal" scale="0" id="f-818">24,850,261</ix:nonFraction> shares, respectively, of our Common Stock outstanding.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Preferred Stock</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On February 13, 2013, we authorized <ix:nonFraction unitRef="shares" contextRef="c-159" decimals="INF" name="us-gaap:PreferredStockSharesAuthorized" scale="6" id="f-819">10</ix:nonFraction> million shares of preferred stock.  As of December&#160;31, 2024, <ix:nonFraction unitRef="shares" contextRef="c-5" decimals="0" name="us-gaap:PreferredStockSharesOutstanding" format="ixt:fixed-zero" scale="0" id="f-820"><ix:nonFraction unitRef="shares" contextRef="c-5" decimals="0" name="us-gaap:PreferredStockSharesIssued" format="ixt:fixed-zero" scale="0" id="f-821">no</ix:nonFraction></ix:nonFraction> preferred shares were issued or outstanding.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Stock-Based Compensation</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We adopted the 2006 Stock Option and Incentive Plan (as amended, the &#8220;2006 Plan&#8221;), under which the board of directors may grant incentive or non-qualified stock options and stock grants to key employees, directors, advisors and our consultants. The 2006 Plan was amended at various dates by the Board of Directors to increase the reserved shares of common stock issuable under the 2006 Plan to <ix:nonFraction unitRef="shares" contextRef="c-160" decimals="INF" name="us-gaap:CommonStockCapitalSharesReservedForFutureIssuance" format="ixt:num-dot-decimal" scale="0" id="f-822">3,838,750</ix:nonFraction> as of December&#160;31, 2024, and in June 2017 stockholders approved an amendment to extend the termination date of the 2006 Plan to January 1, 2026 and to ratify all of our option grants issued after January 1, 2016 (the &#8220;Amended Plan&#8221;). </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Stock options vest based upon the terms within the individual option grants, with an acceleration of the unvested portion of such options upon a change in control event, as defined in the 2006 Plan.  The options are not transferable except by will or domestic relations order.  The option price per share under the Amended Plan cannot be less than the fair market value of the underlying shares on the date of the grant.  The number of shares remaining available for future issuance under the Amended Plan as of December&#160;31, 2024 and 2023 was <ix:nonFraction unitRef="shares" contextRef="c-160" decimals="INF" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" format="ixt:num-dot-decimal" scale="0" id="f-823">1,108,168</ix:nonFraction> and <ix:nonFraction unitRef="shares" contextRef="c-161" decimals="INF" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" format="ixt:num-dot-decimal" scale="0" id="f-824">243,818</ix:nonFraction>, respectively.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">During the years ended December&#160;31, 2024 and 2023, there were <ix:nonFraction unitRef="shares" contextRef="c-162" decimals="0" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" format="ixt:fixed-zero" scale="0" id="f-825"><ix:nonFraction unitRef="shares" contextRef="c-163" decimals="0" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" format="ixt:fixed-zero" scale="0" id="f-826">no</ix:nonFraction></ix:nonFraction> options granted under the 2006 Plan.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We adopted the 2022 Stock Incentive Plan (the "2022 Plan") on March 1, 2022, under which the Board of Directors may grant incentive or non-qualified stock options and stock grants to key employees, directors, advisors and consultants. We have reserved <ix:nonFraction unitRef="shares" contextRef="c-164" decimals="0" name="us-gaap:CommonStockCapitalSharesReservedForFutureIssuance" format="ixt:num-dot-decimal" scale="0" id="f-827">3,800,000</ix:nonFraction> shares of our common stock for issuance pursuant to awards under the 2022 Plan. The adoption of the 2022 Plan was approved by our shareholders on June 9, 2022. The 2022 Plan expires <ix:nonNumeric contextRef="c-165" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" format="ixt-sec:durwordsen" id="f-828">ten years</ix:nonNumeric> from its effective date or March 1, 2032.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Under the 2022 Plan, stock options vest based upon the terms within the individual option grants, with an acceleration of the unvested portion of such options upon a change in control event, as defined in the 2022 Plan.  The options are not transferable except by will or domestic relations order.  The option price per share under the 2022 Plan cannot be less than the fair market value of the underlying shares on the date of the grant. </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">During the year ended December&#160;31, 2024, we granted nonqualified options to purchase an aggregate of <ix:nonFraction unitRef="shares" contextRef="c-166" decimals="INF" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" format="ixt:num-dot-decimal" scale="0" id="f-829">125,000</ix:nonFraction> shares of common stock at $<ix:nonFraction unitRef="usdPerShare" contextRef="c-166" decimals="INF" name="tgen:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantedInPeriodExercisePrice" scale="0" id="f-830">0.77</ix:nonFraction> per share to directors. These options have a vesting schedule of <span style="-sec-ix-hidden:f-831">P4Y years</span> and expire in <ix:nonNumeric contextRef="c-166" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" format="ixt-sec:durwordsen" id="f-832">ten years</ix:nonNumeric>. The fair value of the options issued in 2024 was $<ix:nonFraction unitRef="usd" contextRef="c-166" decimals="0" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1" format="ixt:num-dot-decimal" scale="0" id="f-833">44,750</ix:nonFraction>. The weighted-average grant date fair value of stock options granted during 2024 was $<ix:nonFraction unitRef="usdPerShare" contextRef="c-166" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" scale="0" id="f-834">0.36</ix:nonFraction> per share.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">During the year ended December&#160;31, 2023, we granted nonqualified options under the 2022 Plan to purchase an aggregate of <ix:nonFraction unitRef="shares" contextRef="c-167" decimals="INF" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" format="ixt:num-dot-decimal" scale="0" id="f-835">575,000</ix:nonFraction> shares of common stock at prices between $<ix:nonFraction unitRef="usdPerShare" contextRef="c-167" decimals="2" name="tgen:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansGrantedExercisePriceRangeLowerRangeLimit" scale="0" id="f-836">0.88</ix:nonFraction> per share and $<ix:nonFraction unitRef="usdPerShare" contextRef="c-167" decimals="2" name="tgen:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansGrantedExercisePriceRangeUpperRangeLimit" scale="0" id="f-837">1.10</ix:nonFraction> per share to certain directors, officers and employees. These options have a vesting schedule of <span style="-sec-ix-hidden:f-838">two</span> to <ix:nonNumeric contextRef="c-169" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" format="ixt-sec:durwordsen" id="f-839">four years</ix:nonNumeric> and expire in <ix:nonNumeric contextRef="c-167" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" format="ixt-sec:durwordsen" id="f-840">ten years</ix:nonNumeric>. The fair value of the options issued in 2024 was $<ix:nonFraction unitRef="usd" contextRef="c-167" decimals="0" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1" format="ixt:num-dot-decimal" scale="0" id="f-841">244,625</ix:nonFraction>. The weighted-average grant date fair value of stock options granted during 2024 was </span></div></ix:continuation><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="margin-bottom:6pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">F-25</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-bottom:6pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">TECOGEN INC.</span></div><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Notes to Audited Consolidated Financial Statements for December 31, 2024 and 2023</span></div><div style="text-align:center"><span><br/></span></div><div style="text-align:center"><span><br/></span></div></div><ix:continuation id="f-816-2"><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$<ix:nonFraction unitRef="usdPerShare" contextRef="c-167" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" scale="0" id="f-842">0.43</ix:nonFraction> per share. </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The number of shares remaining available for future issuance under the 2022 Plan as of December&#160;31, 2024 was <ix:nonFraction unitRef="shares" contextRef="c-170" decimals="INF" name="us-gaap:CommonStockCapitalSharesReservedForFutureIssuance" format="ixt:num-dot-decimal" scale="0" id="f-843">2,950,000</ix:nonFraction>.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">During the year December&#160;31, 2024, <ix:nonFraction unitRef="option" contextRef="c-171" decimals="0" name="tgen:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfOptionsExercisedInPeriod" format="ixt-sec:numwordsen" scale="0" id="f-844">one</ix:nonFraction> option for <ix:nonFraction unitRef="shares" contextRef="c-171" decimals="0" name="us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised" format="ixt:num-dot-decimal" scale="0" id="f-845">100,000</ix:nonFraction> shares of common stock was exercised. During the year ended December&#160;31, 2023, there were <ix:nonFraction unitRef="shares" contextRef="c-172" decimals="0" name="us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised" format="ixt:fixed-zero" scale="0" id="f-846">no</ix:nonFraction> options exercised.</span></div><ix:nonNumeric contextRef="c-171" name="us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" id="f-847" escape="true"><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Stock option activity for the year ended December&#160;31, 2024 was as follows:</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:center"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:96.491%"><tr><td style="width:1.0%"/><td style="width:35.415%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:9.960%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.557%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:6.172%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:2.224%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:6.930%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.557%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:8.445%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.557%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:9.960%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.557%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:9.966%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Common&#160;Stock&#160;Options</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Number&#160;of<br/>Options</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="9" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Exercise<br/>Price<br/>Per<br/>Share</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Weighted<br/>Average<br/>Exercise<br/>Price</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Weighted<br/>Average<br/>Remaining<br/>Life</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Aggregate<br/>Intrinsic<br/>Value</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Outstanding, December 31, 2023</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-173" decimals="INF" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" format="ixt:num-dot-decimal" scale="0" id="f-848">3,638,122</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-13" decimals="2" name="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit" scale="0" id="f-849">0.71</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-13" decimals="2" name="tgen:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansGrantedExercisePriceRangeUpperRangeLimit" scale="0" id="f-850">10.33</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-173" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" scale="0" id="f-851">1.49</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="c-174" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" format="ixt-sec:duryear" id="f-852">6.70</ix:nonNumeric> years</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-173" decimals="0" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue" format="ixt:num-dot-decimal" scale="0" id="f-853">127,811</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Granted</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-171" decimals="INF" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" format="ixt:num-dot-decimal" scale="0" id="f-854">125,000</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="9" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$<ix:nonFraction unitRef="usdPerShare" contextRef="c-1" decimals="2" name="tgen:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansGrantedExercisePriceRangeLowerRangeLimit" scale="0" id="f-855">0.77</ix:nonFraction></span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-171" decimals="2" name="us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" scale="0" id="f-856">0.77</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Exercised</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="shares" contextRef="c-171" decimals="0" name="us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised" format="ixt:num-dot-decimal" scale="0" id="f-857">100,000</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="9" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$<ix:nonFraction unitRef="usdPerShare" contextRef="c-1" decimals="2" name="tgen:ShareBasedPaymentArrangementOptionExercisesInPeriodExercisePricePerShare" scale="0" id="f-858">0.71</ix:nonFraction></span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-171" decimals="2" name="us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" scale="0" id="f-859">0.71</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-171" decimals="0" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" format="ixt:num-dot-decimal" scale="0" id="f-860">75,500</ix:nonFraction>&#160;</span></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Canceled and forfeited</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="shares" contextRef="c-171" decimals="INF" name="tgen:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsCancellationsAndForfeituresInPeriod" format="ixt:num-dot-decimal" scale="0" id="f-861">910,160</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-1" decimals="2" name="tgen:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansCancelledAndForfeitedExercisePriceRangeLowerRangeLimit" scale="0" id="f-862">0.71</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-1" decimals="2" name="tgen:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansCancelledAndForfeitedExercisePriceRangeUpperRangeLimit" scale="0" id="f-863">10.33</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-171" decimals="2" name="tgen:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsCancellationsAndForfeituresInPeriodWeightedAverageExercisePrice" scale="0" id="f-864">2.54</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Outstanding, December 31, 2024</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-175" decimals="INF" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" format="ixt:num-dot-decimal" scale="0" id="f-865">2,752,962</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-1" decimals="2" name="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit" scale="0" id="f-866">0.71</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-1" decimals="2" name="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit" scale="0" id="f-867">3.93</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-175" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" scale="0" id="f-868">1.14</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="c-176" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" format="ixt-sec:duryear" id="f-869">6.70</ix:nonNumeric> years</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-175" decimals="0" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue" format="ixt:num-dot-decimal" scale="0" id="f-870">1,348,684</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Exercisable, December 31, 2024</span></td><td colspan="2" style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-175" decimals="INF" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" format="ixt:num-dot-decimal" scale="0" id="f-871">1,839,212</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-175" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" scale="0" id="f-872">1.25</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-175" decimals="0" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1" format="ixt:num-dot-decimal" scale="0" id="f-873">838,184</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Vested and expected to vest, December 31, 2024</span></td><td colspan="2" style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-175" decimals="INF" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" format="ixt:num-dot-decimal" scale="0" id="f-874">2,615,900</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-175" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice" scale="0" id="f-875">1.15</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-175" decimals="0" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" format="ixt:num-dot-decimal" scale="0" id="f-876">1,272,109</ix:nonFraction>&#160;</span></td><td style="border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div></ix:nonNumeric><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We used a forfeiture rate of <ix:nonFraction unitRef="number" contextRef="c-1" decimals="2" name="tgen:ShareBasedCompensationArrangementbyShareBasedPaymentAwardHistoricalForfeitureRate" scale="-2" id="f-877">15</ix:nonFraction>% to calculate the expected to vest shares in the table above.  We use the Black-Scholes option pricing model to determine the fair value of stock options granted.  Use of a valuation model requires management to make certain assumptions with respect to selected model inputs.  Expected volatility was calculated based on the average volatility of <ix:nonFraction unitRef="company" contextRef="c-1" decimals="0" name="tgen:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfPubliclyTradedCompaniesUsedInExpectedVolatilityRateCalculation" format="ixt-sec:numwordsen" scale="0" id="f-878">four</ix:nonFraction> comparable publicly traded companies.  The average expected life was estimated using the simplified method to determine the expected life based on the vesting period and contractual terms, since we do not have the necessary historical exercise data to determine an expected life for stock options. We use a single weighted-average expected life to value option awards and recognize compensation on a straight-line basis over the requisite service period for each separately vesting portion of the awards.  The risk-free interest rate is based on U.S. Treasury zero-coupon issues with a remaining term which approximates the expected life assumed at the date of grant. </span></div><ix:nonNumeric contextRef="c-171" name="us-gaap:ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock" id="f-879" escape="true"><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The weighted average assumptions used in the Black-Scholes option pricing model for options granted in 2024 and 2023 are as follows:</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:center;text-indent:36pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:59.795%"><tr><td style="width:1.0%"/><td style="width:47.555%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:1.022%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:23.349%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:1.022%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:23.352%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Stock option award assumptions:</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Expected dividend yield</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-176" decimals="4" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" format="ixt:fixed-zero" scale="-2" id="f-880">&#8212;</ix:nonFraction>%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-176" decimals="4" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" format="ixt:fixed-zero" scale="-2" id="f-881">&#8212;</ix:nonFraction>%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Expected life</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="c-176" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" format="ixt-sec:duryear" id="f-882">6.25</ix:nonNumeric> years</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="c-174" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" format="ixt-sec:duryear" id="f-883">6.25</ix:nonNumeric> years</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Risk-free interest rate</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-176" decimals="4" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" scale="-2" id="f-884">4.28</ix:nonFraction>%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-174" decimals="4" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" scale="-2" id="f-885">4.70</ix:nonFraction>%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Expected volatility</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-176" decimals="4" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" scale="-2" id="f-886">40.17</ix:nonFraction>%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-174" decimals="4" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" scale="-2" id="f-887">38.49</ix:nonFraction>%</span></td></tr></table></div></ix:nonNumeric><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">During the years ended December&#160;31, 2024 and 2023, we recognized stock-based compensation expense of $<ix:nonFraction unitRef="usd" contextRef="c-171" decimals="0" name="us-gaap:AllocatedShareBasedCompensationExpense" format="ixt:num-dot-decimal" scale="0" id="f-888">172,987</ix:nonFraction> and $<ix:nonFraction unitRef="usd" contextRef="c-172" decimals="0" name="us-gaap:AllocatedShareBasedCompensationExpense" format="ixt:num-dot-decimal" scale="0" id="f-889">250,394</ix:nonFraction>, respectively, related to the issuance of stock options.  <ix:nonFraction unitRef="usd" contextRef="c-172" decimals="0" name="us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense" format="ixt:fixed-zero" scale="0" id="f-890"><ix:nonFraction unitRef="usd" contextRef="c-171" decimals="0" name="us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense" format="ixt:fixed-zero" scale="0" id="f-891">No</ix:nonFraction></ix:nonFraction> tax benefit was recognized related to the stock-based compensation expense recorded during either of the years.  At December&#160;31, 2024 and 2023, the total compensation cost related to unvested stock option awards not yet recognized is $<ix:nonFraction unitRef="usd" contextRef="c-175" decimals="0" name="us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" format="ixt:num-dot-decimal" scale="0" id="f-892">278,461</ix:nonFraction>  and $<ix:nonFraction unitRef="usd" contextRef="c-173" decimals="0" name="us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" format="ixt:num-dot-decimal" scale="0" id="f-893">451,298</ix:nonFraction>, respectively.  The unvested stock compensation at December&#160;31, 2024 will be recognized over a weighted average period of <ix:nonNumeric contextRef="c-171" name="us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" format="ixt-sec:duryear" id="f-894">2.30</ix:nonNumeric> years.</span></div></ix:continuation><div id="ic4bfd2faeedf4470adc28b9f3bba3b4c_169"></div><div style="margin-bottom:6pt;margin-top:6pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Note 16.  <ix:nonNumeric contextRef="c-1" name="us-gaap:FairValueDisclosuresTextBlock" id="f-895" continuedAt="f-895-1" escape="true">Fair Value Measurements</ix:nonNumeric></span></div><ix:continuation id="f-895-1" continuedAt="f-895-2"><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The fair value topic of the FASB Accounting Standards Codification defines fair value as the exchange price that would be received for an asset or paid to transfer a liability (an exit price) in the principal or most advantageous market for the asset or liability in an orderly transaction between market participants on the measurement date. The accounting guidance also establishes a fair value hierarchy which requires an entity to maximize the use of observable inputs, where available, and minimize the use of unobservable inputs when measuring fair value. There are three levels of inputs that may be used to measure fair value:</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Level 1 - Unadjusted quoted prices in active markets for identical assets or liabilities. We currently do not have any Level 1 financial assets or liabilities.</span></div></ix:continuation><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="margin-bottom:6pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">F-26</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-bottom:6pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">TECOGEN INC.</span></div><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Notes to Audited Consolidated Financial Statements for December 31, 2024 and 2023</span></div><div style="text-align:center"><span><br/></span></div><div style="text-align:center"><span><br/></span></div></div><ix:continuation id="f-895-2" continuedAt="f-895-3"><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#160;Level 2 - Observable inputs other than quoted prices included in Level 1. Level 2 inputs include quoted prices for identical assets or liabilities in non-active markets, quoted prices for similar assets or liabilities in active markets and inputs other than quoted prices that are observable for substantially the full term of the asset or liability. </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Level 3 - Unobservable inputs reflecting management&#8217;s own assumptions about the input used in pricing the asset or liability. </span></div><ix:nonNumeric contextRef="c-1" name="us-gaap:FairValueAssetsMeasuredOnRecurringBasisTextBlock" id="f-896" continuedAt="f-896-1" escape="true"><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table presents the asset reported in the consolidated balance sheet measured at its fair value on a recurring basis as of December&#160;31, 2024 and 2023 by level within the fair value hierarchy:</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:center;text-indent:36pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:503.25pt"><tr><td style="width:1.0pt"/><td style="width:160.75pt"/><td style="width:1.0pt"/><td style="width:1.0pt"/><td style="width:63.25pt"/><td style="width:1.0pt"/><td style="width:1.0pt"/><td style="width:1.75pt"/><td style="width:1.0pt"/><td style="width:1.0pt"/><td style="width:61.00pt"/><td style="width:1.0pt"/><td style="width:1.0pt"/><td style="width:1.75pt"/><td style="width:1.0pt"/><td style="width:1.0pt"/><td style="width:63.25pt"/><td style="width:1.0pt"/><td style="width:1.0pt"/><td style="width:1.75pt"/><td style="width:1.0pt"/><td style="width:1.0pt"/><td style="width:63.25pt"/><td style="width:1.0pt"/><td style="width:1.0pt"/><td style="width:3.25pt"/><td style="width:1.0pt"/><td style="width:1.0pt"/><td style="width:63.25pt"/><td style="width:1.0pt"/></tr><tr style="height:44pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Quoted prices in active markets for identical assets</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Significant other observable inputs</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Significant unobservable inputs</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:21pt"><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Total</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Level 1</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Level 2</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Level 3</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Unrealized gain (loss)</span></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%;text-decoration:underline">December 31, 2024</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"/></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Recurring fair value measurements</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;&#160;&#160;&#160;&#160;Available-for-sale equity securities</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;EuroSite Power Inc.</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-177" decimals="0" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" format="ixt:num-dot-decimal" scale="0" id="f-897">93,744</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-178" decimals="0" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" format="ixt:fixed-zero" scale="0" id="f-898">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-179" decimals="0" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" format="ixt:num-dot-decimal" scale="0" id="f-899">93,744</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-180" decimals="0" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" format="ixt:fixed-zero" scale="0" id="f-900">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-181" decimals="0" name="us-gaap:OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax" format="ixt:fixed-zero" scale="0" id="f-901">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:23pt"><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total recurring fair value measurements</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-182" decimals="0" name="us-gaap:AssetsFairValueDisclosure" format="ixt:num-dot-decimal" scale="0" id="f-902">93,744</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-183" decimals="0" name="us-gaap:AssetsFairValueDisclosure" format="ixt:fixed-zero" scale="0" id="f-903">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-184" decimals="0" name="us-gaap:AssetsFairValueDisclosure" format="ixt:num-dot-decimal" scale="0" id="f-904">93,744</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-185" decimals="0" name="us-gaap:AssetsFairValueDisclosure" format="ixt:fixed-zero" scale="0" id="f-905">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-186" decimals="0" name="us-gaap:OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax" format="ixt:fixed-zero" scale="0" id="f-906">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%;text-decoration:underline">December 31, 2023</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Recurring fair value measurements</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;&#160;&#160;&#160;&#160;Available-for-sale equity securities</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;EuroSite Power Inc.</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-187" decimals="0" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" format="ixt:num-dot-decimal" scale="0" id="f-907">93,744</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-188" decimals="0" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" format="ixt:fixed-zero" scale="0" id="f-908">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-189" decimals="0" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" format="ixt:num-dot-decimal" scale="0" id="f-909">93,744</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-190" decimals="0" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" format="ixt:fixed-zero" scale="0" id="f-910">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-191" decimals="0" name="us-gaap:OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax" format="ixt:fixed-zero" scale="0" id="f-911">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:23pt"><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total recurring fair value measurements</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-192" decimals="0" name="us-gaap:AssetsFairValueDisclosure" format="ixt:num-dot-decimal" scale="0" id="f-912">93,744</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-193" decimals="0" name="us-gaap:AssetsFairValueDisclosure" format="ixt:fixed-zero" scale="0" id="f-913">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-194" decimals="0" name="us-gaap:AssetsFairValueDisclosure" format="ixt:num-dot-decimal" scale="0" id="f-914">93,744</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-195" decimals="0" name="us-gaap:AssetsFairValueDisclosure" format="ixt:fixed-zero" scale="0" id="f-915">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-196" decimals="0" name="us-gaap:OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax" format="ixt:fixed-zero" scale="0" id="f-916">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div></ix:nonNumeric><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We utilize a Level 2 category fair value measurement to value our investment in EuroSite Power Inc. as an available-for-sale security at period end. That measurement is equal to the quoted market closing price at period end. Since this security is not actively traded we are classifying as Level 2. </span></div><ix:continuation id="f-896-1" continuedAt="f-896-2"><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes changes in Level 2 assets which are comprised of marketable equity securities for the years ended December&#160;31, 2024 and 2023:</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span><br/></span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:center;text-indent:36pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:63.011%"><tr><td style="width:1.0%"/><td style="width:66.881%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:30.919%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Fair value at December 31, 2022</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-197" decimals="0" name="us-gaap:AssetsFairValueDisclosure" format="ixt:num-dot-decimal" id="f-917">93,744</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Unrealized gain</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Fair value at December 31, 2023</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-192" decimals="0" name="us-gaap:AssetsFairValueDisclosure" format="ixt:num-dot-decimal" id="f-918">93,744</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Fair value at December 31, 2023</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-192" decimals="0" name="us-gaap:AssetsFairValueDisclosure" format="ixt:num-dot-decimal" id="f-919">93,744</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Unrealized gain</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Fair value at December 31, 2024</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-182" decimals="0" name="us-gaap:AssetsFairValueDisclosure" format="ixt:num-dot-decimal" id="f-920">93,744</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div></ix:continuation></ix:continuation><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="margin-bottom:6pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">F-27</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-bottom:6pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">TECOGEN INC.</span></div><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Notes to Audited Consolidated Financial Statements for December 31, 2024 and 2023</span></div><div style="text-align:center"><span><br/></span></div><div style="text-align:center"><span><br/></span></div></div><ix:continuation id="f-895-3"><ix:continuation id="f-896-2"><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table presents the liability reported in the consolidated balance sheet measured at its fair value on a recurring basis as of December&#160;31, 2024 and 2023 by level within the fair value hierarchy:</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:center;text-indent:36pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:92.982%"><tr><td style="width:1.0%"/><td style="width:27.988%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.579%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.428%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.579%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.428%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.579%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.428%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.579%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.428%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.584%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Quoted prices in active markets for identical assets</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Significant other observable inputs</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Significant unobservable inputs</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Level 1</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Level 2</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Level 3</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total gains (losses)</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%;text-decoration:underline">December 31, 2024</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Recurring fair value measurements</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Contingent contract consideration</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Current</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-198" decimals="0" name="us-gaap:AssetAcquisitionContingentConsiderationLiabilityCurrent" format="ixt:num-dot-decimal" id="f-921">328,350</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-183" decimals="0" name="us-gaap:AssetAcquisitionContingentConsiderationLiabilityCurrent" format="ixt:fixed-zero" scale="0" id="f-922">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-184" decimals="0" name="us-gaap:AssetAcquisitionContingentConsiderationLiabilityCurrent" format="ixt:fixed-zero" scale="0" id="f-923">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-185" decimals="0" name="us-gaap:AssetAcquisitionContingentConsiderationLiabilityCurrent" format="ixt:num-dot-decimal" id="f-924">328,350</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-199" decimals="0" name="us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings" format="ixt:fixed-zero" scale="0" id="f-925">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Long-term</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-198" decimals="0" name="us-gaap:AssetAcquisitionContingentConsiderationLiabilityNoncurrent" format="ixt:num-dot-decimal" id="f-926">1,008,760</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-183" decimals="0" name="us-gaap:AssetAcquisitionContingentConsiderationLiabilityNoncurrent" format="ixt:fixed-zero" scale="0" id="f-927">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-184" decimals="0" name="us-gaap:AssetAcquisitionContingentConsiderationLiabilityNoncurrent" format="ixt:fixed-zero" scale="0" id="f-928">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-185" decimals="0" name="us-gaap:AssetAcquisitionContingentConsiderationLiabilityNoncurrent" format="ixt:num-dot-decimal" id="f-929">1,008,760</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-200" decimals="0" name="us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings" format="ixt:fixed-zero" scale="0" id="f-930">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total recurring fair value measurements</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-198" decimals="0" name="us-gaap:LiabilitiesFairValueDisclosure" format="ixt:num-dot-decimal" scale="0" id="f-931">1,337,110</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-183" decimals="0" name="us-gaap:LiabilitiesFairValueDisclosure" format="ixt:fixed-zero" scale="0" id="f-932">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-184" decimals="0" name="us-gaap:LiabilitiesFairValueDisclosure" format="ixt:fixed-zero" scale="0" id="f-933">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-185" decimals="0" name="us-gaap:LiabilitiesFairValueDisclosure" format="ixt:num-dot-decimal" scale="0" id="f-934">1,337,110</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" name="us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings" format="ixt:fixed-zero" scale="0" id="f-935">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:12pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%;text-decoration:underline">December 31, 2023</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Recurring fair value measurements</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Contingent contract consideration</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Current</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-201" decimals="0" name="us-gaap:AssetAcquisitionContingentConsiderationLiabilityCurrent" format="ixt:num-dot-decimal" id="f-936">200,639</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-193" decimals="0" name="us-gaap:AssetAcquisitionContingentConsiderationLiabilityCurrent" format="ixt:fixed-zero" scale="0" id="f-937">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-194" decimals="0" name="us-gaap:AssetAcquisitionContingentConsiderationLiabilityCurrent" format="ixt:fixed-zero" scale="0" id="f-938">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-195" decimals="0" name="us-gaap:AssetAcquisitionContingentConsiderationLiabilityCurrent" format="ixt:num-dot-decimal" scale="0" id="f-939">200,639</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-202" decimals="0" name="us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings" format="ixt:fixed-zero" scale="0" id="f-940">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Long-term</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-201" decimals="0" name="us-gaap:AssetAcquisitionContingentConsiderationLiabilityNoncurrent" format="ixt:num-dot-decimal" id="f-941">994,743</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-193" decimals="0" name="us-gaap:AssetAcquisitionContingentConsiderationLiabilityNoncurrent" format="ixt:fixed-zero" scale="0" id="f-942">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-194" decimals="0" name="us-gaap:AssetAcquisitionContingentConsiderationLiabilityNoncurrent" format="ixt:fixed-zero" scale="0" id="f-943">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-195" decimals="0" name="us-gaap:AssetAcquisitionContingentConsiderationLiabilityNoncurrent" format="ixt:num-dot-decimal" scale="0" id="f-944">994,743</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-203" decimals="0" name="us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings" format="ixt:fixed-zero" scale="0" id="f-945">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total recurring fair value measurements</span></td><td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-201" decimals="0" name="us-gaap:LiabilitiesFairValueDisclosure" format="ixt:num-dot-decimal" scale="0" id="f-946">1,195,382</ix:nonFraction>&#160;</span></td><td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="padding:0 1pt"/><td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-193" decimals="0" name="us-gaap:LiabilitiesFairValueDisclosure" format="ixt:fixed-zero" scale="0" id="f-947">&#8212;</ix:nonFraction>&#160;</span></td><td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="padding:0 1pt"/><td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-194" decimals="0" name="us-gaap:LiabilitiesFairValueDisclosure" format="ixt:fixed-zero" scale="0" id="f-948">&#8212;</ix:nonFraction>&#160;</span></td><td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="padding:0 1pt"/><td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-195" decimals="0" name="us-gaap:LiabilitiesFairValueDisclosure" format="ixt:num-dot-decimal" scale="0" id="f-949">1,195,382</ix:nonFraction>&#160;</span></td><td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="padding:0 1pt"/><td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-13" decimals="0" name="us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings" format="ixt:fixed-zero" scale="0" id="f-950">&#8212;</ix:nonFraction>&#160;</span></td><td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div></ix:continuation><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We utilize a Level 3 category fair value measurement to value the contingent consideration liability at period end since there are no quoted prices for this liabilities in non-active markets, there are no quoted prices for similar liabilities in active markets and there are no inputs that are observable for substantially the full term of the the liability. The contingent consideration calculation requires management to make estimates and assumptions that affect the reported amount of the liability.The contingent consideration is payable each calendar quarter through the earlier of the expiration or termination of the relevant maintenance agreements, or the seventh (7th) anniversary of the acquisition date. The consideration is equal to the product of the revenues collected in a calendar quarter multiplied by an applicable percentage. The agreement stipulates quarterly aggregate revenue targets and an applicable percentage, and provides for a higher applicable percentage if revenues exceed the target revenues. The applicable percentage ranges from <ix:nonFraction unitRef="number" contextRef="c-204" decimals="2" name="tgen:MaintenanceAgreementsApplicablePercentage" scale="-2" id="f-951">5</ix:nonFraction>% to <ix:nonFraction unitRef="number" contextRef="c-205" decimals="2" name="tgen:MaintenanceAgreementsApplicablePercentage" scale="-2" id="f-952">10</ix:nonFraction>% over the agreement term. On the date of acquisition, the fair value of the contingent consideration was calculated using a weighted average cost of capital of <ix:nonFraction unitRef="number" contextRef="c-69" decimals="2" name="tgen:IntangibleAssetsMeasurementInput" scale="-2" id="f-953">15</ix:nonFraction>%, discounting the future cash flows to present value.</span></div></ix:continuation><div id="ic4bfd2faeedf4470adc28b9f3bba3b4c_172"></div><div style="margin-bottom:6pt;margin-top:6pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Note 17.  <ix:nonNumeric contextRef="c-1" name="us-gaap:CompensationAndEmployeeBenefitPlansTextBlock" id="f-954" continuedAt="f-954-1" escape="true">Retirement Plans</ix:nonNumeric></span></div><ix:continuation id="f-954-1"><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We have a defined contribution retirement plan (the &#8220;Plan&#8221;), which qualifies under Section 401(k) of the Internal Revenue Code (IRC). Under the Plan, employees meeting certain requirements may elect to contribute a percentage of their salary up to the maximum allowed by the IRC. We matched a variable amount based on participant contributions up to a maximum of <ix:nonFraction unitRef="number" contextRef="c-1" decimals="INF" name="us-gaap:DefinedContributionPlanEmployerMatchingContributionPercent" scale="-2" id="f-955">4.5</ix:nonFraction>% of each participant&#8217;s salary until May 2020 when we discontinued the matching of employee contributions for those employees not covered under a collective bargaining agreement. Effective July 1, 2023, we reinstituted the employer match based on participant contributions which are capped at a maximum of $<ix:nonFraction unitRef="usd" contextRef="c-206" decimals="0" name="tgen:DefinedContributionPlanMaximumQuarterlyEmployerMatchingContributionPerParticipant" scale="0" id="f-956">250</ix:nonFraction> per quarter and $<ix:nonFraction unitRef="usd" contextRef="c-206" decimals="0" name="tgen:DefinedContributionPlanMaximumAnnualEmployerMatchingContributionPerParticipant" format="ixt:num-dot-decimal" scale="0" id="f-957">1,000</ix:nonFraction> per fiscal year, per participant. We contributed approximately $<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" name="us-gaap:DefinedContributionPlanCostRecognized" format="ixt:num-dot-decimal" scale="0" id="f-958">86,827</ix:nonFraction> and $<ix:nonFraction unitRef="usd" contextRef="c-13" decimals="0" name="us-gaap:DefinedContributionPlanCostRecognized" format="ixt:num-dot-decimal" scale="0" id="f-959">65,705</ix:nonFraction> in matching contributions to the Plan in 2024 and 2023, respectively.</span></div></ix:continuation><div id="ic4bfd2faeedf4470adc28b9f3bba3b4c_175"></div><div style="margin-bottom:6pt;margin-top:6pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Note 18.  <ix:nonNumeric contextRef="c-1" name="us-gaap:SegmentReportingDisclosureTextBlock" id="f-960" continuedAt="f-960-1" escape="true">Segments</ix:nonNumeric></span></div><ix:continuation id="f-960-1" continuedAt="f-960-2"><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our Chief Executive Officer, who is our Chief Operating Decision Maker ("CODM") manages our business through <ix:nonFraction unitRef="segment" contextRef="c-1" decimals="0" name="us-gaap:NumberOfOperatingSegments" format="ixt-sec:numwordsen" scale="0" id="f-961">three</ix:nonFraction> operating segments, consistent with how our CODM: (i) accessed operating performance on a periodic basis, (ii) makes resource allocation decisions and (iii) designates responsibilities of his direct reports. As of December&#160;31, 2024, we were organized into <ix:nonFraction unitRef="segment" contextRef="c-1" decimals="0" name="us-gaap:NumberOfOperatingSegments" format="ixt-sec:numwordsen" scale="0" id="f-962">three</ix:nonFraction> operating segments through which senior management evaluates our business. These segments, as described in more detail in Note 1. "Nature of Business and Operations", are organized around the products, services and energy production provided to customers and represent our reportable segments. </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our CODM uses segment profit, based on operating income after the elimination of intercompany transactions and segment identifiable assets to assess segment operating performance and to make resource allocation decisions. Certain costs such as other income (expense) are not included in the measure of segment profit and are excluded from managements's assessment of segment financial performance.</span></div></ix:continuation><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="margin-bottom:6pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">F-28</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-bottom:6pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">TECOGEN INC.</span></div><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Notes to Audited Consolidated Financial Statements for December 31, 2024 and 2023</span></div></div><ix:continuation id="f-960-2"><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Corporate includes finance, treasury, certain research and development costs, tax and legal costs and certain other costs which are not allocated to the reportable segments. </span></div><ix:nonNumeric contextRef="c-1" name="us-gaap:ScheduleOfSegmentReportingInformationBySegmentTextBlock" id="f-963" escape="true"><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table presents information by reportable segment for the years ended December&#160;31, 2024 and 2023:</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:center;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> </span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:534.00pt"><tr><td style="width:1.0pt"/><td style="width:171.25pt"/><td style="width:1.0pt"/><td style="width:1.0pt"/><td style="width:1.00pt"/><td style="width:1.0pt"/><td style="width:1.0pt"/><td style="width:66.25pt"/><td style="width:1.0pt"/><td style="width:1.0pt"/><td style="width:1.75pt"/><td style="width:1.0pt"/><td style="width:1.0pt"/><td style="width:66.25pt"/><td style="width:1.0pt"/><td style="width:1.0pt"/><td style="width:1.75pt"/><td style="width:1.0pt"/><td style="width:1.0pt"/><td style="width:66.25pt"/><td style="width:1.0pt"/><td style="width:1.0pt"/><td style="width:1.75pt"/><td style="width:1.0pt"/><td style="width:1.0pt"/><td style="width:66.25pt"/><td style="width:1.0pt"/><td style="width:1.0pt"/><td style="width:3.25pt"/><td style="width:1.0pt"/><td style="width:1.0pt"/><td style="width:66.25pt"/><td style="width:1.0pt"/></tr><tr style="height:30pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Products</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Services</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Energy Production</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Corporate</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Total</span></td></tr><tr style="height:12pt"><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year ended December 31, 2024</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Revenues</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-207" decimals="0" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="0" id="f-964">4,443,996</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-208" decimals="0" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" id="f-965">16,074,870</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-209" decimals="0" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="0" id="f-966">2,100,670</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-210" decimals="0" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:fixed-zero" scale="0" id="f-967">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-211" decimals="0" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="0" id="f-968">22,619,536</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Cost of sales</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-207" decimals="0" name="us-gaap:CostOfGoodsAndServicesSold" format="ixt:num-dot-decimal" scale="0" id="f-969">3,014,655</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-208" decimals="0" name="us-gaap:CostOfGoodsAndServicesSold" format="ixt:num-dot-decimal" id="f-970">8,432,876</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-209" decimals="0" name="us-gaap:CostOfGoodsAndServicesSold" format="ixt:num-dot-decimal" scale="0" id="f-971">1,301,832</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-210" decimals="0" name="us-gaap:CostOfGoodsAndServicesSold" format="ixt:fixed-zero" scale="0" id="f-972">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-211" decimals="0" name="us-gaap:CostOfGoodsAndServicesSold" format="ixt:num-dot-decimal" scale="0" id="f-973">12,749,363</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Gross profit</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-46" decimals="0" name="us-gaap:GrossProfit" format="ixt:num-dot-decimal" scale="0" id="f-974">1,429,341</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-212" decimals="0" name="us-gaap:GrossProfit" format="ixt:num-dot-decimal" scale="0" id="f-975">7,641,994</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-120" decimals="0" name="us-gaap:GrossProfit" format="ixt:num-dot-decimal" scale="0" id="f-976">798,838</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-213" decimals="0" name="us-gaap:GrossProfit" format="ixt:fixed-zero" scale="0" id="f-977">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" name="us-gaap:GrossProfit" format="ixt:num-dot-decimal" scale="0" id="f-978">9,870,173</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Operating expenses</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-46" decimals="0" name="us-gaap:OperatingExpenses" format="ixt:num-dot-decimal" scale="0" id="f-979">1,947,426</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-212" decimals="0" name="us-gaap:OperatingExpenses" format="ixt:num-dot-decimal" scale="0" id="f-980">6,625,965</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-120" decimals="0" name="us-gaap:OperatingExpenses" format="ixt:num-dot-decimal" scale="0" id="f-981">319,514</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-213" decimals="0" name="us-gaap:OperatingExpenses" format="ixt:num-dot-decimal" scale="0" id="f-982">5,511,355</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" name="us-gaap:OperatingExpenses" format="ixt:num-dot-decimal" scale="0" id="f-983">14,404,260</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Loss (profit) from operations</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-46" decimals="0" sign="-" name="us-gaap:OperatingIncomeLoss" format="ixt:num-dot-decimal" scale="0" id="f-984">518,085</ix:nonFraction>)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-212" decimals="0" name="us-gaap:OperatingIncomeLoss" format="ixt:num-dot-decimal" scale="0" id="f-985">1,016,029</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-120" decimals="0" name="us-gaap:OperatingIncomeLoss" format="ixt:num-dot-decimal" scale="0" id="f-986">479,324</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-213" decimals="0" sign="-" name="us-gaap:OperatingIncomeLoss" format="ixt:num-dot-decimal" scale="0" id="f-987">5,511,355</ix:nonFraction>)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" sign="-" name="us-gaap:OperatingIncomeLoss" format="ixt:num-dot-decimal" scale="0" id="f-988">4,534,087</ix:nonFraction>)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"/></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Identifiable assets</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-121" decimals="0" name="us-gaap:Assets" format="ixt:num-dot-decimal" scale="0" id="f-989">9,487,422</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-214" decimals="0" name="us-gaap:Assets" format="ixt:num-dot-decimal" id="f-990">11,695,370</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-123" decimals="0" name="us-gaap:Assets" format="ixt:num-dot-decimal" scale="0" id="f-991">2,855,386</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-215" decimals="0" name="us-gaap:Assets" format="ixt:num-dot-decimal" scale="0" id="f-992">7,054,081</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="us-gaap:Assets" format="ixt:num-dot-decimal" scale="0" id="f-993">31,092,259</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"/></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year ended December 31, 2023</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Revenues</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-216" decimals="0" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="0" id="f-994">8,859,946</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-217" decimals="0" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" id="f-995">14,523,054</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-218" decimals="0" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="0" id="f-996">1,756,419</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-219" decimals="0" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:fixed-zero" scale="0" id="f-997">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-220" decimals="0" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="0" id="f-998">25,139,419</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Cost of sales</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-216" decimals="0" name="us-gaap:CostOfGoodsAndServicesSold" format="ixt:num-dot-decimal" scale="0" id="f-999">5,923,096</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-217" decimals="0" name="us-gaap:CostOfGoodsAndServicesSold" format="ixt:num-dot-decimal" id="f-1000">7,909,202</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-218" decimals="0" name="us-gaap:CostOfGoodsAndServicesSold" format="ixt:num-dot-decimal" scale="0" id="f-1001">1,105,503</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-219" decimals="0" name="us-gaap:CostOfGoodsAndServicesSold" format="ixt:fixed-zero" scale="0" id="f-1002">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-220" decimals="0" name="us-gaap:CostOfGoodsAndServicesSold" format="ixt:num-dot-decimal" scale="0" id="f-1003">14,937,801</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Gross profit</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-47" decimals="0" name="us-gaap:GrossProfit" format="ixt:num-dot-decimal" scale="0" id="f-1004">2,936,850</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-221" decimals="0" name="us-gaap:GrossProfit" format="ixt:num-dot-decimal" scale="0" id="f-1005">6,613,852</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-116" decimals="0" name="us-gaap:GrossProfit" format="ixt:num-dot-decimal" scale="0" id="f-1006">650,916</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-222" decimals="0" name="us-gaap:GrossProfit" format="ixt:fixed-zero" scale="0" id="f-1007">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-13" decimals="0" name="us-gaap:GrossProfit" format="ixt:num-dot-decimal" scale="0" id="f-1008">10,201,618</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Operating expenses</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-47" decimals="0" name="us-gaap:OperatingExpenses" format="ixt:num-dot-decimal" scale="0" id="f-1009">1,429,400</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-221" decimals="0" name="us-gaap:OperatingExpenses" format="ixt:num-dot-decimal" scale="0" id="f-1010">6,992,221</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-116" decimals="0" name="us-gaap:OperatingExpenses" format="ixt:num-dot-decimal" scale="0" id="f-1011">66,190</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-222" decimals="0" name="us-gaap:OperatingExpenses" format="ixt:num-dot-decimal" scale="0" id="f-1012">6,127,419</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-13" decimals="0" name="us-gaap:OperatingExpenses" format="ixt:num-dot-decimal" scale="0" id="f-1013">14,615,230</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Loss (profit) from operations</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-47" decimals="0" name="us-gaap:OperatingIncomeLoss" format="ixt:num-dot-decimal" scale="0" id="f-1014">1,507,450</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-221" decimals="0" sign="-" name="us-gaap:OperatingIncomeLoss" format="ixt:num-dot-decimal" id="f-1015">378,369</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-116" decimals="0" name="us-gaap:OperatingIncomeLoss" format="ixt:num-dot-decimal" scale="0" id="f-1016">584,726</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-222" decimals="0" sign="-" name="us-gaap:OperatingIncomeLoss" format="ixt:num-dot-decimal" scale="0" id="f-1017">6,127,419</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-13" decimals="0" sign="-" name="us-gaap:OperatingIncomeLoss" format="ixt:num-dot-decimal" scale="0" id="f-1018">4,413,612</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Identifiable assets</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-117" decimals="0" name="us-gaap:Assets" format="ixt:num-dot-decimal" scale="0" id="f-1019">8,990,275</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-223" decimals="0" name="us-gaap:Assets" format="ixt:num-dot-decimal" id="f-1020">12,802,651</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-119" decimals="0" name="us-gaap:Assets" format="ixt:num-dot-decimal" scale="0" id="f-1021">3,269,013</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-224" decimals="0" name="us-gaap:Assets" format="ixt:num-dot-decimal" scale="0" id="f-1022">2,730,690</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="0" name="us-gaap:Assets" format="ixt:num-dot-decimal" scale="0" id="f-1023">27,792,629</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div></ix:nonNumeric></ix:continuation><div style="margin-bottom:6pt;margin-top:6pt"><span><br/></span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="margin-bottom:6pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">F-29</span></div></div></div><div id="ic4bfd2faeedf4470adc28b9f3bba3b4c_181"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-bottom:6pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">TECOGEN INC.</span></div><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Notes to Audited Consolidated Financial Statements for December 31, 2024 and 2023</span></div></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Note 19.  <ix:nonNumeric contextRef="c-1" name="us-gaap:IncomeTaxDisclosureTextBlock" id="f-1024" continuedAt="f-1024-1" escape="true">Income Taxes</ix:nonNumeric></span></div><ix:continuation id="f-1024-1" continuedAt="f-1024-2"><ix:nonNumeric contextRef="c-1" name="us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" id="f-1025" escape="true"><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">A reconciliation of the federal statutory income tax provision to our actual provision for the years ended December&#160;31, 2024 and 2023 is as follows:</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:center;text-indent:36pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:81.286%"><tr><td style="width:1.0%"/><td style="width:5.914%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:58.792%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.699%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:14.547%"/><td style="width:0.1%"/><td colspan="3" style="display:none"/><td style="width:0.1%"/><td style="width:0.699%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:14.549%"/><td style="width:0.1%"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">&#160;</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="display:none"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="display:none"/></tr><tr><td colspan="6" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Pre-tax book income (loss)</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" sign="-" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" format="ixt:num-dot-decimal" scale="0" id="f-1026">4,651,205</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="display:none"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-13" decimals="0" sign="-" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" format="ixt:num-dot-decimal" scale="0" id="f-1027">4,490,665</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="display:none"/></tr><tr><td colspan="6" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Expected tax at <ix:nonFraction unitRef="number" contextRef="c-1" decimals="INF" name="us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" scale="-2" id="f-1028">21</ix:nonFraction>% </span></div></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-225" decimals="0" sign="-" name="us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate" format="ixt:num-dot-decimal" scale="0" id="f-1029">976,753</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="display:none"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-226" decimals="0" sign="-" name="us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate" format="ixt:num-dot-decimal" scale="0" id="f-1030">943,040</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="display:none"/></tr><tr style="height:9pt"><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="display:none"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="display:none"/></tr><tr><td colspan="6" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Permanent differences:</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="display:none"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Goodwill impairment</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" name="us-gaap:IncomeTaxReconciliationNondeductibleExpenseImpairmentLosses" format="ixt:num-dot-decimal" scale="0" id="f-1031">45,632</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="display:none"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-13" decimals="0" name="us-gaap:IncomeTaxReconciliationNondeductibleExpenseImpairmentLosses" format="ixt:fixed-zero" scale="0" id="f-1032">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Intangible amortization </span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-225" decimals="0" sign="-" name="us-gaap:IncomeTaxReconciliationNondeductibleExpenseAmortization" format="ixt:num-dot-decimal" scale="0" id="f-1033">37,003</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="display:none"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-226" decimals="0" sign="-" name="us-gaap:IncomeTaxReconciliationNondeductibleExpenseAmortization" format="ixt:num-dot-decimal" scale="0" id="f-1034">46,373</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Other</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-225" decimals="0" name="us-gaap:IncomeTaxReconciliationNondeductibleExpenseOther" format="ixt:num-dot-decimal" scale="0" id="f-1035">5,169</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="display:none"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-226" decimals="0" name="us-gaap:IncomeTaxReconciliationNondeductibleExpenseOther" format="ixt:num-dot-decimal" scale="0" id="f-1036">6,474</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="display:none"/></tr><tr style="height:9pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="display:none"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="display:none"/></tr><tr><td colspan="6" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">State taxes:</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="display:none"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Current</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-225" decimals="0" name="tgen:EffectiveIncomeTaxRateReconciliationStateandLocalIncomeTaxesAmountCurrent" format="ixt:num-dot-decimal" scale="0" id="f-1037">22,565</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="display:none"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-226" decimals="0" name="tgen:EffectiveIncomeTaxRateReconciliationStateandLocalIncomeTaxesAmountCurrent" format="ixt:num-dot-decimal" scale="0" id="f-1038">32,491</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Deferred</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-225" decimals="0" sign="-" name="tgen:EffectiveIncomeTaxRateReconciliationStateandLocalIncomeTaxesAmountDeferred" format="ixt:num-dot-decimal" scale="0" id="f-1039">234,928</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="display:none"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-226" decimals="0" sign="-" name="tgen:EffectiveIncomeTaxRateReconciliationStateandLocalIncomeTaxesAmountDeferred" format="ixt:num-dot-decimal" scale="0" id="f-1040">264,759</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="display:none"/></tr><tr style="height:9pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="display:none"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="display:none"/></tr><tr><td colspan="6" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Other items:</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="display:none"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Expired net operating losses</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" name="tgen:EffectiveIncomeTaxRateReconciliationOperatingLossCarryforwardExpired" format="ixt:num-dot-decimal" scale="0" id="f-1041">324,799</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="display:none"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-13" decimals="0" name="tgen:EffectiveIncomeTaxRateReconciliationOperatingLossCarryforwardExpired" format="ixt:fixed-zero" scale="0" id="f-1042">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Federal research and development credits</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-225" decimals="0" name="us-gaap:IncomeTaxReconciliationTaxCreditsResearch" format="ixt:fixed-zero" scale="0" id="f-1043">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="display:none"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-226" decimals="0" name="us-gaap:IncomeTaxReconciliationTaxCreditsResearch" format="ixt:num-dot-decimal" scale="0" id="f-1044">84,592</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Deferred tax past year true-ups</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-225" decimals="0" sign="-" name="us-gaap:IncomeTaxReconciliationPriorYearIncomeTaxes" format="ixt:num-dot-decimal" scale="0" id="f-1045">91,289</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="display:none"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-226" decimals="0" sign="-" name="us-gaap:IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance" format="ixt:num-dot-decimal" scale="0" id="f-1046">63,440</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Change in valuation allowance</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-225" decimals="0" name="us-gaap:IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance" format="ixt:num-dot-decimal" scale="0" id="f-1047">920,794</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="display:none"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-13" decimals="0" name="us-gaap:IncomeTaxReconciliationPriorYearIncomeTaxes" format="ixt:num-dot-decimal" scale="0" id="f-1048">980,342</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Capitalized research and development expenses</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-225" decimals="0" name="us-gaap:IncomeTaxReconciliationNondeductibleExpenseResearchAndDevelopment" format="ixt:fixed-zero" scale="0" id="f-1049">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="display:none"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-226" decimals="0" name="us-gaap:IncomeTaxReconciliationNondeductibleExpenseResearchAndDevelopment" format="ixt:num-dot-decimal" scale="0" id="f-1050">334,120</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Other</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-225" decimals="0" name="tgen:IncomeTaxReconciliationUnbenefitedOperatingLosses" format="ixt:num-dot-decimal" scale="0" id="f-1051">43,579</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="display:none"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-226" decimals="0" name="tgen:IncomeTaxReconciliationUnbenefitedOperatingLosses" format="ixt:num-dot-decimal" scale="0" id="f-1052">81,268</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="display:none"/></tr><tr><td colspan="6" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Income tax provision</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" name="us-gaap:IncomeTaxExpenseBenefit" format="ixt:num-dot-decimal" scale="0" id="f-1053">22,565</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="display:none"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-13" decimals="0" name="us-gaap:IncomeTaxExpenseBenefit" format="ixt:num-dot-decimal" scale="0" id="f-1054">32,491</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="display:none"/></tr></table></div></ix:nonNumeric><ix:nonNumeric contextRef="c-1" name="us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" id="f-1055" escape="true"><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The components of net deferred tax assets recognized in the accompanying consolidated balance sheets at December&#160;31, 2024 and 2023 are as follows:</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:center;text-indent:36pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:80.555%"><tr><td style="width:1.0%"/><td style="width:5.978%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:59.335%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:14.689%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.707%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:14.691%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Net operating loss carryforwards</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="us-gaap:DeferredTaxAssetsOperatingLossCarryforwards" format="ixt:num-dot-decimal" scale="0" id="f-1056">12,025,000</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="0" name="us-gaap:DeferredTaxAssetsOperatingLossCarryforwards" format="ixt:num-dot-decimal" scale="0" id="f-1057">10,840,000</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">R&amp;D and ITC credit carryforwards</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="us-gaap:DeferredTaxAssetsTaxCreditCarryforwards" format="ixt:num-dot-decimal" scale="0" id="f-1058">396,000</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="0" name="us-gaap:DeferredTaxAssetsTaxCreditCarryforwards" format="ixt:num-dot-decimal" scale="0" id="f-1059">403,000</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Accrued expenses and other</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="tgen:DeferredTaxAssetTaxDeferredExpenseReservesAndAccrualsAccruedLiabilitiesAndOther" format="ixt:num-dot-decimal" scale="0" id="f-1060">267,000</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="0" name="tgen:DeferredTaxAssetTaxDeferredExpenseReservesAndAccrualsAccruedLiabilitiesAndOther" format="ixt:num-dot-decimal" scale="0" id="f-1061">381,000</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Intangibles</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="us-gaap:DeferredTaxAssetsGoodwillAndIntangibleAssets" format="ixt:num-dot-decimal" scale="0" id="f-1062">370,000</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="0" name="us-gaap:DeferredTaxAssetsGoodwillAndIntangibleAssets" format="ixt:num-dot-decimal" scale="0" id="f-1063">499,000</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Leases</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="tgen:DeferredTaxAssetLeases" format="ixt:fixed-zero" scale="0" id="f-1064">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="0" name="tgen:DeferredTaxAssetLeases" format="ixt:num-dot-decimal" scale="0" id="f-1065">8,000</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Accounts receivable</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts" format="ixt:num-dot-decimal" scale="0" id="f-1066">76,000</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="0" name="us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts" format="ixt:num-dot-decimal" scale="0" id="f-1067">39,000</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Stock options</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefits" format="ixt:num-dot-decimal" scale="0" id="f-1068">486,000</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="0" name="us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefits" format="ixt:num-dot-decimal" scale="0" id="f-1069">450,000</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Inventory</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="us-gaap:DeferredTaxAssetsInventory" format="ixt:num-dot-decimal" scale="0" id="f-1070">279,000</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="0" name="us-gaap:DeferredTaxAssetsInventory" format="ixt:num-dot-decimal" scale="0" id="f-1071">427,000</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Property, plant and equipment</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="us-gaap:DeferredTaxAssetsPropertyPlantAndEquipment" format="ixt:num-dot-decimal" scale="0" id="f-1072">578,000</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="0" name="us-gaap:DeferredTaxAssetsPropertyPlantAndEquipment" format="ixt:num-dot-decimal" scale="0" id="f-1073">650,000</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Other</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="us-gaap:DeferredTaxAssetsOther" format="ixt:num-dot-decimal" scale="0" id="f-1074">464,000</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="0" name="us-gaap:DeferredTaxAssetsOther" format="ixt:num-dot-decimal" scale="0" id="f-1075">323,000</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Deferred tax assets</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="us-gaap:DeferredTaxAssetsGross" format="ixt:num-dot-decimal" scale="0" id="f-1076">14,941,000</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="0" name="us-gaap:DeferredTaxAssetsGross" format="ixt:num-dot-decimal" scale="0" id="f-1077">14,020,000</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Valuation allowance</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="us-gaap:DeferredTaxAssetsValuationAllowance" format="ixt:num-dot-decimal" scale="0" id="f-1078">14,941,000</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-6" decimals="0" name="us-gaap:DeferredTaxAssetsValuationAllowance" format="ixt:num-dot-decimal" scale="0" id="f-1079">14,020,000</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Deferred tax assets, net</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="us-gaap:DeferredTaxLiabilities" format="ixt:fixed-zero" scale="0" id="f-1080">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="0" name="us-gaap:DeferredTaxLiabilities" format="ixt:fixed-zero" scale="0" id="f-1081">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div></ix:nonNumeric><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">At December&#160;31, 2024, we had approximately $<ix:nonFraction unitRef="usd" contextRef="c-227" decimals="0" name="us-gaap:OperatingLossCarryforwards" format="ixt:num-dot-decimal" scale="0" id="f-1082">41,147,000</ix:nonFraction> of  Federal net operating loss carryforwards ("NOL") of which $<ix:nonFraction unitRef="usd" contextRef="c-227" decimals="0" name="tgen:OperatingLossCarryforwardsExpired" format="ixt:num-dot-decimal" scale="0" id="f-1083">623,000</ix:nonFraction> expired as of December&#160;31, 2024, $<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsSubjectToExpiration" format="ixt:num-dot-decimal" scale="0" id="f-1084">19,240,000</ix:nonFraction> expire beginning in 2024 through 2039 and $<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsNotSubjectToExpiration" format="ixt:num-dot-decimal" scale="0" id="f-1085">21,907,000</ix:nonFraction> have an indefinite carryforward.  In addition, we have $<ix:nonFraction unitRef="usd" contextRef="c-228" decimals="0" name="us-gaap:OperatingLossCarryforwards" format="ixt:num-dot-decimal" scale="0" id="f-1086">32,285,000</ix:nonFraction> of state net operating losses, expiring at various dates starting in 2024 through 2042. </span></div></ix:continuation><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span><br/></span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span><br/></span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="margin-bottom:6pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">F-30</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-bottom:6pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">TECOGEN INC.</span></div><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Notes to Audited Consolidated Financial Statements for December 31, 2024 and 2023</span></div></div><ix:continuation id="f-1024-2"><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Tax Cuts and Jobs Act was enacted on December 22, 2017. A significant provision of the act was to reduce the statutory Federal tax rate from 34% to 21%.  During 2024, our valuation allowance increased by $<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" name="us-gaap:IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance" format="ixt:num-dot-decimal" scale="0" id="f-1087">921,000</ix:nonFraction> and  $<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" name="tgen:EffectiveIncomeTaxRateReconciliationOperatingLossCarryforwardExpired" format="ixt:num-dot-decimal" scale="0" id="f-1088">324,799</ix:nonFraction> of net operating loss carryforwards expired. This increase is affected by the absorption of deferred tax attributes associated with its acquisition of American DG Energy, Inc. along with permanent book to tax differences and provision to return adjustments. </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In accordance with the provisions of the Income Taxes topic of the Codification, we have evaluated the positive and negative evidence bearing upon the realizability of our deferred tax assets, which are comprised principally of net operating losses. Management has determined that it is more likely than not that we will not recognize the benefits of federal and state deferred tax assets and, as a result, a full valuation allowance has been established for 2023 and 2024, respectively.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#160;&#160;&#160;&#160;Utilization of the NOL and research and development credit carryforwards are subject to a substantial annual limitation due to ownership changes, as provided by Section 382 of the Internal Revenue Code of 1986, as well as similar state provisions. Ownership changes may limit the amount of NOL and tax credit carryforwards that can be utilized to offset future taxable income and tax, respectively. In general, an ownership change, as defined by Section 382, results from transactions increasing the ownership of certain shareholders or public groups in the stock of a corporation by more than 50 percentage points over a three-year period. </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#160;&#160;&#160;&#160;We acquired American DG Energy, Inc. during 2017, by acquiring <ix:nonFraction unitRef="number" contextRef="c-229" decimals="INF" name="us-gaap:SubsidiaryOrEquityMethodInvesteeCumulativePercentageOwnershipAfterAllTransactions" format="ixt:num-dot-decimal" scale="-2" id="f-1089">100</ix:nonFraction> percent of the company's stock. Accordingly, utilization of their consolidated and/or separately computed NOL and/or tax credit carryforwards will be subject to an annual limitation under Internal Revenue Code Section 382. Any such limitation may result in expiration of a portion of the NOL or tax credit carryforwards before utilization. The extent of the limitation, and related allocation and impact upon the NOL and credit carryforwards has been determined to be $<ix:nonFraction unitRef="usd" contextRef="c-230" decimals="0" name="tgen:AcquisitionAnnualNOLLimitationAmount" format="ixt:num-dot-decimal" scale="0" id="f-1090">391,940</ix:nonFraction> per year for a <ix:nonNumeric contextRef="c-230" name="tgen:AcquisitionNetOperatingLossLimitationPeriod" format="ixt-sec:duryear" id="f-1091">20</ix:nonNumeric> year period at the ADGE level. However, we have sufficient pre-merger NOLs to offset anticipated taxable income for the taxable year ended December&#160;31, 2024 and do not expected to be limited in NOL utilization for the period.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">A full valuation allowance has been provided against our loss carryforwards and, if an adjustment is required under Section 382, it would be offset by a corresponding adjustment to the valuation allowance. Thus, there would be no impact to the balance sheet or statement of operations if an adjustment were required.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We have not recorded any amounts for unrecognized tax benefits as of December&#160;31, 2024 or 2023.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We file tax returns as prescribed by the tax laws of the jurisdiction in which we operate. In the normal course of business, we are subject to examination by federal and state jurisdictions, where applicable.  There are currently no pending tax examinations.  Our tax returns from tax year 2021 are still open for examination for both federal and state jurisdictions.</span></div></ix:continuation><div style="margin-top:6pt;text-align:justify;text-indent:36pt"><span><br/></span></div><div id="ic4bfd2faeedf4470adc28b9f3bba3b4c_187"></div><div style="margin-bottom:6pt;margin-top:6pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Note 20.  <ix:nonNumeric contextRef="c-1" name="us-gaap:SubsequentEventsTextBlock" id="f-1092" continuedAt="f-1092-1" escape="true">Subsequent Events</ix:nonNumeric></span></div><ix:continuation id="f-1092-1" continuedAt="f-1092-2"><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We have evaluated events through the date of this filing, and, except as described below, have determined that no material subsequent events occurred that would require recognition in the consolidated financial statements or disclosure in the notes thereto for the period ended December 31, 2024.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Settlement of Litigation Regarding Fire at Milton Sports Centre</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On January 13, 2025, Tecogen and our insurers entered into a Settlement Agreement and Full and Final Release from any and all claims, obligations and liabilities, arising from the July 10, 2022 fire with the plaintiff's in the amount of CDN $<ix:nonFraction unitRef="cad" contextRef="c-142" decimals="0" name="us-gaap:LossContingencyDamagesAwardedValue" format="ixt:num-dot-decimal" scale="0" id="f-1093">400,000</ix:nonFraction>, of which we are responsible for CDN $<ix:nonFraction unitRef="cad" contextRef="c-143" decimals="0" name="us-gaap:LossContingencyDamagesPaidValue" format="ixt:num-dot-decimal" scale="0" id="f-1094">100,000</ix:nonFraction>. On February 7, 2025, we remitted CDN $<ix:nonFraction unitRef="cad" contextRef="c-143" decimals="0" name="us-gaap:LossContingencyDamagesPaidValue" format="ixt:num-dot-decimal" scale="0" id="f-1095">100,000</ix:nonFraction>, or $<ix:nonFraction unitRef="usd" contextRef="c-143" decimals="0" name="us-gaap:LossContingencyDamagesPaidValue" format="ixt:num-dot-decimal" scale="0" id="f-1096">70,994</ix:nonFraction>, representing payment in full of our liability. We will recognize a benefit of $<ix:nonFraction unitRef="usd" contextRef="c-231" decimals="0" name="tgen:LitigationSettlementFeeExpenseBenefit" format="ixt:num-dot-decimal" scale="0" id="f-1097">79,006</ix:nonFraction> in our consolidated financial statements in the first quarter of fiscal 2025.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Vertiv Sales and Marketing Agreement - Data Center Cooling Market</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On February 28, 2025, we entered into a Sales and Marketing Agreement with Vertiv Corporation (&#8220;Vertiv&#8221;) relating to sales of Tecogen DTx chillers for data center cooling applications (the &#8220;Vertiv Agreement&#8221;). The Vertiv Agreement has a term of <ix:nonNumeric contextRef="c-232" name="tgen:SalesAndMarketingAgreementTerm" format="ixt-sec:durwordsen" id="f-1098">two years</ix:nonNumeric> and provides that Vertiv will establish a budget for marketing activities and use commercially reasonable efforts to sell our DTx chillers for cooling applications in data centers. The Vertiv Agreement also provides the basis for the negotiation of a definitive supply agreement between us and Vertiv. We have agreed to provide Vertiv with reasonable discounts for purchases of significant volumes of our chillers, and Vertiv has agreed to use commercially reasonable efforts to assist us in securing favorable terms for engineering components and supplies for manufacturing our chillers. Pursuant to the Vertiv Agreement we have granted Vertiv the exclusive right to market and sell our DTx chillers for data center cooling applications outside the United States, and the non-exclusive right to market and sell our DTx chillers within the United States.  We have also agreed to grant Vertiv the exclusive right to market and sell our DTx chillers for data center cooling applications in the United States if Vertiv achieves and maintains agreed sales levels of DTx chillers. The foregoing description of the Vertiv Agreement is not complete and is qualified in its entirety by reference to the full text thereof, a copy of which is filed as Exhibit </span></div></ix:continuation><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="margin-bottom:6pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">F-31</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-bottom:6pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">TECOGEN INC.</span></div><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Notes to Audited Consolidated Financial Statements for December 31, 2024 and 2023</span></div></div><ix:continuation id="f-1092-2" continuedAt="f-1092-3"><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">99.01 to our Current Report on Form 8-K filed with the Securities and Exchange Commission on February 28, 2025, and incorporated by reference as Exhibit 10.30 hereto.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Related Party Notes</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On January 14, 2025 we agreed to permit Mr. Lewis to either receive repayment of his note in cash or, at his discretion, convert the balance of the promissory note into shares of our common stock.  </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On February 18, 2025 we amended the promissory notes with Mr. Hatsopoulos to extend the maturity dates for both promissory notes to July 31, 2026.  We also agreed to permit Mr. Hatsopoulos to either receive repayment of his notes in cash, or at his discretion, convert the balance(s) due of one or both of the promissory notes into shares of our common stock. </span></div></ix:continuation><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"><ix:continuation id="f-1092-3">In the event of such a conversion by Mr. Hatsopoulos or Mr. Lewis, the number of shares we will be required to issue will be determined by dividing the balance(s) due under the promissory note(s) by the average closing price per share of our shares during the <ix:nonNumeric contextRef="c-135" name="tgen:RelatedPartyTransactionPeriod" format="ixt-sec:durwordsen" id="f-1099"><ix:nonNumeric contextRef="c-134" name="tgen:RelatedPartyTransactionPeriod" format="ixt-sec:durwordsen" id="f-1100">thirty-day</ix:nonNumeric></ix:nonNumeric> period prior to the date of conversion.</ix:continuation> </span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="margin-bottom:6pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">F-32</span></div></div></div></body></html>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-10.27
<SEQUENCE>2
<FILENAME>jnhletterreloan.htm
<DESCRIPTION>EX-10.27
<TEXT>
<html><head>
<!-- Document created using Wdesk -->
<!-- Copyright 2025 Workiva -->
<title>Document</title></head><body><div id="i8089b16393db447b92471ec1576ab406_36"></div><div style="min-height:72pt;width:100%"><div><font><br></font></div></div><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:115%">John N. Hatsopoulos</font></div><div><font><br></font></div><div><font><br></font></div><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:115%">March 21, 2024</font></div><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:112%">Mr. Abinand Rangesh, CEO</font></div><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:112%">Tecogen Inc.</font></div><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:112%">45 First Ave.</font></div><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:112%">Waltham, MA  02451</font></div><div><font><br></font></div><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:112%">            Re&#58;  Extension or Conversion of Tecogen Promissory Note </font></div><div><font><br></font></div><div><font><br></font></div><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:112%">Dear Abinand&#58;</font></div><div><font><br></font></div><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:112%">            This letter confirms my agreement to&#58;  </font></div><div><font><br></font></div><div style="text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:112%">(1) extend the maturity date of the Tecogen Inc. Promissory Note in my favor dated October 10, 2023 in the original principal amount of $500,000 (the &#8220;Promissory Note&#8221;) by one year, making the maturity date October 10, 2025&#59; or </font></div><div><font><br></font></div><div style="text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:112%">(2) accept Tecogen Inc. common stock as payment in full of Tecogen&#8217;s payment obligation under the Promissory Note, consisting of the nearest whole number of shares determined by dividing (i) the outstanding principal and interest on the Promissory Note at the time of conversion of the debt to equity, by (ii) the average closing price per share for Tecogen common stock during the thirty-day period prior to the date of conversion.</font></div><div><font><br></font></div><div style="text-indent:180pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:112%">Sincerely,</font></div><div><font><br></font></div><div style="text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:112%">                                                &#47;s&#47; John N. Hatsopoulos</font></div><div><font><br></font></div><div style="text-indent:180pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:112%">John N. Hatsopoulos</font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><font><br></font></div></div></div></body></html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-19
<SEQUENCE>3
<FILENAME>tgn-20241231xex191.htm
<DESCRIPTION>EX-19
<TEXT>
<html><head>
<!-- Document created using Wdesk -->
<!-- Copyright 2025 Workiva -->
<title>Document</title></head><body><div id="i4c71f96a2c6b471d90b00f0a78c8c4c9_1"></div><div style="min-height:42.75pt;width:100%"><div><font><br></font></div></div><div style="text-align:right"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Exhibit 19.1</font></div><div><font><br></font></div><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:112%">Tecogen Inc. Policy Regarding Insider Trading</font></div><div><font><br></font></div><div style="margin-bottom:6pt;text-align:justify;text-indent:51.85pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">This Insider Trading Policy describes the standards of Tecogen Inc (the &#34;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Company</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#34;) on trading, and causing the trading of, the Company's securities or securities of certain other publicly-traded companies while in possession of confidential information. This policy  is divided into two parts&#58; the first part prohibits trading in certain circumstances and applies to all directors, officers, employees, and consultants of the Company and the second part imposes special additional trading restrictions and applies to all (i) directors of the Company, (ii) executive officers of the Company, (iii) management of the Company, (iv) former directors, officers, or management serving as consultants to the Company, (v) anyone else the Company&#8217;s Legal Department designates from to time (collectively, &#34;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Covered Persons</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#34;).</font></div><div style="margin-bottom:6pt;text-align:justify;text-indent:51.85pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">One of the principal purposes of the federal securities laws is to prohibit so-called &#34;insider trading.&#34; Simply stated, insider trading occurs when a person uses material non-public information obtained through involvement with the Company to make decisions to purchase,  sell, give away or otherwise trade the Company's securities or to provide that information to others outside the Company. The prohibitions against insider trading apply to trades, tips and recommendations by virtually any person, including all persons associated with the Company, if the information involved is &#34;material&#34; and &#34;non-public.&#34; These terms are defined in this Policy under Part I, Section 3 below. The prohibitions would apply to any director, officer or employee who buys or sells Company stock on the basis of material non-public information that he or she obtained about the Company, its customers, suppliers, or other companies with which the Company has contractual relationships or may be negotiating transactions.</font></div><div style="margin-bottom:6pt;text-align:center;text-indent:226.6pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">PART I</font></div><div style="margin-bottom:6pt;text-align:center;text-indent:226.6pt"><font><br></font></div><div style="margin-bottom:6pt;padding-left:49.5pt;text-indent:-18pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">1.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%;padding-left:10.5pt;text-decoration:underline">Applicability</font></div><div style="margin-bottom:6pt;text-align:justify;text-indent:51.85pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">This Policy applies to all transactions in the Company's securities, including common stock, options and any other securities that the Company may issue, such as preferred stock, notes, bonds and convertible securities, as well as to derivative securities relating to any of the Company's securities, whether or not issued by the Company.</font></div><div style="margin-bottom:6pt;text-align:justify;text-indent:51.85pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">This Policy applies to all employees of the Company and its subsidiaries, all officers of the Company and its subsidiaries and all members of the Company's board of directors. This Policy also applies to all consultants of the Company</font></div><div style="margin-bottom:6pt;padding-left:49.5pt;text-indent:-18pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">2.&#160;&#160;&#160;&#160;General Policy&#58; No Trading or Causing Trading While in Possession of Material Non- public Information</font></div><div style="margin-bottom:6pt;padding-left:72pt;text-align:justify;text-indent:-18pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">a.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:11.07pt">No director, officer or employee or consultants may purchase or sell any Company security, whether or not issued by the Company, while in possession of material non-public information about the Company. (The terms &#34;material&#34; and &#34;non-public&#34; are defined in Part I, Section 3(a) and (b) below.)</font></div><div style="margin-bottom:6pt;padding-left:72pt;text-align:justify;text-indent:-18pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">b.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:10.5pt">No director, officer, employee or consultant who knows of any material non-public information about the Company may communicate that information to any other person, including family and friends.</font></div><div style="margin-bottom:6pt;text-indent:53.99pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In addition, no director, officer, employee or consultant may purchase or sell any security of any other company, &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;whether or not issued by the Company, while in possession of material non-public information about that company that was obtained in the course of his or her involvement with the Company. No director, officer, employee, or consultant who knows of any such material non-public information may communicate that information to any other person, including family and friends.</font></div><div style="margin-bottom:6pt;text-indent:54pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">For compliance purposes, you should never trade, tip or recommend securities (or otherwise cause the purchase or sale of securities) while in possession of information that you have reason to believe is material and non-public unless you first consult with, and obtain the advance approval of the Company&#8217;s Legal Department(which is defined in Part I, Section 3(c) below).</font></div><div style="margin-bottom:6pt;text-indent:54pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">It is highly recommended that Covered Persons &#34;pre-clear&#34; all transactions in securities of the Company in accordance with the procedures set forth in Part II, Section 3 below.</font></div><div style="margin-bottom:6pt;padding-left:54pt;text-indent:-22.5pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">3.&#160;&#160;&#160;&#160;Definitions</font></div><div style="margin-bottom:6pt;padding-left:72pt;text-align:justify;text-indent:-18pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">a.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%;padding-left:11.07pt;text-decoration:underline">Materiality</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">. </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Insider trading restrictions come into play only if the information you possess is &#34;material.&#34; Materiality, however, involves a relatively low threshold. Information is generally regarded as &#34;material&#34; if it has market significance, that is, if its public dissemination is likely to affect the market price of securities, or if it otherwise is information that a reasonable investor would want to know before making an investment decision.</font></div><div style="margin-bottom:6pt;text-indent:51.85pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Information dealing with the following subjects is reasonably likely to be found material in particular situations&#58;</font></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">1</font></div></div></div><hr style="page-break-after:always"><div style="min-height:42.75pt;width:100%"><div><font><br></font></div></div><div style="margin-bottom:6pt;padding-left:36pt;text-indent:27pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(i)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:35.57pt">significant changes in the Company's prospects&#59;</font></div><div style="margin-bottom:6pt;padding-left:36pt;text-indent:27pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(ii)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:32.8pt">significant write-downs in assets or increases in reserves&#59;</font></div><div style="margin-bottom:6pt;padding-left:36pt;text-indent:27pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(iii)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:30.03pt">developments regarding significant litigation or government agency investigations&#59;</font></div><div style="margin-bottom:6pt;padding-left:36pt;text-indent:27pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(iv)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:30.57pt">liquidity problems&#59;</font></div><div style="margin-bottom:6pt;padding-left:36pt;text-indent:27pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(v)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:33.34pt">changes in earnings estimates or unusual gains or losses in major operations&#59;</font></div><div style="margin-bottom:6pt;padding-left:36pt;text-indent:27pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(vi)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:30.57pt">major changes in management&#59;</font></div><div style="margin-bottom:6pt;padding-left:36pt;text-indent:27pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(vii)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:27.8pt">changes in dividends&#59;</font></div><div style="margin-bottom:6pt;padding-left:36pt;text-indent:27pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(viii)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:25.03pt">extraordinary borrowings&#59;</font></div><div style="margin-bottom:6pt;padding-left:36pt;text-indent:27pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(ix)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:30.57pt">award or loss of a significant contract&#59;</font></div><div style="margin-bottom:6pt;padding-left:36pt;text-indent:27pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(x)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:33.34pt">changes in debt ratings&#59;</font></div><div style="margin-bottom:6pt;padding-left:108pt;text-align:justify;text-indent:-45pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(xi)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:30.57pt">proposals, plans or agreements, even if preliminary in nature, involving mergers, acquisitions, divestitures, recapitalizations, strategic alliances, licensing arrangements, or purchases or sales of substantial assets&#59; and</font></div><div style="margin-bottom:6pt;padding-left:36pt;text-indent:27pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(xii)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:27.8pt">offerings of Company securities.</font></div><div style="margin-bottom:6pt;text-align:justify;text-indent:51.85pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Material information is not limited to historical facts but may also include projections and forecasts. With respect to a future event, such as a merger, acquisition or introduction of a new product, the point at which negotiations or product development are determined to be material is determined by balancing the probability that the event will occur against the magnitude of the effect the event would have on a company's operations or stock price should it occur. Thus, information concerning an event that would have a large effect on stock price, such as a merger, may be material even if the possibility that the event will occur is relatively small. When in  doubt about whether particular non-public information is material, presume it is material. </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">If you are unsure whether information is material, you should consult the Company&#8217;s Legal Department before making any decision to disclose such information (other than to persons who need to know it) or to trade in or recommend securities to which that information relates.</font></div><div style="margin-bottom:6pt;padding-left:72pt;text-align:justify;text-indent:-18pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%;text-decoration:underline">b.&#160;&#160;&#160;&#160;Non-public Information</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">. </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Insider trading prohibitions come into play only when you possess information that is material and &#34;non-public.&#34; The fact that information has been disclosed to a few members of the public does not make it public for insider trading purposes. To be &#34;public&#34; the information must have been disseminated in a manner designed to reach investors generally, and the investors must be given the opportunity to absorb the information. Even after public disclosure of information about the Company, information would generally be deemed widely available to the investing public one full business days after it has been disclosed in a press release, wire service or reports or other documents filed with the SEC which are publicly available (including e.g., the Company&#8217;s annual and quarterly reports and proxy statement). Even after public disclosure you must wait until the next business day to trade on the securities involved in the non-public information.</font></div><div style="margin-bottom:6pt;padding-left:36pt;text-indent:33.9pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Non-public information may include&#58;</font></div><div style="margin-bottom:6pt;padding-left:36pt;text-indent:31.5pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(i)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:31.07pt">information available to a select group of analysts or brokers or institutional investors&#59;</font></div><div style="margin-bottom:6pt;padding-left:36pt;text-indent:31.5pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(ii)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:28.3pt">undisclosed facts that are the subject of rumors, even if the rumors are widely circulated&#59; and</font></div><div style="margin-bottom:6pt;padding-left:36pt;text-align:justify;text-indent:31.5pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(iii)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:25.53pt">information that has been entrusted to the Company on a confidential basis until a public announcement of the information has been made and enough time has elapsed for the market to respond to a public announcement of the information (normally one full trading day).</font></div><div style="margin-bottom:6pt;text-align:justify;text-indent:51.85pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As with questions of materiality, if you are not sure whether information is considered public, you should either consult with the Company&#8217;s Legal Department or assume that the information is &#34;non-public&#34; and treat it as confidential.</font></div><div style="margin-bottom:6pt;padding-left:72pt;text-align:justify;text-indent:-18pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%;text-decoration:underline">c.&#160;&#160;&#160;&#160;Legal Department</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">. </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company&#8217;s General Counsel or his designee represents the Company&#8217;s Legal Department.  The current General Counsel is Jack Whiting.  He can be reached at </font><font style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Jack.Whiting&#64;tecogen.com</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> or 781-522-6016.The duties of the Legal Department include, but are not limited to, the following&#58;</font></div><div style="margin-bottom:6pt;padding-left:36pt;text-indent:31.5pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(i)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:31.07pt">assisting with implementation and enforcement of this Policy&#59;</font></div><div style="margin-bottom:6pt;padding-left:36pt;text-indent:31.5pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(ii)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:28.3pt">circulating this Policy to all employees and ensuring that this Policy is amended as necessary to remain up-to-date with insider trading laws&#59;</font></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">2</font></div></div></div><hr style="page-break-after:always"><div style="min-height:42.75pt;width:100%"><div><font><br></font></div></div><div style="margin-bottom:6pt;padding-left:36pt;text-indent:31.5pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(iii)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:25.53pt">assisting with pre-clearing all trading in securities of the Company by Covered Persons in accordance with the procedures set forth in Part II, Section 3 below&#59; and</font></div><div style="margin-bottom:6pt;padding-left:36pt;text-indent:31.5pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(iv)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:26.07pt">providing approval of any Rule 10b5-1 plans under Part II, Section 1(c) below and any prohibited transactions under Part II, Section 4 below.</font></div><div style="margin-bottom:6pt;padding-left:54pt;text-indent:-22.5pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">4.&#160;&#160;&#160;&#160;Violations of Insider Trading Laws</font></div><div style="margin-bottom:6pt;text-align:justify;text-indent:51.85pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Penalties for trading on or communicating material non-public information can be severe, both for individuals involved in such unlawful conduct and their employers and supervisors, and may include jail terms, criminal fines, civil penalties and civil enforcement injunctions. Given the severity of the potential penalties, compliance with this Policy is absolutely mandatory.</font></div><div style="margin-bottom:6pt;padding-left:72pt;text-align:justify;text-indent:-18pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">a.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%;padding-left:11.07pt;text-decoration:underline">Legal Penalties</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">. </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">A person who violates insider trading laws by engaging in transactions in a company's securities when he or she has material non-public information can be sentenced to a substantial jail term and required to pay a criminal penalty of several times the amount of profits gained or losses avoided.</font></div><div style="margin-bottom:6pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In addition, a person who tips others may also be liable for transactions by the tippees to whom he or she has disclosed material non-public information. Tippers can be subject to the same penalties and sanctions as the tippees, and the SEC has imposed large penalties even when the tipper did not profit from the transaction.</font></div><div style="margin-bottom:6pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The SEC can also seek substantial civil penalties from any person who, at the time of an insider trading violation, &#34;directly or indirectly controlled the person who committed such violation,&#34; which would apply to the Company and&#47;or management and supervisory personnel. These control persons may be held liable for up to the greater of $1 million or three times the amount of the profits gained or losses avoided. Even for violations that result in a small or no profit, the SEC can seek penalties from a company and&#47;or its management and supervisory personnel as control persons.</font></div><div style="margin-bottom:6pt;padding-left:72pt;text-align:justify;text-indent:-18pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">b.&#160;&#160;&#160;&#160;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%;text-decoration:underline">Company-imposed Penalties</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">. </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Employees who violate this Policy may be subject to disciplinary action by the Company, including dismissal for cause. Any exceptions to the Policy, if permitted, may only be granted by the Company&#8217;s Legal Department and must be provided before any activity contrary to the above requirements takes place.</font></div><div style="margin-bottom:6pt"><font><br></font></div><div style="margin-bottom:6pt;text-align:center;text-indent:226.6pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">PART II</font></div><div style="margin-bottom:6pt;text-align:center;text-indent:226.6pt"><font><br></font></div><div style="margin-bottom:6pt;padding-left:36pt;text-indent:-18pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">1.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%;padding-left:10.5pt;text-decoration:underline">Blackout Periods</font></div><div style="margin-bottom:6pt;text-align:justify;text-indent:51.85pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">All Covered Persons are prohibited from trading in the Company's securities during blackout periods as defined below.</font></div><div style="margin-bottom:6pt;padding-left:72pt;text-align:justify;text-indent:-18pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">a.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%;padding-left:11.07pt;text-decoration:underline">Quarterly Blackout Periods</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">. </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Trading in the Company's securities is prohibited during the period beginning at the close of the market two weeks before earnings are publicly disclosed and ending at the close of business on the trading day following the date the  Company's financial results are publicly disclosed. During these periods, Covered Persons generally possess or are presumed to possess material non-public information about the Company's financial results.</font></div><div style="margin-bottom:6pt;padding-left:72pt;text-align:justify;text-indent:-18pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">b.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%;padding-left:10.5pt;text-decoration:underline">Year end Blackout Period.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Trading in the Company&#8217;s securities is prohibited during the period beginning at the close of the market on the last trading day in January of each year and ending at the close of business on the trading day following the date of the Company&#8217;s annual financial results are publicly disclosed. During this period, Covered Persons generally possess or are presumed to possess material non-public information about the Company&#8217;s financial results.</font></div><div style="margin-bottom:6pt;padding-left:72pt;text-align:justify;text-indent:-18pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">c.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%;padding-left:11.07pt;text-decoration:underline">Other Blackout Periods</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">. </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">From time to time, other types of material non-public information regarding the Company (such as negotiation of mergers, acquisitions or dispositions or new product developments) may be pending and not be publicly disclosed. While such material non-public information is pending, the Company may impose special blackout periods during which Covered Persons are prohibited from trading in the Company's securities. If the Company imposes a special blackout period, it will notify the Covered Persons affected.</font></div><div style="margin-bottom:6pt;padding-left:72pt;text-align:justify;text-indent:-18pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">d.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%;padding-left:10.5pt;text-decoration:underline">Exception</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">. </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">These trading restrictions do not apply to transactions under a pre-existing written plan, contract, instruction, or arrangement under Rule 10b5-1 (an &#34;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Approved 10b5-1 Plan</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#34;) that&#58;</font></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">3</font></div></div></div><hr style="page-break-after:always"><div style="min-height:42.75pt;width:100%"><div><font><br></font></div></div><div style="margin-bottom:6pt;padding-left:36pt;text-indent:31.5pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(i)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:31.07pt">has been reviewed and approved at least two weeks in advance of any trades thereunder by the Legal Department (or, if revised or amended, such revisions or amendments have been reviewed and approved by the Legal Department  at least two weeks in advance of any subsequent trades)&#59;</font></div><div style="margin-bottom:6pt;padding-left:36pt;text-align:justify;text-indent:31.5pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(ii)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:28.3pt">was entered into in good faith by the Covered Person at a time when the Covered Person was not in possession of material non-public information about the Company&#59; and</font></div><div style="margin-bottom:6pt;padding-left:36pt;text-align:justify;text-indent:31.5pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(iii)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:25.53pt">gives a third party the discretionary authority to execute such purchases and sales, outside the control of the Covered Person, so long as such third party does not possess any material non-public information about the Company&#59; or explicitly specifies the security or securities to be purchased or sold, the number of shares, the prices and&#47;or dates of transactions, or other formula(s) describing such transactions.</font></div><div style="margin-bottom:6pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">2.&#160;&#160;&#160;&#160;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Trading Window</font></div><div style="margin-bottom:6pt;text-align:justify;text-indent:51.85pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Covered Persons are permitted to trade in the Company's securities when no blackout period is in effect. Generally this means that Covered Persons can trade during the period beginning on the day that the blackout periods under Part II Section 1(a) end and ending on day that the next blackout period under Part II Section 1(a) begins. However, even during this trading window, a Covered Person who is in possession of any material non-public information should not trade in the Company's securities until the information has been made publicly available or is no longer material. In addition, the Company may close this trading window if a special blackout period under Part II, Section 1(b) above is imposed and will re-open the trading window once the special blackout period has ended.</font></div><div style="margin-bottom:6pt;padding-left:36pt;text-indent:-18pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">3.&#160;&#160;&#160;&#160;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Prohibited Transactions</font></div><div style="margin-bottom:6pt;text-align:justify;text-indent:51.85pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Covered Persons, including any person's spouse, other persons living in such person's household and minor children and entities over which such person exercises control, are prohibited from engaging in the following transactions in the Company's securities unless advance approval is obtained from the Company&#8217;s Legal Department &#58;</font></div><div style="margin-bottom:6pt;padding-left:36pt;text-align:justify;text-indent:31.5pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(i)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:31.07pt">Short-term trading. Covered Persons who purchase Company securities may not sell any Company securities of the same class for at least six months after the purchase&#59;</font></div><div style="margin-bottom:6pt;padding-left:36pt;text-indent:31.5pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(ii)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:28.3pt">Short sales. Covered Persons may not sell the Company's securities short&#59;</font></div><div style="margin-bottom:6pt;padding-left:36pt;text-align:justify;text-indent:31.5pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(iii)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:25.53pt">Options trading. Covered Persons may not buy or sell puts or calls or other derivative securities on the Company's securities&#59;</font></div><div style="margin-bottom:6pt;padding-left:36pt;text-align:justify;text-indent:31.5pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(iv)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:26.07pt">Trading on margin. Covered Persons may not hold Company securities in a margin account or pledge Company securities as collateral for a loan&#59; and</font></div><div style="margin-bottom:6pt;padding-left:36pt;text-align:justify;text-indent:31.5pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(v)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:28.84pt">Hedging. Covered Persons may not enter into hedging or monetization transactions or similar arrangements with respect to Company securities.</font></div><div style="margin-bottom:6pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">4.&#160;&#160;&#160;&#160;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Acknowledgment and Certification</font></div><div style="margin-bottom:6pt;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">All Covered Persons are required to sign the attached acknowledgment and certification.</font></div><div style="margin-bottom:6pt"><font><br></font></div><div style="margin-bottom:6pt;text-align:center"><font><br></font></div><div style="margin-bottom:6pt;text-align:center"><font><br></font></div><div style="margin-bottom:6pt;text-align:center"><font><br></font></div><div style="margin-bottom:6pt;text-align:center"><font><br></font></div><div style="margin-bottom:6pt;text-align:center"><font><br></font></div><div style="margin-bottom:6pt;text-align:center"><font><br></font></div><div style="margin-bottom:6pt;text-align:center"><font><br></font></div><div style="margin-bottom:6pt;text-align:center"><font><br></font></div><div style="margin-bottom:6pt;text-align:center"><font><br></font></div><div style="margin-bottom:6pt;text-align:center"><font><br></font></div><div style="margin-bottom:6pt;text-align:center"><font><br></font></div><div style="margin-bottom:6pt;text-align:center"><font><br></font></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">4</font></div></div></div><hr style="page-break-after:always"><div style="min-height:42.75pt;width:100%"><div><font><br></font></div></div><div style="margin-bottom:6pt;text-align:center"><font><br></font></div><div style="margin-bottom:6pt;text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">ACKNOWLEDGMENT AND CERTIFICATION</font></div><div style="margin-bottom:6pt"><font><br></font></div><div style="margin-bottom:6pt;text-align:justify;text-indent:51.85pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The undersigned does hereby acknowledge receipt of the Company's Insider Trading Policy. The undersigned has read and understands (or has had explained) such Policy and agrees to be governed by such Policy at all times in connection with the purchase and sale of securities and the confidentiality of non-public information.</font></div><div style="margin-bottom:6pt"><font><br></font></div><div style="margin-bottom:6pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:80.994%"><tr><td style="width:1.0%"></td><td style="width:98.900%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><font><br></font></div><div style="text-indent:225.85pt"><font><br></font></div><div style="text-indent:226.1pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:124%">(Signature)</font></div></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><font><br></font></div><div style="text-indent:225.85pt"><font><br></font></div><div style="text-indent:226.1pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:124%">(Please print name)</font></div></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;text-indent:10pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:116%">Date&#58;</font></td></tr></table></div><div style="margin-bottom:6pt"><font><br></font></div><div style="margin-bottom:6pt"><font><br></font></div><div style="margin-bottom:6pt"><font><br></font></div><div style="margin-bottom:6pt"><font><br></font></div><div><font><br></font></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">5</font></div></div></div></body></html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-23.1
<SEQUENCE>4
<FILENAME>tgn-20241231xex231.htm
<DESCRIPTION>EX-23.1
<TEXT>
<html><head>
<!-- Document created using Wdesk -->
<!-- Copyright 2025 Workiva -->
<title>Document</title></head><body><div id="i8aca0be88b274efa86ab28cf71b8153a_1"></div><div style="min-height:42.75pt;width:100%"><div><font><br></font></div></div><div style="text-align:right"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Exhibit 23.1</font></div><div><font><br></font></div><div><font><br></font></div><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Consent of Independent Registered Public Accounting Firm</font></div><div><font><br></font></div><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We consent to the incorporation by reference in the Registration Statements (Nos. 333-265799, 333-218244 and 333-187928) on Form S-8,  the Registration Statements (Nos. 333-205147 and 333-212433) on Form S-3 and the Post-Effective Amendment No. 2 on Form S-3 (Registration No. 333-212433) on Form S-1 of Tecogen Inc. (&#34;the Company&#34;) of our report dated&#160;March&#160;18, 2025, relating to the consolidated financial statements of the Company, appearing in this Annual Report on Form 10-K for the year ended&#160;December&#160;31, 2024.</font></div><div><font><br></font></div><div><font><br></font></div><div><font><br></font></div><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#47;s&#47; Wolf &#38; Company, P.C.</font></div><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Boston, Massachusetts</font></div><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">March&#160;18, 2025 </font></div><div><font><br></font></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><font><br></font></div></div></div></body></html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-31.1
<SEQUENCE>5
<FILENAME>tgn-20241231xex311.htm
<DESCRIPTION>EX-31.1
<TEXT>
<html><head>
<!-- Document created using Wdesk -->
<!-- Copyright 2025 Workiva -->
<title>Document</title></head><body><div id="i6de8a9e61ad545a78303830d316b20d7_1"></div><div style="min-height:42.75pt;width:100%"><div><font><br></font></div></div><div style="text-align:right"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">EXHIBIT 31.1</font></div><div style="text-align:center"><font><br></font></div><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">TECOGEN INC.</font></div><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">CERTIFICATION REQUIRED BY EXCHANGE ACT RULES 13a-14(a) and 15d-14(a),</font></div><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">AS ADOPTED PURSUANT TO</font></div><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">SECTION 302 OF THE SARBANES-OXLEY ACT OF 2002</font></div><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#160;</font></div><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">I, Abinand Rangesh, certify that&#58;</font></div><div><font><br></font></div><div style="padding-left:36pt;text-indent:-18pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">1.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:10.5pt">I have reviewed this Annual Report on Form 10-K of Tecogen Inc.&#59;</font></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">2.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:10.5pt">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&#59;</font></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">3.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:10.5pt">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&#59;</font></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">4.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:10.5pt">The registrant&#8217;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&#58;</font></div><div style="margin-top:9pt;padding-left:72pt;text-indent:-18pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">a.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:11.07pt">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&#59;</font></div><div style="margin-top:9pt;padding-left:72pt;text-indent:-18pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">b.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:10.5pt">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&#59;</font></div><div style="margin-top:9pt;padding-left:72pt;text-indent:-18pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">c.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:11.07pt">Evaluated the effectiveness of the registrant&#8217;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&#59; and</font></div><div style="margin-top:9pt;padding-left:72pt;text-indent:-18pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">d.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:10.5pt">Disclosed in this report any change in the registrant&#8217;s internal control over financial reporting that occurred during the registrant&#8217;s most recent fiscal quarter (the registrant&#8217;s fourth fiscal quarter in the case of an annual report) that has materially affected, or is reasonably likely to materially affect, the registrant&#8217;s internal control over financial reporting.</font></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">5.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:10.5pt">The registrant&#8217;s other certifying officer(s) and I have disclosed, based on our most recent evaluation of internal control over financial reporting, to the registrant&#8217;s auditors and the audit committee of the registrant&#8217;s board of directors (or persons performing the equivalent functions)&#58;</font></div><div style="margin-top:9pt;padding-left:72pt;text-indent:-18pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">a.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:11.07pt">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&#8217;s ability to record, process, summarize and report financial information&#59; and</font></div><div style="margin-top:9pt;padding-left:72pt;text-indent:-18pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">b.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:10.5pt">Any fraud, whether or not material, that involves management or other employees who have a significant role in the registrant&#8217;s internal control over financial reporting.</font></div><div><font><br></font></div><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Date&#58; March&#160;18, 2025 </font></div><div><font><br></font></div><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">&#47;s&#47; Abinand Rangesh</font></div><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Abinand Rangesh</font></div><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Chief Executive and Financial Officer</font></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><font><br></font></div></div></div></body></html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-32.1
<SEQUENCE>6
<FILENAME>tgn-20241231xex321.htm
<DESCRIPTION>EX-32.1
<TEXT>
<html><head>
<!-- Document created using Wdesk -->
<!-- Copyright 2025 Workiva -->
<title>Document</title></head><body><div id="ia872bacd1966447cbe38264d40f6892f_1"></div><div style="min-height:42.75pt;width:100%"><div><font><br></font></div></div><div><font><br></font></div><div style="text-align:right"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">EXHIBIT 32.1</font></div><div style="text-align:center"><font><br></font></div><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">TECOGEN INC.</font></div><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">CERTIFICATION REQUIRED BY EXCHANGE ACT RULES 13a-14(b) and 15d-14(b),</font></div><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">AS ADOPTED PURSUANT TO</font></div><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">SECTION 906 OF THE SARBANES-OXLEY ACT OF 2002</font></div><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#160;</font></div><div style="text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#160;&#160;&#160;&#160;I, Abinand Rangesh, Chief Executive and Financial Officer, of Tecogen Inc., or the Company, certify, pursuant to Section 1350, Chapter 63 of Title 18, United States Code that, to his knowledge&#58;</font></div><div style="text-align:justify"><font><br></font></div><div style="padding-left:36pt;text-align:justify;text-indent:-18pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">1.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:10.5pt">The Annual Report on Form 10-K of the Company for the year ended December 31, 2024 (the &#8220;Report&#8221;) fully complies with the requirements of Section 13(a) or 15(d) of the Securities Exchange Act of 1934 (15 U.S.C. 78 m or 78o(d))&#59; and</font></div><div style="padding-left:36pt;text-align:justify;text-indent:-18pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">2.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:10.5pt">The information contained in the Report fairly presents, in all material respects, the financial condition and results of operations of the Company.</font></div><div style="text-align:center"><font><br></font></div><div style="text-align:center"><font><br></font></div><div><font><br></font></div><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Date&#58; March&#160;18, 2025 </font></div><div><font><br></font></div><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">&#47;s&#47; Abinand Rangesh</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#160;&#160;&#160;&#160;</font></div><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Abinand Rangesh</font></div><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Chief Executive and Financial Officer</font></div><div style="text-indent:36pt"><font><br></font></div><div><font><br></font></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><font><br></font></div></div></div></body></html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.SCH
<SEQUENCE>7
<FILENAME>tgen-20241231.xsd
<DESCRIPTION>XBRL TAXONOMY EXTENSION SCHEMA DOCUMENT
<TEXT>
<XBRL>
<?xml version="1.0" encoding="UTF-8"?>

<!--XBRL Document Created with the Workiva Platform-->
<!--Copyright 2025 Workiva-->
<!--r:27a45c8e-ccb7-4ee0-baf8-e027f6202253,g:a67c4460-f12d-456b-86fe-b4f9ec620b6c-->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:tgen="http://www.tecogen.com/20241231" xmlns:xbrli="http://www.xbrl.org/2003/instance" xmlns:dtr-types1="http://www.xbrl.org/dtr/type/2020-01-21" xmlns:dtr-types="http://www.xbrl.org/dtr/type/2022-03-31" xmlns:xbrldt="http://xbrl.org/2005/xbrldt" attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://www.tecogen.com/20241231">
  <xs:import namespace="http://fasb.org/srt/2024" schemaLocation="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd"/>
  <xs:import namespace="http://fasb.org/us-gaap/2024" schemaLocation="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd"/>
  <xs:import namespace="http://www.xbrl.org/2003/instance" schemaLocation="http://www.xbrl.org/2003/xbrl-instance-2003-12-31.xsd"/>
  <xs:import namespace="http://www.xbrl.org/2003/linkbase" schemaLocation="http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd"/>
  <xs:import namespace="http://www.xbrl.org/dtr/type/2020-01-21" schemaLocation="https://www.xbrl.org/dtr/type/2020-01-21/types.xsd"/>
  <xs:import namespace="http://www.xbrl.org/dtr/type/2022-03-31" schemaLocation="https://www.xbrl.org/dtr/type/2022-03-31/types.xsd"/>
  <xs:import namespace="http://xbrl.org/2005/xbrldt" schemaLocation="http://www.xbrl.org/2005/xbrldt-2005.xsd"/>
  <xs:import namespace="http://xbrl.sec.gov/cyd-af-sub/2024" schemaLocation="https://xbrl.sec.gov/cyd/2024/cyd-af-sub-2024.xsd"/>
  <xs:import namespace="http://xbrl.sec.gov/dei/2024" schemaLocation="https://xbrl.sec.gov/dei/2024/dei-2024.xsd"/>
  <xs:import namespace="http://xbrl.sec.gov/ecd/2024" schemaLocation="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd"/>
  <xs:annotation>
    <xs:appinfo>
      <link:linkbaseRef xmlns:xlink="http://www.w3.org/1999/xlink" xlink:arcrole="http://www.w3.org/1999/xlink/properties/linkbase" xlink:href="tgen-20241231_pre.xml" xlink:role="http://www.xbrl.org/2003/role/presentationLinkbaseRef" xlink:type="simple"/>
      <link:linkbaseRef xmlns:xlink="http://www.w3.org/1999/xlink" xlink:arcrole="http://www.w3.org/1999/xlink/properties/linkbase" xlink:href="tgen-20241231_def.xml" xlink:role="http://www.xbrl.org/2003/role/definitionLinkbaseRef" xlink:type="simple"/>
      <link:linkbaseRef xmlns:xlink="http://www.w3.org/1999/xlink" xlink:arcrole="http://www.w3.org/1999/xlink/properties/linkbase" xlink:href="tgen-20241231_lab.xml" xlink:role="http://www.xbrl.org/2003/role/labelLinkbaseRef" xlink:type="simple"/>
      <link:linkbaseRef xmlns:xlink="http://www.w3.org/1999/xlink" xlink:arcrole="http://www.w3.org/1999/xlink/properties/linkbase" xlink:href="tgen-20241231_cal.xml" xlink:role="http://www.xbrl.org/2003/role/calculationLinkbaseRef" xlink:type="simple"/>
      <link:roleType id="Cover" roleURI="http://www.tecogen.com/role/Cover">
        <link:definition>0000001 - Document - Cover</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="AuditInformation" roleURI="http://www.tecogen.com/role/AuditInformation">
        <link:definition>0000002 - Document - Audit Information</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="ConsolidatedBalanceSheets" roleURI="http://www.tecogen.com/role/ConsolidatedBalanceSheets">
        <link:definition>9952151 - Statement - Consolidated Balance Sheets</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="ConsolidatedBalanceSheetsParenthetical" roleURI="http://www.tecogen.com/role/ConsolidatedBalanceSheetsParenthetical">
        <link:definition>9952152 - Statement - Consolidated Balance Sheets (Parenthetical)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="ConsolidatedStatementsofOperations" roleURI="http://www.tecogen.com/role/ConsolidatedStatementsofOperations">
        <link:definition>9952153 - Statement - Consolidated Statements of Operations</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="ConsolidatedStatementsofStockholdersEquity" roleURI="http://www.tecogen.com/role/ConsolidatedStatementsofStockholdersEquity">
        <link:definition>9952154 - Statement - Consolidated Statements of Stockholders' Equity</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="ConsolidatedStatementsofStockholdersEquityParenthetical" roleURI="http://www.tecogen.com/role/ConsolidatedStatementsofStockholdersEquityParenthetical">
        <link:definition>9952155 - Statement - Consolidated Statements of Stockholders' Equity Parenthetical</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="ConsolidatedStatementsofCashFlows" roleURI="http://www.tecogen.com/role/ConsolidatedStatementsofCashFlows">
        <link:definition>9952156 - Statement - Consolidated Statements of Cash Flows</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="Natureofbusinessandoperations" roleURI="http://www.tecogen.com/role/Natureofbusinessandoperations">
        <link:definition>9952157 - Disclosure - Nature of business and operations</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="Summaryofsignificantaccountingpolicies" roleURI="http://www.tecogen.com/role/Summaryofsignificantaccountingpolicies">
        <link:definition>9952158 - Disclosure - Summary of significant accounting policies</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="Losspercommonshare" roleURI="http://www.tecogen.com/role/Losspercommonshare">
        <link:definition>9952159 - Disclosure - Loss per common share</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="AcquisitionofAmericanDGEnergyIncNotes" roleURI="http://www.tecogen.com/role/AcquisitionofAmericanDGEnergyIncNotes">
        <link:definition>9952160 - Disclosure - Acquisition of American DG Energy Inc. (Notes)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="AegisContractandRelatedAssetAcquisition" roleURI="http://www.tecogen.com/role/AegisContractandRelatedAssetAcquisition">
        <link:definition>9952161 - Disclosure - Aegis Contract and Related Asset Acquisition</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="SaleofEnergyProducingAssetsandGoodwillImpairment" roleURI="http://www.tecogen.com/role/SaleofEnergyProducingAssetsandGoodwillImpairment">
        <link:definition>9952162 - Disclosure - Sale of Energy Producing Assets and Goodwill Impairment</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="Inventory" roleURI="http://www.tecogen.com/role/Inventory">
        <link:definition>9952163 - Disclosure - Inventory</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="Intangibleassetsandliabilitiesotherthangoodwill" roleURI="http://www.tecogen.com/role/Intangibleassetsandliabilitiesotherthangoodwill">
        <link:definition>9952164 - Disclosure - Intangible assets and liabilities other than goodwill</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="Propertyplantandequipment" roleURI="http://www.tecogen.com/role/Propertyplantandequipment">
        <link:definition>9952165 - Disclosure - Property, plant and equipment</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="GoodwillNotes" roleURI="http://www.tecogen.com/role/GoodwillNotes">
        <link:definition>9952166 - Disclosure - Goodwill (Notes)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="RelatedPartyNotes" roleURI="http://www.tecogen.com/role/RelatedPartyNotes">
        <link:definition>9952167 - Disclosure - Related Party Notes</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="Commitmentsandcontingencies" roleURI="http://www.tecogen.com/role/Commitmentsandcontingencies">
        <link:definition>9952168 - Disclosure - Commitments and contingencies</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="Productwarranty" roleURI="http://www.tecogen.com/role/Productwarranty">
        <link:definition>9952169 - Disclosure - Product warranty</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="Leases" roleURI="http://www.tecogen.com/role/Leases">
        <link:definition>9952170 - Disclosure - Leases</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="Stockholdersequity" roleURI="http://www.tecogen.com/role/Stockholdersequity">
        <link:definition>9952171 - Disclosure - Stockholders' equity</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="FairValueMeasurementsNotes" roleURI="http://www.tecogen.com/role/FairValueMeasurementsNotes">
        <link:definition>9952172 - Disclosure - Fair Value Measurements (Notes)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="Retirementplans" roleURI="http://www.tecogen.com/role/Retirementplans">
        <link:definition>9952173 - Disclosure - Retirement plans</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="SegmentsNotes" roleURI="http://www.tecogen.com/role/SegmentsNotes">
        <link:definition>9952174 - Disclosure - Segments (Notes)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="Incometaxes" roleURI="http://www.tecogen.com/role/Incometaxes">
        <link:definition>9952175 - Disclosure - Income taxes</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="SubsequentEvents" roleURI="http://www.tecogen.com/role/SubsequentEvents">
        <link:definition>9952176 - Disclosure - Subsequent Events</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="SummaryofsignificantaccountingpoliciesPolicies" roleURI="http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesPolicies">
        <link:definition>9955511 - Disclosure - Summary of significant accounting policies (Policies)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="SummaryofsignificantaccountingpoliciesSummaryofSignificantAccountingPoliciesTables" roleURI="http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesSummaryofSignificantAccountingPoliciesTables">
        <link:definition>9955512 - Disclosure - Summary of significant accounting policies Summary of Significant Accounting Policies (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="LosspercommonshareTables" roleURI="http://www.tecogen.com/role/LosspercommonshareTables">
        <link:definition>9955513 - Disclosure - Loss per common share (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="AegisContractandRelatedAssetAcquisitionTables" roleURI="http://www.tecogen.com/role/AegisContractandRelatedAssetAcquisitionTables">
        <link:definition>9955514 - Disclosure - Aegis Contract and Related Asset Acquisition (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="InventoryTables" roleURI="http://www.tecogen.com/role/InventoryTables">
        <link:definition>9955515 - Disclosure - Inventory (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="IntangibleassetsandliabilitiesotherthangoodwillTables" roleURI="http://www.tecogen.com/role/IntangibleassetsandliabilitiesotherthangoodwillTables">
        <link:definition>9955516 - Disclosure - Intangible assets and liabilities other than goodwill (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="PropertyplantandequipmentTables" roleURI="http://www.tecogen.com/role/PropertyplantandequipmentTables">
        <link:definition>9955517 - Disclosure - Property, plant and equipment (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="GoodwillTables" roleURI="http://www.tecogen.com/role/GoodwillTables">
        <link:definition>9955518 - Disclosure - Goodwill (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="ProductwarrantyTables" roleURI="http://www.tecogen.com/role/ProductwarrantyTables">
        <link:definition>9955519 - Disclosure - Product warranty (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="LeasesTables" roleURI="http://www.tecogen.com/role/LeasesTables">
        <link:definition>9955520 - Disclosure - Leases (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="StockholdersequityTables" roleURI="http://www.tecogen.com/role/StockholdersequityTables">
        <link:definition>9955521 - Disclosure - Stockholders' equity (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="FairValueMeasurementsTables" roleURI="http://www.tecogen.com/role/FairValueMeasurementsTables">
        <link:definition>9955522 - Disclosure - Fair Value Measurements (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="SegmentsTables" roleURI="http://www.tecogen.com/role/SegmentsTables">
        <link:definition>9955523 - Disclosure - Segments (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="IncometaxesTables" roleURI="http://www.tecogen.com/role/IncometaxesTables">
        <link:definition>9955524 - Disclosure - Income taxes (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="NatureofbusinessandoperationsDetails" roleURI="http://www.tecogen.com/role/NatureofbusinessandoperationsDetails">
        <link:definition>9955525 - Disclosure - Nature of business and operations (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="SummaryofsignificantaccountingpoliciesAdditionalInformationDetails" roleURI="http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesAdditionalInformationDetails">
        <link:definition>9955526 - Disclosure - Summary of significant accounting policies - Additional Information (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="SummaryofsignificantaccountingpoliciesAdditionalInformationDetails_1" roleURI="http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesAdditionalInformationDetails_1">
        <link:definition>9955526 - Disclosure - Summary of significant accounting policies - Additional Information (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="SummaryofsignificantaccountingpoliciesConcentrationofCreditRiskDetails" roleURI="http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesConcentrationofCreditRiskDetails">
        <link:definition>9955527 - Disclosure - Summary of significant accounting policies - Concentration of Credit Risk (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="SummaryofsignificantaccountingpoliciesPropertyPlantandEquipmentDetails" roleURI="http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesPropertyPlantandEquipmentDetails">
        <link:definition>9955528 - Disclosure - Summary of significant accounting policies - Property, Plant and Equipment (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="SummaryofsignificantaccountingpoliciesRevenueDetails" roleURI="http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesRevenueDetails">
        <link:definition>9955529 - Disclosure - Summary of significant accounting policies - Revenue (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="LosspercommonshareScheduleofLossPerCommonShareBasicandDilutedDetails" roleURI="http://www.tecogen.com/role/LosspercommonshareScheduleofLossPerCommonShareBasicandDilutedDetails">
        <link:definition>9955530 - Disclosure - Loss per common share - Schedule of Loss Per Common Share, Basic and Diluted (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="AcquisitionofAmericanDGEnergyIncDetails" roleURI="http://www.tecogen.com/role/AcquisitionofAmericanDGEnergyIncDetails">
        <link:definition>9955531 - Disclosure - Acquisition of American DG Energy Inc. (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="AegisContractandRelatedAssetAcquisitionDetails" roleURI="http://www.tecogen.com/role/AegisContractandRelatedAssetAcquisitionDetails">
        <link:definition>9955532 - Disclosure - Aegis Contract and Related Asset Acquisition (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="SaleofADGAssetsDetails" roleURI="http://www.tecogen.com/role/SaleofADGAssetsDetails">
        <link:definition>9955533 - Disclosure - Sale of ADG Assets (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="InventorySummaryofInventoryDetails" roleURI="http://www.tecogen.com/role/InventorySummaryofInventoryDetails">
        <link:definition>9955534 - Disclosure - Inventory - Summary of Inventory (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="IntangibleassetsandliabilitiesotherthangoodwillNarrativeDetails" roleURI="http://www.tecogen.com/role/IntangibleassetsandliabilitiesotherthangoodwillNarrativeDetails">
        <link:definition>9955535 - Disclosure - Intangible assets and liabilities other than goodwill - Narrative (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="IntangibleassetsotherthangoodwillScheduleofIntangibleAssetsDetails" roleURI="http://www.tecogen.com/role/IntangibleassetsotherthangoodwillScheduleofIntangibleAssetsDetails">
        <link:definition>9955536 - Disclosure - Intangible assets other than goodwill - Schedule of Intangible Assets (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="IntangibleassetsandliabilitiesotherthangoodwillScheduleofAggregateFutureAmortizationDetails" roleURI="http://www.tecogen.com/role/IntangibleassetsandliabilitiesotherthangoodwillScheduleofAggregateFutureAmortizationDetails">
        <link:definition>9955537 - Disclosure - Intangible assets and liabilities other than goodwill - Schedule of Aggregate Future Amortization (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="PropertyplantandequipmentSummaryofPropertyandEquipmentDetails" roleURI="http://www.tecogen.com/role/PropertyplantandequipmentSummaryofPropertyandEquipmentDetails">
        <link:definition>9955538 - Disclosure - Property, plant and equipment - Summary of Property and Equipment (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="PropertyplantandequipmentNarrativeDetails" roleURI="http://www.tecogen.com/role/PropertyplantandequipmentNarrativeDetails">
        <link:definition>9955539 - Disclosure - Property, plant and equipment - Narrative (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="GoodwillScheduleofGoodwillDetails" roleURI="http://www.tecogen.com/role/GoodwillScheduleofGoodwillDetails">
        <link:definition>9955540 - Disclosure - Goodwill - Schedule of Goodwill (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="GoodwillNarrativeDetails" roleURI="http://www.tecogen.com/role/GoodwillNarrativeDetails">
        <link:definition>9955541 - Disclosure - Goodwill - Narrative (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="RelatedPartyNotesDetails" roleURI="http://www.tecogen.com/role/RelatedPartyNotesDetails">
        <link:definition>9955542 - Disclosure - Related Party Notes (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="CommitmentsandcontingenciesDetails" roleURI="http://www.tecogen.com/role/CommitmentsandcontingenciesDetails">
        <link:definition>9955543 - Disclosure - Commitments and contingencies (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="ProductwarrantyScheduleofProductWarrantyReserveDetails" roleURI="http://www.tecogen.com/role/ProductwarrantyScheduleofProductWarrantyReserveDetails">
        <link:definition>9955544 - Disclosure - Product warranty - Schedule of Product Warranty Reserve (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="LeasesNarrativeDetails" roleURI="http://www.tecogen.com/role/LeasesNarrativeDetails">
        <link:definition>9955545 - Disclosure - Leases - Narrative (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="LeasesSupplementalInformationforOperatingLeasesDetails" roleURI="http://www.tecogen.com/role/LeasesSupplementalInformationforOperatingLeasesDetails">
        <link:definition>9955546 - Disclosure - Leases - Supplemental Information for Operating Leases (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="LeasesSupplementalInformationforFinanceLeasesDetails" roleURI="http://www.tecogen.com/role/LeasesSupplementalInformationforFinanceLeasesDetails">
        <link:definition>9955547 - Disclosure - Leases - Supplemental Information for Finance Leases (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="LeasesSupplementalBalanceSheetInformationDetails" roleURI="http://www.tecogen.com/role/LeasesSupplementalBalanceSheetInformationDetails">
        <link:definition>9955548 - Disclosure - Leases - Supplemental Balance Sheet Information (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="LeasesFutureMinimumLeaseCommitmentsDetails" roleURI="http://www.tecogen.com/role/LeasesFutureMinimumLeaseCommitmentsDetails">
        <link:definition>9955549 - Disclosure - Leases - Future Minimum Lease Commitments (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="LeasesFutureMinimumLeaseCommitmentsDetails_1" roleURI="http://www.tecogen.com/role/LeasesFutureMinimumLeaseCommitmentsDetails_1">
        <link:definition>9955549 - Disclosure - Leases - Future Minimum Lease Commitments (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="StockholdersequityCommonStockandReceivablefromShareholderDetails" roleURI="http://www.tecogen.com/role/StockholdersequityCommonStockandReceivablefromShareholderDetails">
        <link:definition>9955550 - Disclosure - Stockholders' equity - Common Stock and Receivable from Shareholder (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="StockholdersequityStockBasedCompensationDetails" roleURI="http://www.tecogen.com/role/StockholdersequityStockBasedCompensationDetails">
        <link:definition>9955551 - Disclosure - Stockholders' equity - Stock-Based Compensation (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="StockholdersequityStockOptionActivityDetails" roleURI="http://www.tecogen.com/role/StockholdersequityStockOptionActivityDetails">
        <link:definition>9955552 - Disclosure - Stockholders' equity - Stock Option Activity (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="StockholdersequityWeightedAverageAssumptionsDetails" roleURI="http://www.tecogen.com/role/StockholdersequityWeightedAverageAssumptionsDetails">
        <link:definition>9955553 - Disclosure - Stockholders' equity - Weighted Average Assumptions (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="FairValueMeasurementsScheduleofAssetReportedinConsolidatedBalanceSheetMeasuredatFairValueonRecurringBasisDetails" roleURI="http://www.tecogen.com/role/FairValueMeasurementsScheduleofAssetReportedinConsolidatedBalanceSheetMeasuredatFairValueonRecurringBasisDetails">
        <link:definition>9955554 - Disclosure - Fair Value Measurements - Schedule of Asset Reported in Consolidated Balance Sheet Measured at Fair Value on Recurring Basis (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="FairValueMeasuresandDisclosuresScheduleofChangesinLevel2AssetsDetails" roleURI="http://www.tecogen.com/role/FairValueMeasuresandDisclosuresScheduleofChangesinLevel2AssetsDetails">
        <link:definition>9955555 - Disclosure - Fair Value Measures and Disclosures - Schedule of Changes in Level 2 Assets (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="FairValueMeasurementsNarrativeDetails" roleURI="http://www.tecogen.com/role/FairValueMeasurementsNarrativeDetails">
        <link:definition>9955556 - Disclosure - Fair Value Measurements - Narrative (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="RetirementplansDetails" roleURI="http://www.tecogen.com/role/RetirementplansDetails">
        <link:definition>9955557 - Disclosure - Retirement plans (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="SegmentsDetails" roleURI="http://www.tecogen.com/role/SegmentsDetails">
        <link:definition>9955558 - Disclosure - Segments (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="IncometaxesReconciliationofFederalStatutoryIncomeTaxProvisiontoCompanysActualProvisionDetails" roleURI="http://www.tecogen.com/role/IncometaxesReconciliationofFederalStatutoryIncomeTaxProvisiontoCompanysActualProvisionDetails">
        <link:definition>9955559 - Disclosure - Income taxes - Reconciliation of Federal Statutory Income Tax Provision to Company's Actual Provision (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="IncometaxesScheduleofDeferredTaxAssetsDetails" roleURI="http://www.tecogen.com/role/IncometaxesScheduleofDeferredTaxAssetsDetails">
        <link:definition>9955560 - Disclosure - Income taxes - Schedule of Deferred Tax Assets (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="IncometaxesNarrativeDetails" roleURI="http://www.tecogen.com/role/IncometaxesNarrativeDetails">
        <link:definition>9955561 - Disclosure - Income taxes - Narrative (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="SubsequentEventsDetails" roleURI="http://www.tecogen.com/role/SubsequentEventsDetails">
        <link:definition>9955562 - Disclosure - Subsequent Events (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
    </xs:appinfo>
  </xs:annotation>
  <xs:element id="tgen_AuditInformationAbstract" abstract="true" name="AuditInformationAbstract" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="xbrli:stringItemType"/>
  <xs:element id="tgen_EmployeeRetentionCreditCurrent" abstract="false" name="EmployeeRetentionCreditCurrent" nillable="true" xbrli:periodType="instant" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="tgen_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedFinancialLiabilitiesCurrent" abstract="false" name="BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedFinancialLiabilitiesCurrent" nillable="true" xbrli:periodType="instant" xbrli:balance="credit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="tgen_InterestAndOtherIncomeExpense" abstract="false" name="InterestAndOtherIncomeExpense" nillable="true" xbrli:periodType="duration" xbrli:balance="credit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="tgen_IncomeTaxExpenseBenefitState" abstract="false" name="IncomeTaxExpenseBenefitState" nillable="true" xbrli:periodType="duration" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="tgen_NoncashInterestExpense" abstract="false" name="NoncashInterestExpense" nillable="true" xbrli:periodType="duration" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="tgen_IncreaseDecreaseInPrepaidExpenseAndOtherCurrentAssets" abstract="false" name="IncreaseDecreaseInPrepaidExpenseAndOtherCurrentAssets" nillable="true" xbrli:periodType="duration" xbrli:balance="credit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="tgen_PaymentsToNoncontrollingInterestsInvestingActivities" abstract="false" name="PaymentsToNoncontrollingInterestsInvestingActivities" nillable="true" xbrli:periodType="duration" xbrli:balance="credit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="tgen_VehiclesAcquiredUnderFinanceLeases" abstract="false" name="VehiclesAcquiredUnderFinanceLeases" nillable="true" xbrli:periodType="duration" xbrli:balance="credit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="tgen_AssetAcquisitionConsiderationTransferredNonCashAccountsReceivableCredit" abstract="false" name="AssetAcquisitionConsiderationTransferredNonCashAccountsReceivableCredit" nillable="true" xbrli:periodType="duration" xbrli:balance="credit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="tgen_AssetAcquisitionConsiderationTransferredNonCashAccountsPayable" abstract="false" name="AssetAcquisitionConsiderationTransferredNonCashAccountsPayable" nillable="true" xbrli:periodType="duration" xbrli:balance="credit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="tgen_AssetAcquisitionConsiderationTransferredNonCashContingentConsideration" abstract="false" name="AssetAcquisitionConsiderationTransferredNonCashContingentConsideration" nillable="true" xbrli:periodType="duration" xbrli:balance="credit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="tgen_AssetAcquisitionConsiderationTransferredNonCash" abstract="false" name="AssetAcquisitionConsiderationTransferredNonCash" nillable="true" xbrli:periodType="duration" xbrli:balance="credit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="tgen_PrinciplesOfConsolidationAndBasisOfPresentationPolicyTextBlock" abstract="false" name="PrinciplesOfConsolidationAndBasisOfPresentationPolicyTextBlock" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:textBlockItemType"/>
  <xs:element id="tgen_ContingentConsiderationArrangementsPolicyPolicyTextBlock" abstract="false" name="ContingentConsiderationArrangementsPolicyPolicyTextBlock" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:textBlockItemType"/>
  <xs:element id="tgen_AssetsAndLiabilitiesLesseeTableTextBlock" abstract="false" name="AssetsAndLiabilitiesLesseeTableTextBlock" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:textBlockItemType"/>
  <xs:element id="tgen_JohnN.HatsopoulosAndEarlR.LewisIIIMember" abstract="true" name="JohnN.HatsopoulosAndEarlR.LewisIIIMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
  <xs:element id="tgen_EarlR.LewisIIIMember" abstract="true" name="EarlR.LewisIIIMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
  <xs:element id="tgen_WorkingCapitalNet" abstract="false" name="WorkingCapitalNet" nillable="true" xbrli:periodType="instant" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="tgen_IncreaseDecreaseInWorkingCapital" abstract="false" name="IncreaseDecreaseInWorkingCapital" nillable="true" xbrli:periodType="duration" xbrli:balance="credit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="tgen_OrderOrProductionBacklogValue" abstract="false" name="OrderOrProductionBacklogValue" nillable="true" xbrli:periodType="instant" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="tgen_Backlog" abstract="false" name="Backlog" nillable="true" xbrli:periodType="instant" xbrli:balance="credit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="tgen_IncreaseDecreaseInBacklog" abstract="false" name="IncreaseDecreaseInBacklog" nillable="true" xbrli:periodType="duration" xbrli:balance="credit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="tgen_ProceedsFromEmployeeRetentionCredit" abstract="false" name="ProceedsFromEmployeeRetentionCredit" nillable="true" xbrli:periodType="duration" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="tgen_PercentageOfOwnedJointVenture" abstract="false" name="PercentageOfOwnedJointVenture" nillable="true" xbrli:periodType="instant" substitutionGroup="xbrli:item" type="dtr-types1:percentItemType"/>
  <xs:element id="tgen_ContractWithCustomerShippingAndHandlingBilled" abstract="false" name="ContractWithCustomerShippingAndHandlingBilled" nillable="true" xbrli:periodType="duration" xbrli:balance="credit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="tgen_CostOfGoodsSoldShippingAndHandling" abstract="false" name="CostOfGoodsSoldShippingAndHandling" nillable="true" xbrli:periodType="duration" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="tgen_ShippingandHandlingExpenses" abstract="false" name="ShippingandHandlingExpenses" nillable="true" xbrli:periodType="duration" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="tgen_ResearchAndDevelopmentExpenseGross" abstract="false" name="ResearchAndDevelopmentExpenseGross" nillable="true" xbrli:periodType="duration" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="tgen_RevenueFromContractWithCustomerPaymentPeriod" abstract="false" name="RevenueFromContractWithCustomerPaymentPeriod" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="xbrli:durationItemType"/>
  <xs:element id="tgen_OneCustomerMember" abstract="true" name="OneCustomerMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
  <xs:element id="tgen_ProductsSegmentMember" abstract="true" name="ProductsSegmentMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="tgen_ServicesSegmentMember" abstract="true" name="ServicesSegmentMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="tgen_EnergyProductionMember" abstract="true" name="EnergyProductionMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="tgen_ProductsandServicesMember" abstract="true" name="ProductsandServicesMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="tgen_EnergyProductionSegmentMember" abstract="true" name="EnergyProductionSegmentMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="tgen_InstallationServicesMember" abstract="true" name="InstallationServicesMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="tgen_MaintenanceServiceMember" abstract="true" name="MaintenanceServiceMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="tgen_TurnkeyInstallationMember" abstract="true" name="TurnkeyInstallationMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="tgen_CogenerationMember" abstract="true" name="CogenerationMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
  <xs:element id="tgen_ChillerMember" abstract="true" name="ChillerMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
  <xs:element id="tgen_EngineeredAccessoriesMember" abstract="true" name="EngineeredAccessoriesMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
  <xs:element id="tgen_AmericanDgEnergyMember" abstract="true" name="AmericanDgEnergyMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="tgen_AegisEnergyServicesLLCMember" abstract="true" name="AegisEnergyServicesLLCMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
  <xs:element id="tgen_MeasurementInputWACCMember" abstract="true" name="MeasurementInputWACCMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
  <xs:element id="tgen_AssetAcquisitionMaintenanceAgreementsNumberOfCogenerationSystems" abstract="false" name="AssetAcquisitionMaintenanceAgreementsNumberOfCogenerationSystems" nillable="true" xbrli:periodType="instant" substitutionGroup="xbrli:item" type="xbrli:integerItemType"/>
  <xs:element id="tgen_NumberOfAssetsAcquired" abstract="false" name="NumberOfAssetsAcquired" nillable="true" xbrli:periodType="instant" substitutionGroup="xbrli:item" type="xbrli:integerItemType"/>
  <xs:element id="tgen_PaymentsForAssetAcquisitions" abstract="false" name="PaymentsForAssetAcquisitions" nillable="true" xbrli:periodType="duration" xbrli:balance="credit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="tgen_NumberOfEmployeesAcquired" abstract="false" name="NumberOfEmployeesAcquired" nillable="true" xbrli:periodType="instant" substitutionGroup="xbrli:item" type="xbrli:integerItemType"/>
  <xs:element id="tgen_AssetAcquisitionMaintenanceAgreementsProfitSharingPeriod" abstract="false" name="AssetAcquisitionMaintenanceAgreementsProfitSharingPeriod" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="xbrli:durationItemType"/>
  <xs:element id="tgen_AssetAcquisitionNumberOfAdditionalMaintenanceContracts" abstract="false" name="AssetAcquisitionNumberOfAdditionalMaintenanceContracts" nillable="true" xbrli:periodType="instant" substitutionGroup="xbrli:item" type="xbrli:integerItemType"/>
  <xs:element id="tgen_AssetAcquisitionMaintenanceAgreementsNumberOfAdditionalCogenerationUnits" abstract="false" name="AssetAcquisitionMaintenanceAgreementsNumberOfAdditionalCogenerationUnits" nillable="true" xbrli:periodType="instant" substitutionGroup="xbrli:item" type="xbrli:integerItemType"/>
  <xs:element id="tgen_AssetAcquisitionConsiderationTransferredAccountsPayable" abstract="false" name="AssetAcquisitionConsiderationTransferredAccountsPayable" nillable="true" xbrli:periodType="duration" xbrli:balance="credit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="tgen_AssetAcquisitionPropertyPlantAndEquipment" abstract="false" name="AssetAcquisitionPropertyPlantAndEquipment" nillable="true" xbrli:periodType="duration" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="tgen_AssetAcquisitionInventory" abstract="false" name="AssetAcquisitionInventory" nillable="true" xbrli:periodType="duration" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="tgen_AssetAcquisitionAssetsAcquired" abstract="false" name="AssetAcquisitionAssetsAcquired" nillable="true" xbrli:periodType="duration" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="tgen_AssetAcquisitionReserves" abstract="false" name="AssetAcquisitionReserves" nillable="true" xbrli:periodType="duration" xbrli:balance="credit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="tgen_AssetAcquisitionAssetsAcquiredAndLiabilitiesAssumedNet" abstract="false" name="AssetAcquisitionAssetsAcquiredAndLiabilitiesAssumedNet" nillable="true" xbrli:periodType="duration" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="tgen_AssetAcquisitionGoodwill" abstract="false" name="AssetAcquisitionGoodwill" nillable="true" xbrli:periodType="instant" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="tgen_IntangibleAssetsMeasurementInput" abstract="false" name="IntangibleAssetsMeasurementInput" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:percentItemType"/>
  <xs:element id="tgen_AssetAcquisitionConsiderationTransferredContingentConsiderationCurrent" abstract="false" name="AssetAcquisitionConsiderationTransferredContingentConsiderationCurrent" nillable="true" xbrli:periodType="duration" xbrli:balance="credit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="tgen_AssetAcquisitionReservesCurrent" abstract="false" name="AssetAcquisitionReservesCurrent" nillable="true" xbrli:periodType="duration" xbrli:balance="credit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="tgen_AssetAcquisitionLiabilitiesAssumedCurrent" abstract="false" name="AssetAcquisitionLiabilitiesAssumedCurrent" nillable="true" xbrli:periodType="duration" xbrli:balance="credit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="tgen_AssetAcquisitionConsiderationTransferredContingentConsiderationNoncurrent" abstract="false" name="AssetAcquisitionConsiderationTransferredContingentConsiderationNoncurrent" nillable="true" xbrli:periodType="duration" xbrli:balance="credit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="tgen_AssetAcquisitionReservesNoncurrent" abstract="false" name="AssetAcquisitionReservesNoncurrent" nillable="true" xbrli:periodType="duration" xbrli:balance="credit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="tgen_AssetAcquisitionLiabilitiesAssumedNoncurrent" abstract="false" name="AssetAcquisitionLiabilitiesAssumedNoncurrent" nillable="true" xbrli:periodType="duration" xbrli:balance="credit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="tgen_AssetAcquisitionContingentConsiderationPaymentPeriod" abstract="false" name="AssetAcquisitionContingentConsiderationPaymentPeriod" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="xbrli:durationItemType"/>
  <xs:element id="tgen_AssetAcquisitionContingentConsiderationPercentage" abstract="false" name="AssetAcquisitionContingentConsiderationPercentage" nillable="true" xbrli:periodType="instant" substitutionGroup="xbrli:item" type="dtr-types:percentItemType"/>
  <xs:element id="tgen_AssetAcquisitionDeferredMaintenanceCostsIncurredPeriod" abstract="false" name="AssetAcquisitionDeferredMaintenanceCostsIncurredPeriod" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="xbrli:durationItemType"/>
  <xs:element id="tgen_AssetAcquisitionProvisionalInformationInitialAccountingIncompleteAdjustmentContingentConsiderationLiability" abstract="false" name="AssetAcquisitionProvisionalInformationInitialAccountingIncompleteAdjustmentContingentConsiderationLiability" nillable="true" xbrli:periodType="duration" xbrli:balance="credit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="tgen_AssetAcquisitionProvisionalInformationInitialAccountingIncompleteAdjustmentFiniteLivedIntangibleAssetsAcquired" abstract="false" name="AssetAcquisitionProvisionalInformationInitialAccountingIncompleteAdjustmentFiniteLivedIntangibleAssetsAcquired" nillable="true" xbrli:periodType="duration" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="tgen_EnergyProductionContactsMember" abstract="true" name="EnergyProductionContactsMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="tgen_EnergyProductionAgreementsPercentageOfExcessCashFlowsAboveThreshold" abstract="false" name="EnergyProductionAgreementsPercentageOfExcessCashFlowsAboveThreshold" nillable="true" xbrli:periodType="instant" substitutionGroup="xbrli:item" type="dtr-types:percentItemType"/>
  <xs:element id="tgen_EnergyProductionAgreementsRevenueOfExcessCashFlowsAboveThreshold" abstract="false" name="EnergyProductionAgreementsRevenueOfExcessCashFlowsAboveThreshold" nillable="true" xbrli:periodType="duration" xbrli:balance="credit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="tgen_EnergyProductionAgreementsAccountsReceivableFromExcessCashFlowsAboveThreshold" abstract="false" name="EnergyProductionAgreementsAccountsReceivableFromExcessCashFlowsAboveThreshold" nillable="true" xbrli:periodType="instant" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="tgen_EnergyProductionAgreementsSiteDecommissioningCosts" abstract="false" name="EnergyProductionAgreementsSiteDecommissioningCosts" nillable="true" xbrli:periodType="duration" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="tgen_ProductCertificationMember" abstract="true" name="ProductCertificationMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="tgen_FavorableContractAssetMember" abstract="true" name="FavorableContractAssetMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="tgen_LongLivedAssetImpairmentMember" abstract="true" name="LongLivedAssetImpairmentMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="tgen_AmortizationofContractRelatedIntangibleAssetsandLiabilitiesNet" abstract="false" name="AmortizationofContractRelatedIntangibleAssetsandLiabilitiesNet" nillable="true" xbrli:periodType="duration" xbrli:balance="credit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="tgen_FiniteLivedIntangibleLiabilityAxis" abstract="true" name="FiniteLivedIntangibleLiabilityAxis" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrldt:dimensionItem" type="xbrli:stringItemType"/>
  <xs:element id="tgen_FiniteLivedIntangibleLiabilityDomain" abstract="true" name="FiniteLivedIntangibleLiabilityDomain" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="tgen_UnfavorableContractLiabilityMember" abstract="true" name="UnfavorableContractLiabilityMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="tgen_IntangibleLiabilityGross" abstract="false" name="IntangibleLiabilityGross" nillable="true" xbrli:periodType="instant" xbrli:balance="credit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="tgen_FiniteLivedIntangibleLiabilitiesAccumulatedAmortization" abstract="false" name="FiniteLivedIntangibleLiabilitiesAccumulatedAmortization" nillable="true" xbrli:periodType="instant" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="tgen_IntangibleLiabilitiesNet" abstract="false" name="IntangibleLiabilitiesNet" nillable="true" xbrli:periodType="instant" xbrli:balance="credit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="tgen_NonContractRelatedIntangibleAssetsMember" abstract="true" name="NonContractRelatedIntangibleAssetsMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingMaturityAbstract" abstract="true" name="FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingMaturityAbstract" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="xbrli:stringItemType"/>
  <xs:element id="tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseNextRolling12Months" abstract="false" name="FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseNextRolling12Months" nillable="true" xbrli:periodType="instant" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearTwo" abstract="false" name="FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearTwo" nillable="true" xbrli:periodType="instant" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearThree" abstract="false" name="FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearThree" nillable="true" xbrli:periodType="instant" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearFour" abstract="false" name="FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearFour" nillable="true" xbrli:periodType="instant" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearFive" abstract="false" name="FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearFive" nillable="true" xbrli:periodType="instant" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingAfterYearFive" abstract="false" name="FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingAfterYearFive" nillable="true" xbrli:periodType="instant" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="tgen_FiniteLivedIntangibleAssetsAndLiabilitiesNet" abstract="false" name="FiniteLivedIntangibleAssetsAndLiabilitiesNet" nillable="true" xbrli:periodType="instant" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="tgen_DepreciationDepletionandAmortizationPropertyPlantandEquipment" abstract="false" name="DepreciationDepletionandAmortizationPropertyPlantandEquipment" nillable="true" xbrli:periodType="duration" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="tgen_AccruedDecommissioningCosts" abstract="false" name="AccruedDecommissioningCosts" nillable="true" xbrli:periodType="duration" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="tgen_JohnN.HatsopoulosMember" abstract="true" name="JohnN.HatsopoulosMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
  <xs:element id="tgen_October2023PromissoryNoteMember" abstract="true" name="October2023PromissoryNoteMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
  <xs:element id="tgen_July2024PromissoryNoteMember" abstract="true" name="July2024PromissoryNoteMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
  <xs:element id="tgen_September2024PromissoryNoteMember" abstract="true" name="September2024PromissoryNoteMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
  <xs:element id="tgen_AverageClosingSharePriceMember" abstract="true" name="AverageClosingSharePriceMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
  <xs:element id="tgen_RelatedPartyTransactionPeriod" abstract="false" name="RelatedPartyTransactionPeriod" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="xbrli:durationItemType"/>
  <xs:element id="tgen_EurositePowerIncMember" abstract="true" name="EurositePowerIncMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="tgen_OfficeSpaceAndWarehouseFacilitiesMember" abstract="true" name="OfficeSpaceAndWarehouseFacilitiesMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="tgen_TheCorporationOfTheTownOfMiltonMiltonEnergyGenerationSolutionsInc.AndMiltonHydroDistributionIncMember" abstract="true" name="TheCorporationOfTheTownOfMiltonMiltonEnergyGenerationSolutionsInc.AndMiltonHydroDistributionIncMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
  <xs:element id="tgen_PeriodOfSeveranceBenefitsForKeyManagementEmployeesUnderThePlan" abstract="false" name="PeriodOfSeveranceBenefitsForKeyManagementEmployeesUnderThePlan" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="xbrli:durationItemType"/>
  <xs:element id="tgen_ChangeInControlSeveranceBenefitPlanPeriodInForce" abstract="false" name="ChangeInControlSeveranceBenefitPlanPeriodInForce" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="xbrli:durationItemType"/>
  <xs:element id="tgen_ChangeInControlSeveranceBenefitPlanPeriodInForceExtension" abstract="false" name="ChangeInControlSeveranceBenefitPlanPeriodInForceExtension" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="xbrli:durationItemType"/>
  <xs:element id="tgen_ChangeInControlSeveranceBenefitPlanNoticePeriodForCancellation" abstract="false" name="ChangeInControlSeveranceBenefitPlanNoticePeriodForCancellation" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="xbrli:durationItemType"/>
  <xs:element id="tgen_ChangeInControlSeveranceBenefitPlanThresholdPeriodForTerminationPriorToChangeInControl" abstract="false" name="ChangeInControlSeveranceBenefitPlanThresholdPeriodForTerminationPriorToChangeInControl" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="xbrli:durationItemType"/>
  <xs:element id="tgen_ChangeInControlSeveranceBenefitPlanThresholdPeriodForTerminationAfterToChangeInControl" abstract="false" name="ChangeInControlSeveranceBenefitPlanThresholdPeriodForTerminationAfterToChangeInControl" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="xbrli:durationItemType"/>
  <xs:element id="tgen_ProductWarrantyPeriod" abstract="false" name="ProductWarrantyPeriod" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="xbrli:durationItemType"/>
  <xs:element id="tgen_LesseeOperatingLeaseNumberOfLeaseAgreements" abstract="false" name="LesseeOperatingLeaseNumberOfLeaseAgreements" nillable="true" xbrli:periodType="instant" substitutionGroup="xbrli:item" type="xbrli:integerItemType"/>
  <xs:element id="tgen_LesseeOperatingLeaseNumberOfBuildings" abstract="false" name="LesseeOperatingLeaseNumberOfBuildings" nillable="true" xbrli:periodType="instant" substitutionGroup="xbrli:item" type="xbrli:integerItemType"/>
  <xs:element id="tgen_LesseeOperatingLeaseSquareFeet" abstract="false" name="LesseeOperatingLeaseSquareFeet" nillable="true" xbrli:periodType="instant" substitutionGroup="xbrli:item" type="xbrli:integerItemType"/>
  <xs:element id="tgen_LesseeOperatingLeaseOptionToExtendNumberOfOptions" abstract="false" name="LesseeOperatingLeaseOptionToExtendNumberOfOptions" nillable="true" xbrli:periodType="instant" substitutionGroup="xbrli:item" type="xbrli:integerItemType"/>
  <xs:element id="tgen_ConstructionInProgressExpenditures" abstract="false" name="ConstructionInProgressExpenditures" nillable="true" xbrli:periodType="duration" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="tgen_LesseeOperatingLeaseOptionToExtendPeriod" abstract="false" name="LesseeOperatingLeaseOptionToExtendPeriod" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="xbrli:durationItemType"/>
  <xs:element id="tgen_LesseeOperatingLeaseOptionToExtendMonthlyRent" abstract="false" name="LesseeOperatingLeaseOptionToExtendMonthlyRent" nillable="true" xbrli:periodType="instant" xbrli:balance="credit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="tgen_FinanceLeaseExpense" abstract="false" name="FinanceLeaseExpense" nillable="true" xbrli:periodType="duration" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="tgen_FinanceLeasePrincipalPaymentsAndOtherCosts" abstract="false" name="FinanceLeasePrincipalPaymentsAndOtherCosts" nillable="true" xbrli:periodType="duration" xbrli:balance="credit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="tgen_BoilerMember" abstract="true" name="BoilerMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
  <xs:element id="tgen_OperatingLeaseAssetsAndLiabilitiesLesseeAbstract" abstract="true" name="OperatingLeaseAssetsAndLiabilitiesLesseeAbstract" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="xbrli:stringItemType"/>
  <xs:element id="tgen_OperatingAndFinanceLeaseLiabilityToBePaidYearOne" abstract="false" name="OperatingAndFinanceLeaseLiabilityToBePaidYearOne" nillable="true" xbrli:periodType="instant" xbrli:balance="credit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="tgen_OperatingAndFinanceLeaseLiabilityToBePaidYearTwo" abstract="false" name="OperatingAndFinanceLeaseLiabilityToBePaidYearTwo" nillable="true" xbrli:periodType="instant" xbrli:balance="credit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="tgen_OperatingAndFinanceLeaseLiabilityToBePaidYearThree" abstract="false" name="OperatingAndFinanceLeaseLiabilityToBePaidYearThree" nillable="true" xbrli:periodType="instant" xbrli:balance="credit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="tgen_OperatingAndFinanceLeaseLiabilityToBePaidYearFour" abstract="false" name="OperatingAndFinanceLeaseLiabilityToBePaidYearFour" nillable="true" xbrli:periodType="instant" xbrli:balance="credit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="tgen_OperatingAndFinanceLeaseLiabilityToBePaidYearFive" abstract="false" name="OperatingAndFinanceLeaseLiabilityToBePaidYearFive" nillable="true" xbrli:periodType="instant" xbrli:balance="credit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="tgen_OperatingAndFinanceLeaseLiabilityToBePaidAfterYearFive" abstract="false" name="OperatingAndFinanceLeaseLiabilityToBePaidAfterYearFive" nillable="true" xbrli:periodType="instant" xbrli:balance="credit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="tgen_OperatingAndFinanceLeaseLiabilityToBePaid" abstract="false" name="OperatingAndFinanceLeaseLiabilityToBePaid" nillable="true" xbrli:periodType="instant" xbrli:balance="credit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="tgen_OperatingAndFinanceLeaseLiabilityUndiscountedExcessAmount" abstract="false" name="OperatingAndFinanceLeaseLiabilityUndiscountedExcessAmount" nillable="true" xbrli:periodType="instant" xbrli:balance="credit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="tgen_OperatingAndFinanceLeaseLiability" abstract="false" name="OperatingAndFinanceLeaseLiability" nillable="true" xbrli:periodType="instant" xbrli:balance="credit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="tgen_AmendnedStockOptionAndIncentivePlan2006Member" abstract="true" name="AmendnedStockOptionAndIncentivePlan2006Member" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="tgen_A2022StockIncentivePlanMember" abstract="true" name="A2022StockIncentivePlanMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="tgen_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantedInPeriodExercisePrice" abstract="false" name="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantedInPeriodExercisePrice" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:perShareItemType"/>
  <xs:element id="tgen_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansGrantedExercisePriceRangeLowerRangeLimit" abstract="false" name="ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansGrantedExercisePriceRangeLowerRangeLimit" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:perShareItemType"/>
  <xs:element id="tgen_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansGrantedExercisePriceRangeUpperRangeLimit" abstract="false" name="ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansGrantedExercisePriceRangeUpperRangeLimit" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:perShareItemType"/>
  <xs:element id="tgen_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfOptionsExercisedInPeriod" abstract="false" name="ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfOptionsExercisedInPeriod" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="xbrli:integerItemType"/>
  <xs:element id="tgen_ShareBasedCompensationArrangementbyShareBasedPaymentAwardHistoricalForfeitureRate" abstract="false" name="ShareBasedCompensationArrangementbyShareBasedPaymentAwardHistoricalForfeitureRate" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:percentItemType"/>
  <xs:element id="tgen_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfPubliclyTradedCompaniesUsedInExpectedVolatilityRateCalculation" abstract="false" name="ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfPubliclyTradedCompaniesUsedInExpectedVolatilityRateCalculation" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="xbrli:integerItemType"/>
  <xs:element id="tgen_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsCancellationsAndForfeituresInPeriod" abstract="false" name="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsCancellationsAndForfeituresInPeriod" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="xbrli:sharesItemType"/>
  <xs:element id="tgen_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsCancellationsAndForfeituresInPeriodWeightedAverageExercisePrice" abstract="false" name="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsCancellationsAndForfeituresInPeriodWeightedAverageExercisePrice" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:perShareItemType"/>
  <xs:element id="tgen_ExercisePricePerShareAbstract" abstract="true" name="ExercisePricePerShareAbstract" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="xbrli:stringItemType"/>
  <xs:element id="tgen_ShareBasedPaymentArrangementOptionExercisesInPeriodExercisePricePerShare" abstract="false" name="ShareBasedPaymentArrangementOptionExercisesInPeriodExercisePricePerShare" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:perShareItemType"/>
  <xs:element id="tgen_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansCancelledAndForfeitedExercisePriceRangeLowerRangeLimit" abstract="false" name="ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansCancelledAndForfeitedExercisePriceRangeLowerRangeLimit" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:perShareItemType"/>
  <xs:element id="tgen_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansCancelledAndForfeitedExercisePriceRangeUpperRangeLimit" abstract="false" name="ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansCancelledAndForfeitedExercisePriceRangeUpperRangeLimit" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:perShareItemType"/>
  <xs:element id="tgen_ContingentConsiderationCurrentMember" abstract="true" name="ContingentConsiderationCurrentMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
  <xs:element id="tgen_ContingentConsiderationNoncurrentMember" abstract="true" name="ContingentConsiderationNoncurrentMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
  <xs:element id="tgen_MaintenanceAgreementsApplicablePercentage" abstract="false" name="MaintenanceAgreementsApplicablePercentage" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:percentItemType"/>
  <xs:element id="tgen_DefinedContributionPlanMaximumQuarterlyEmployerMatchingContributionPerParticipant" abstract="false" name="DefinedContributionPlanMaximumQuarterlyEmployerMatchingContributionPerParticipant" nillable="true" xbrli:periodType="duration" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="tgen_DefinedContributionPlanMaximumAnnualEmployerMatchingContributionPerParticipant" abstract="false" name="DefinedContributionPlanMaximumAnnualEmployerMatchingContributionPerParticipant" nillable="true" xbrli:periodType="duration" xbrli:balance="credit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="tgen_ServicesAndOtherSegmentMember" abstract="true" name="ServicesAndOtherSegmentMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="tgen_IncomeTaxDisclosureTable" abstract="true" name="IncomeTaxDisclosureTable" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrldt:hypercubeItem" type="xbrli:stringItemType"/>
  <xs:element id="tgen_BenefitforIncomeTaxesMember" abstract="true" name="BenefitforIncomeTaxesMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="tgen_IncomeTaxDisclosureLineItems" abstract="true" name="IncomeTaxDisclosureLineItems" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="xbrli:stringItemType"/>
  <xs:element id="tgen_EffectiveIncomeTaxRateReconciliationStateandLocalIncomeTaxesAmountCurrent" abstract="false" name="EffectiveIncomeTaxRateReconciliationStateandLocalIncomeTaxesAmountCurrent" nillable="true" xbrli:periodType="duration" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="tgen_EffectiveIncomeTaxRateReconciliationStateandLocalIncomeTaxesAmountDeferred" abstract="false" name="EffectiveIncomeTaxRateReconciliationStateandLocalIncomeTaxesAmountDeferred" nillable="true" xbrli:periodType="duration" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="tgen_EffectiveIncomeTaxRateReconciliationOperatingLossCarryforwardExpired" abstract="false" name="EffectiveIncomeTaxRateReconciliationOperatingLossCarryforwardExpired" nillable="true" xbrli:periodType="duration" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="tgen_IncomeTaxReconciliationUnbenefitedOperatingLosses" abstract="false" name="IncomeTaxReconciliationUnbenefitedOperatingLosses" nillable="true" xbrli:periodType="duration" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="tgen_DeferredTaxAssetTaxDeferredExpenseReservesAndAccrualsAccruedLiabilitiesAndOther" abstract="false" name="DeferredTaxAssetTaxDeferredExpenseReservesAndAccrualsAccruedLiabilitiesAndOther" nillable="true" xbrli:periodType="instant" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="tgen_DeferredTaxAssetLeases" abstract="false" name="DeferredTaxAssetLeases" nillable="true" xbrli:periodType="instant" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="tgen_PPPLoanProgramMember" abstract="true" name="PPPLoanProgramMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="tgen_WebsterBusinessCreditCorporationMember" abstract="true" name="WebsterBusinessCreditCorporationMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="tgen_OperatingLossCarryforwardsExpired" abstract="false" name="OperatingLossCarryforwardsExpired" nillable="true" xbrli:periodType="instant" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="tgen_DebtInstrumentPrincipalDecreaseForgiveness" abstract="false" name="DebtInstrumentPrincipalDecreaseForgiveness" nillable="true" xbrli:periodType="duration" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="tgen_DebtInstrumentForgivenessAccruedInterest" abstract="false" name="DebtInstrumentForgivenessAccruedInterest" nillable="true" xbrli:periodType="instant" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="tgen_AcquisitionAnnualNOLLimitationAmount" abstract="false" name="AcquisitionAnnualNOLLimitationAmount" nillable="true" xbrli:periodType="duration" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="tgen_AcquisitionNetOperatingLossLimitationPeriod" abstract="false" name="AcquisitionNetOperatingLossLimitationPeriod" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="xbrli:durationItemType"/>
  <xs:element id="tgen_LitigationSettlementFeeExpenseBenefit" abstract="false" name="LitigationSettlementFeeExpenseBenefit" nillable="true" xbrli:periodType="duration" xbrli:balance="credit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="tgen_SalesAndMarketingAgreementTerm" abstract="false" name="SalesAndMarketingAgreementTerm" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="xbrli:durationItemType"/>
</xs:schema>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.CAL
<SEQUENCE>8
<FILENAME>tgen-20241231_cal.xml
<DESCRIPTION>XBRL TAXONOMY EXTENSION CALCULATION LINKBASE DOCUMENT
<TEXT>
<XBRL>
<?xml version="1.0" encoding="UTF-8"?>

<!--XBRL Document Created with the Workiva Platform-->
<!--Copyright 2025 Workiva-->
<!--r:27a45c8e-ccb7-4ee0-baf8-e027f6202253,g:a67c4460-f12d-456b-86fe-b4f9ec620b6c-->
<link:linkbase xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.xbrl.org/2003/linkbase http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd">
  <link:roleRef roleURI="http://www.tecogen.com/role/ConsolidatedBalanceSheets" xlink:type="simple" xlink:href="tgen-20241231.xsd#ConsolidatedBalanceSheets"/>
  <link:calculationLink xlink:role="http://www.tecogen.com/role/ConsolidatedBalanceSheets" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Assets_4fc705a7-1dca-4de9-9dee-2912e1e1a0aa" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Assets"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetsCurrent_1bd9e526-07ca-43b3-adc6-a116cf19c339" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetsCurrent"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_Assets_4fc705a7-1dca-4de9-9dee-2912e1e1a0aa" xlink:to="loc_us-gaap_AssetsCurrent_1bd9e526-07ca-43b3-adc6-a116cf19c339" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentNet_5c34d6de-cb20-4ce9-9ef5-dcbdb6d8e5de" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentNet"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_Assets_4fc705a7-1dca-4de9-9dee-2912e1e1a0aa" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentNet_5c34d6de-cb20-4ce9-9ef5-dcbdb6d8e5de" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsNet_4c55d41d-2050-4ae4-8726-10b6601d9406" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsNet"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_Assets_4fc705a7-1dca-4de9-9dee-2912e1e1a0aa" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsNet_4c55d41d-2050-4ae4-8726-10b6601d9406" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinanceLeaseRightOfUseAsset_70ae9468-a9bf-4822-a97f-627a4ee88bd2" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FinanceLeaseRightOfUseAsset"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_Assets_4fc705a7-1dca-4de9-9dee-2912e1e1a0aa" xlink:to="loc_us-gaap_FinanceLeaseRightOfUseAsset_70ae9468-a9bf-4822-a97f-627a4ee88bd2" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherAssetsNoncurrent_42a88887-db1c-485e-b472-fc68b761b4ba" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherAssetsNoncurrent"/>
    <link:calculationArc order="5" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_Assets_4fc705a7-1dca-4de9-9dee-2912e1e1a0aa" xlink:to="loc_us-gaap_OtherAssetsNoncurrent_42a88887-db1c-485e-b472-fc68b761b4ba" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Goodwill_e236c0bb-9a12-4ec2-be87-50c15832c427" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Goodwill"/>
    <link:calculationArc order="6" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_Assets_4fc705a7-1dca-4de9-9dee-2912e1e1a0aa" xlink:to="loc_us-gaap_Goodwill_e236c0bb-9a12-4ec2-be87-50c15832c427" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseRightOfUseAsset_5fd9c4c8-2f5a-4f00-874e-cc6dffeb1215" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseRightOfUseAsset"/>
    <link:calculationArc order="7" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_Assets_4fc705a7-1dca-4de9-9dee-2912e1e1a0aa" xlink:to="loc_us-gaap_OperatingLeaseRightOfUseAsset_5fd9c4c8-2f5a-4f00-874e-cc6dffeb1215" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest_a2960a6c-8017-41a9-95da-808721ac29c1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockholdersEquity_150d08ce-f333-47b8-8542-bc6c881c65ee" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockholdersEquity"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest_a2960a6c-8017-41a9-95da-808721ac29c1" xlink:to="loc_us-gaap_StockholdersEquity_150d08ce-f333-47b8-8542-bc6c881c65ee" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MinorityInterest_39ac6481-2ba7-4b05-b33e-a6131a956b8d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_MinorityInterest"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest_a2960a6c-8017-41a9-95da-808721ac29c1" xlink:to="loc_us-gaap_MinorityInterest_39ac6481-2ba7-4b05-b33e-a6131a956b8d" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetsCurrent_5a8abbbe-8784-4bc7-8ba5-10523d9c3990" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetsCurrent"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountsReceivableNetCurrent_285ff28a-3865-499f-9e84-e9d521ea313f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountsReceivableNetCurrent"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_AssetsCurrent_5a8abbbe-8784-4bc7-8ba5-10523d9c3990" xlink:to="loc_us-gaap_AccountsReceivableNetCurrent_285ff28a-3865-499f-9e84-e9d521ea313f" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractWithCustomerAssetNetCurrent_7534c3e8-18a1-4749-8de2-774c528fae5f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ContractWithCustomerAssetNetCurrent"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_AssetsCurrent_5a8abbbe-8784-4bc7-8ba5-10523d9c3990" xlink:to="loc_us-gaap_ContractWithCustomerAssetNetCurrent_7534c3e8-18a1-4749-8de2-774c528fae5f" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_EmployeeRetentionCreditCurrent_343d5cee-16f3-4075-9d55-f2b87af1f879" xlink:href="tgen-20241231.xsd#tgen_EmployeeRetentionCreditCurrent"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_AssetsCurrent_5a8abbbe-8784-4bc7-8ba5-10523d9c3990" xlink:to="loc_tgen_EmployeeRetentionCreditCurrent_343d5cee-16f3-4075-9d55-f2b87af1f879" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue_90973eba-3d33-4ba9-b899-6eea70561cfb" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_AssetsCurrent_5a8abbbe-8784-4bc7-8ba5-10523d9c3990" xlink:to="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue_90973eba-3d33-4ba9-b899-6eea70561cfb" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PrepaidExpenseAndOtherAssetsCurrent_5a8efc80-7ada-4ab8-b743-4e2ffe7bf65c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PrepaidExpenseAndOtherAssetsCurrent"/>
    <link:calculationArc order="5" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_AssetsCurrent_5a8abbbe-8784-4bc7-8ba5-10523d9c3990" xlink:to="loc_us-gaap_PrepaidExpenseAndOtherAssetsCurrent_5a8efc80-7ada-4ab8-b743-4e2ffe7bf65c" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryNet_210a35d7-2b8c-419c-abc2-c0ff6b9fe738" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InventoryNet"/>
    <link:calculationArc order="6" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_AssetsCurrent_5a8abbbe-8784-4bc7-8ba5-10523d9c3990" xlink:to="loc_us-gaap_InventoryNet_210a35d7-2b8c-419c-abc2-c0ff6b9fe738" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockholdersEquity_aa9b470a-413e-47f2-845f-02eb6d74ee2f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockholdersEquity"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockValue_4744dc3e-a51b-4dff-aa18-c95b66c6de0b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockValue"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_StockholdersEquity_aa9b470a-413e-47f2-845f-02eb6d74ee2f" xlink:to="loc_us-gaap_CommonStockValue_4744dc3e-a51b-4dff-aa18-c95b66c6de0b" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdditionalPaidInCapital_94e9397a-60e4-462b-a721-848ddd9b0aa0" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AdditionalPaidInCapital"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_StockholdersEquity_aa9b470a-413e-47f2-845f-02eb6d74ee2f" xlink:to="loc_us-gaap_AdditionalPaidInCapital_94e9397a-60e4-462b-a721-848ddd9b0aa0" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RetainedEarningsAccumulatedDeficit_b13da885-1aa3-4fef-a1e5-62d365f6290b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RetainedEarningsAccumulatedDeficit"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_StockholdersEquity_aa9b470a-413e-47f2-845f-02eb6d74ee2f" xlink:to="loc_us-gaap_RetainedEarningsAccumulatedDeficit_b13da885-1aa3-4fef-a1e5-62d365f6290b" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommitmentsAndContingencies_3e8fcaee-7a37-445e-9650-44acbf42529f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommitmentsAndContingencies"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_StockholdersEquity_aa9b470a-413e-47f2-845f-02eb6d74ee2f" xlink:to="loc_us-gaap_CommitmentsAndContingencies_3e8fcaee-7a37-445e-9650-44acbf42529f" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LiabilitiesAndStockholdersEquity_372df3bd-94f6-447b-9b70-d801756ee949" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LiabilitiesAndStockholdersEquity"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest_cfeed563-da83-4cb4-86cc-16e760cd9af8" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LiabilitiesAndStockholdersEquity_372df3bd-94f6-447b-9b70-d801756ee949" xlink:to="loc_us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest_cfeed563-da83-4cb4-86cc-16e760cd9af8" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Liabilities_55c73c89-87d0-4be4-9b97-0b720b2c8f62" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Liabilities"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LiabilitiesAndStockholdersEquity_372df3bd-94f6-447b-9b70-d801756ee949" xlink:to="loc_us-gaap_Liabilities_55c73c89-87d0-4be4-9b97-0b720b2c8f62" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Liabilities_7a19997f-38fe-4268-be71-66cc14af53c3" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Liabilities"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinanceLeaseLiabilityNoncurrent_6029cb98-c4d6-41db-86ae-f68db9862cca" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FinanceLeaseLiabilityNoncurrent"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_Liabilities_7a19997f-38fe-4268-be71-66cc14af53c3" xlink:to="loc_us-gaap_FinanceLeaseLiabilityNoncurrent_6029cb98-c4d6-41db-86ae-f68db9862cca" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseLiabilityNoncurrent_453f23af-d52b-4f11-ac91-08a6761ddf52" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_Liabilities_7a19997f-38fe-4268-be71-66cc14af53c3" xlink:to="loc_us-gaap_OperatingLeaseLiabilityNoncurrent_453f23af-d52b-4f11-ac91-08a6761ddf52" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredRevenueNoncurrent_f60dbfc9-a34f-4376-b8e2-4a2b10cff5a8" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredRevenueNoncurrent"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_Liabilities_7a19997f-38fe-4268-be71-66cc14af53c3" xlink:to="loc_us-gaap_DeferredRevenueNoncurrent_f60dbfc9-a34f-4376-b8e2-4a2b10cff5a8" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LiabilitiesCurrent_00486b9a-e5a6-4cf9-a6f8-9e4ed282c7c9" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LiabilitiesCurrent"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_Liabilities_7a19997f-38fe-4268-be71-66cc14af53c3" xlink:to="loc_us-gaap_LiabilitiesCurrent_00486b9a-e5a6-4cf9-a6f8-9e4ed282c7c9" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedFinancialLiabilities_cdb744ed-eb4b-40d2-9b05-555c6989f12a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedFinancialLiabilities"/>
    <link:calculationArc order="5" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_Liabilities_7a19997f-38fe-4268-be71-66cc14af53c3" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedFinancialLiabilities_cdb744ed-eb4b-40d2-9b05-555c6989f12a" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationContingentConsiderationLiabilityNoncurrent_11c84f3b-bc5c-42f1-ba3f-9818c34a6b6a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationContingentConsiderationLiabilityNoncurrent"/>
    <link:calculationArc order="6" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_Liabilities_7a19997f-38fe-4268-be71-66cc14af53c3" xlink:to="loc_us-gaap_BusinessCombinationContingentConsiderationLiabilityNoncurrent_11c84f3b-bc5c-42f1-ba3f-9818c34a6b6a" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LiabilitiesCurrent_921d1583-ce93-4ed0-ba1b-25f826f74b8c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LiabilitiesCurrent"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountsPayableCurrent_21904dcc-2329-488d-8911-f0b67f36b1fc" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountsPayableCurrent"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LiabilitiesCurrent_921d1583-ce93-4ed0-ba1b-25f826f74b8c" xlink:to="loc_us-gaap_AccountsPayableCurrent_21904dcc-2329-488d-8911-f0b67f36b1fc" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationContingentConsiderationLiabilityCurrent_c7ce9838-9efa-4169-be89-e114d1c88efe" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationContingentConsiderationLiabilityCurrent"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LiabilitiesCurrent_921d1583-ce93-4ed0-ba1b-25f826f74b8c" xlink:to="loc_us-gaap_BusinessCombinationContingentConsiderationLiabilityCurrent_c7ce9838-9efa-4169-be89-e114d1c88efe" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccruedLiabilitiesCurrent_70ec27c2-1d4f-4021-940e-b757fb9178cd" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccruedLiabilitiesCurrent"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LiabilitiesCurrent_921d1583-ce93-4ed0-ba1b-25f826f74b8c" xlink:to="loc_us-gaap_AccruedLiabilitiesCurrent_70ec27c2-1d4f-4021-940e-b757fb9178cd" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredRevenueCurrent_db8daa3b-2cf7-40c3-9bd4-0c52c89de60d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredRevenueCurrent"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LiabilitiesCurrent_921d1583-ce93-4ed0-ba1b-25f826f74b8c" xlink:to="loc_us-gaap_DeferredRevenueCurrent_db8daa3b-2cf7-40c3-9bd4-0c52c89de60d" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedFinancialLiabilitiesCurrent_2cb68e89-f779-4557-b406-7347b14f6a0b" xlink:href="tgen-20241231.xsd#tgen_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedFinancialLiabilitiesCurrent"/>
    <link:calculationArc order="5" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LiabilitiesCurrent_921d1583-ce93-4ed0-ba1b-25f826f74b8c" xlink:to="loc_tgen_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedFinancialLiabilitiesCurrent_2cb68e89-f779-4557-b406-7347b14f6a0b" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NotesPayable_4f23d83b-bc62-402e-9b92-f93dd8d10e66" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NotesPayable"/>
    <link:calculationArc order="6" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LiabilitiesCurrent_921d1583-ce93-4ed0-ba1b-25f826f74b8c" xlink:to="loc_us-gaap_NotesPayable_4f23d83b-bc62-402e-9b92-f93dd8d10e66" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseLiabilityCurrent_b0a024dc-3ef1-4a50-87b7-3078db28032a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseLiabilityCurrent"/>
    <link:calculationArc order="7" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LiabilitiesCurrent_921d1583-ce93-4ed0-ba1b-25f826f74b8c" xlink:to="loc_us-gaap_OperatingLeaseLiabilityCurrent_b0a024dc-3ef1-4a50-87b7-3078db28032a" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinanceLeaseLiabilityCurrent_9d7c8e0c-9b99-4299-82c5-edc026c7c514" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FinanceLeaseLiabilityCurrent"/>
    <link:calculationArc order="8" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LiabilitiesCurrent_921d1583-ce93-4ed0-ba1b-25f826f74b8c" xlink:to="loc_us-gaap_FinanceLeaseLiabilityCurrent_9d7c8e0c-9b99-4299-82c5-edc026c7c514" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/ConsolidatedStatementsofOperations" xlink:type="simple" xlink:href="tgen-20241231.xsd#ConsolidatedStatementsofOperations"/>
  <link:calculationLink xlink:role="http://www.tecogen.com/role/ConsolidatedStatementsofOperations" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_0efeef13-10c6-4b96-8bae-f947835d64e1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NonoperatingIncomeExpense_2a7fa3cc-0c8c-4b1b-be2a-1caace176e46" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NonoperatingIncomeExpense"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_0efeef13-10c6-4b96-8bae-f947835d64e1" xlink:to="loc_us-gaap_NonoperatingIncomeExpense_2a7fa3cc-0c8c-4b1b-be2a-1caace176e46" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingIncomeLoss_d58e9bfb-7d8e-42e9-ba62-82ed87d27057" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingIncomeLoss"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_0efeef13-10c6-4b96-8bae-f947835d64e1" xlink:to="loc_us-gaap_OperatingIncomeLoss_d58e9bfb-7d8e-42e9-ba62-82ed87d27057" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GrossProfit_284ee670-d697-4b1d-a5b7-7b6c6244f440" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GrossProfit"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_0eb99f0b-8ec0-4bb5-b079-4a6b14e35b89" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_GrossProfit_284ee670-d697-4b1d-a5b7-7b6c6244f440" xlink:to="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_0eb99f0b-8ec0-4bb5-b079-4a6b14e35b89" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CostOfGoodsAndServicesSold_930235ff-46f4-4c37-a4d5-b01b0731a801" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CostOfGoodsAndServicesSold"/>
    <link:calculationArc order="2" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_GrossProfit_284ee670-d697-4b1d-a5b7-7b6c6244f440" xlink:to="loc_us-gaap_CostOfGoodsAndServicesSold_930235ff-46f4-4c37-a4d5-b01b0731a801" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProfitLoss_eb47aeab-2bd5-4913-ab20-08da5fbebf1e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProfitLoss"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_IncomeTaxExpenseBenefitState_5a7bf1a6-59ea-4f7e-b49c-b55ee9db4490" xlink:href="tgen-20241231.xsd#tgen_IncomeTaxExpenseBenefitState"/>
    <link:calculationArc order="1" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_ProfitLoss_eb47aeab-2bd5-4913-ab20-08da5fbebf1e" xlink:to="loc_tgen_IncomeTaxExpenseBenefitState_5a7bf1a6-59ea-4f7e-b49c-b55ee9db4490" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_5077d142-2fd6-4ac9-a764-a3ec0a1214fa" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_ProfitLoss_eb47aeab-2bd5-4913-ab20-08da5fbebf1e" xlink:to="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_5077d142-2fd6-4ac9-a764-a3ec0a1214fa" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingExpenses_2a1c6b94-56eb-4da4-ab1f-cfe65f0dd95e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingExpenses"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SellingExpense_37d53ac5-7dc6-42a8-91ee-a4b1cf6151d2" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SellingExpense"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_OperatingExpenses_2a1c6b94-56eb-4da4-ab1f-cfe65f0dd95e" xlink:to="loc_us-gaap_SellingExpense_37d53ac5-7dc6-42a8-91ee-a4b1cf6151d2" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GeneralAndAdministrativeExpense_9442a7c9-7e3d-4c01-9d06-dd06ae1b7627" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GeneralAndAdministrativeExpense"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_OperatingExpenses_2a1c6b94-56eb-4da4-ab1f-cfe65f0dd95e" xlink:to="loc_us-gaap_GeneralAndAdministrativeExpense_9442a7c9-7e3d-4c01-9d06-dd06ae1b7627" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillImpairmentLoss_86233b4a-58ba-48d0-9b23-03feda1d4973" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GoodwillImpairmentLoss"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_OperatingExpenses_2a1c6b94-56eb-4da4-ab1f-cfe65f0dd95e" xlink:to="loc_us-gaap_GoodwillImpairmentLoss_86233b4a-58ba-48d0-9b23-03feda1d4973" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GainLossOnDispositionOfAssets1_7c46ccef-5bac-4fca-9c9f-b782bfb48fe0" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GainLossOnDispositionOfAssets1"/>
    <link:calculationArc order="4" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_OperatingExpenses_2a1c6b94-56eb-4da4-ab1f-cfe65f0dd95e" xlink:to="loc_us-gaap_GainLossOnDispositionOfAssets1_7c46ccef-5bac-4fca-9c9f-b782bfb48fe0" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ImpairmentOfLongLivedAssetsHeldForUse_e549cf29-11f3-4741-b1ba-aa060d65296c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ImpairmentOfLongLivedAssetsHeldForUse"/>
    <link:calculationArc order="5" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_OperatingExpenses_2a1c6b94-56eb-4da4-ab1f-cfe65f0dd95e" xlink:to="loc_us-gaap_ImpairmentOfLongLivedAssetsHeldForUse_e549cf29-11f3-4741-b1ba-aa060d65296c" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ResearchAndDevelopmentExpense_c8d9ca6f-0a8b-4943-8e2e-d214b118f101" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ResearchAndDevelopmentExpense"/>
    <link:calculationArc order="6" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_OperatingExpenses_2a1c6b94-56eb-4da4-ab1f-cfe65f0dd95e" xlink:to="loc_us-gaap_ResearchAndDevelopmentExpense_c8d9ca6f-0a8b-4943-8e2e-d214b118f101" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetIncomeLoss_59c3458e-81bb-4f82-97ad-7db2e82e3c92" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetIncomeLoss"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetIncomeLossAttributableToNoncontrollingInterest_aefd1fec-7cdf-43f0-b8b3-18b6fffc14bd" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetIncomeLossAttributableToNoncontrollingInterest"/>
    <link:calculationArc order="1" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetIncomeLoss_59c3458e-81bb-4f82-97ad-7db2e82e3c92" xlink:to="loc_us-gaap_NetIncomeLossAttributableToNoncontrollingInterest_aefd1fec-7cdf-43f0-b8b3-18b6fffc14bd" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProfitLoss_198287dd-94c2-41d4-84d3-2d5914f48959" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProfitLoss"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetIncomeLoss_59c3458e-81bb-4f82-97ad-7db2e82e3c92" xlink:to="loc_us-gaap_ProfitLoss_198287dd-94c2-41d4-84d3-2d5914f48959" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingIncomeLoss_8eadb22b-36c6-4fef-988e-b45e4c0af95e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingIncomeLoss"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GrossProfit_77c29a8f-2728-423c-97ba-228a173306ae" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GrossProfit"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_OperatingIncomeLoss_8eadb22b-36c6-4fef-988e-b45e4c0af95e" xlink:to="loc_us-gaap_GrossProfit_77c29a8f-2728-423c-97ba-228a173306ae" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingExpenses_50439ee4-57a9-48e4-bb60-e80a2a55762e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingExpenses"/>
    <link:calculationArc order="2" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_OperatingIncomeLoss_8eadb22b-36c6-4fef-988e-b45e4c0af95e" xlink:to="loc_us-gaap_OperatingExpenses_50439ee4-57a9-48e4-bb60-e80a2a55762e" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NonoperatingIncomeExpense_925b1453-0ccd-4906-adaa-a4bcaa0e5ba0" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NonoperatingIncomeExpense"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InterestExpenseNonoperating_1df62cd1-8964-4a95-b49b-34d3105b0d29" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InterestExpenseNonoperating"/>
    <link:calculationArc order="1" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NonoperatingIncomeExpense_925b1453-0ccd-4906-adaa-a4bcaa0e5ba0" xlink:to="loc_us-gaap_InterestExpenseNonoperating_1df62cd1-8964-4a95-b49b-34d3105b0d29" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_InterestAndOtherIncomeExpense_f612783d-e104-4543-8937-0253f17c2cf1" xlink:href="tgen-20241231.xsd#tgen_InterestAndOtherIncomeExpense"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NonoperatingIncomeExpense_925b1453-0ccd-4906-adaa-a4bcaa0e5ba0" xlink:to="loc_tgen_InterestAndOtherIncomeExpense_f612783d-e104-4543-8937-0253f17c2cf1" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/ConsolidatedStatementsofCashFlows" xlink:type="simple" xlink:href="tgen-20241231.xsd#ConsolidatedStatementsofCashFlows"/>
  <link:calculationLink xlink:role="http://www.tecogen.com/role/ConsolidatedStatementsofCashFlows" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInInvestingActivities_2c985e3d-9db1-4e30-9ccd-402efeb3db6a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivities"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_PaymentsToNoncontrollingInterestsInvestingActivities_715fb463-8abe-4830-b4b7-da9e4ebe2561" xlink:href="tgen-20241231.xsd#tgen_PaymentsToNoncontrollingInterestsInvestingActivities"/>
    <link:calculationArc order="1" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInInvestingActivities_2c985e3d-9db1-4e30-9ccd-402efeb3db6a" xlink:to="loc_tgen_PaymentsToNoncontrollingInterestsInvestingActivities_715fb463-8abe-4830-b4b7-da9e4ebe2561" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment_0c540b46-dfbb-4ce8-a07e-b52f96933503" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInInvestingActivities_2c985e3d-9db1-4e30-9ccd-402efeb3db6a" xlink:to="loc_us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment_0c540b46-dfbb-4ce8-a07e-b52f96933503" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsToAcquireIntangibleAssets_0e17e4bf-e723-4521-adf4-2ff9c4bef23d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentsToAcquireIntangibleAssets"/>
    <link:calculationArc order="3" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInInvestingActivities_2c985e3d-9db1-4e30-9ccd-402efeb3db6a" xlink:to="loc_us-gaap_PaymentsToAcquireIntangibleAssets_0e17e4bf-e723-4521-adf4-2ff9c4bef23d" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired_d96b2b0c-6624-4b11-aeb1-128f0d06e3ea" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired"/>
    <link:calculationArc order="4" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInInvestingActivities_2c985e3d-9db1-4e30-9ccd-402efeb3db6a" xlink:to="loc_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired_d96b2b0c-6624-4b11-aeb1-128f0d06e3ea" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_e9836b9c-f7f7-4036-8bdf-6cd9464fbe38" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentsToAcquirePropertyPlantAndEquipment"/>
    <link:calculationArc order="5" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInInvestingActivities_2c985e3d-9db1-4e30-9ccd-402efeb3db6a" xlink:to="loc_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_e9836b9c-f7f7-4036-8bdf-6cd9464fbe38" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_ee83083b-8fb4-42ac-ba2f-b133314dc0d7" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivities"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax_f01b1170-dea9-4ce6-90fe-6e4c0e566d45" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax"/>
    <link:calculationArc order="1" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_ee83083b-8fb4-42ac-ba2f-b133314dc0d7" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax_f01b1170-dea9-4ce6-90fe-6e4c0e566d45" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_IncreaseDecreaseInPrepaidExpenseAndOtherCurrentAssets_3e58a8a2-21b3-4989-8697-9f698915e55d" xlink:href="tgen-20241231.xsd#tgen_IncreaseDecreaseInPrepaidExpenseAndOtherCurrentAssets"/>
    <link:calculationArc order="2" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_ee83083b-8fb4-42ac-ba2f-b133314dc0d7" xlink:to="loc_tgen_IncreaseDecreaseInPrepaidExpenseAndOtherCurrentAssets_3e58a8a2-21b3-4989-8697-9f698915e55d" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryWriteDown_8c46cebc-3dfe-46ed-8df3-3f61162929ab" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InventoryWriteDown"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_ee83083b-8fb4-42ac-ba2f-b133314dc0d7" xlink:to="loc_us-gaap_InventoryWriteDown_8c46cebc-3dfe-46ed-8df3-3f61162929ab" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInInventories_9d2fc9e7-5329-490b-8ecf-65d1b55e45cb" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInInventories"/>
    <link:calculationArc order="4" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_ee83083b-8fb4-42ac-ba2f-b133314dc0d7" xlink:to="loc_us-gaap_IncreaseDecreaseInInventories_9d2fc9e7-5329-490b-8ecf-65d1b55e45cb" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GainLossOnDispositionOfAssets1_c654822f-d8f9-4eaa-9a93-4459a3de2cb3" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GainLossOnDispositionOfAssets1"/>
    <link:calculationArc order="5" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_ee83083b-8fb4-42ac-ba2f-b133314dc0d7" xlink:to="loc_us-gaap_GainLossOnDispositionOfAssets1_c654822f-d8f9-4eaa-9a93-4459a3de2cb3" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensation_ba264b44-187d-4bda-b0e1-072727fb49fc" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensation"/>
    <link:calculationArc order="6" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_ee83083b-8fb4-42ac-ba2f-b133314dc0d7" xlink:to="loc_us-gaap_ShareBasedCompensation_ba264b44-187d-4bda-b0e1-072727fb49fc" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInAccruedLiabilities_c258452e-a13f-4f1b-9a23-80832880f46e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInAccruedLiabilities"/>
    <link:calculationArc order="7" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_ee83083b-8fb4-42ac-ba2f-b133314dc0d7" xlink:to="loc_us-gaap_IncreaseDecreaseInAccruedLiabilities_c258452e-a13f-4f1b-9a23-80832880f46e" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProvisionForDoubtfulAccounts_4a24cb85-354e-48ff-babc-bca546972818" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProvisionForDoubtfulAccounts"/>
    <link:calculationArc order="8" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_ee83083b-8fb4-42ac-ba2f-b133314dc0d7" xlink:to="loc_us-gaap_ProvisionForDoubtfulAccounts_4a24cb85-354e-48ff-babc-bca546972818" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInContractWithCustomerLiability_31500fcc-d932-4614-872a-a2ac1f0c8864" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInContractWithCustomerLiability"/>
    <link:calculationArc order="9" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_ee83083b-8fb4-42ac-ba2f-b133314dc0d7" xlink:to="loc_us-gaap_IncreaseDecreaseInContractWithCustomerLiability_31500fcc-d932-4614-872a-a2ac1f0c8864" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInAccountsPayable_fb079c75-0234-492c-8cb1-276f1db9efe5" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInAccountsPayable"/>
    <link:calculationArc order="10" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_ee83083b-8fb4-42ac-ba2f-b133314dc0d7" xlink:to="loc_us-gaap_IncreaseDecreaseInAccountsPayable_fb079c75-0234-492c-8cb1-276f1db9efe5" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProfitLoss_5828f211-3395-4f4f-8ecf-033076bff648" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProfitLoss"/>
    <link:calculationArc order="11" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_ee83083b-8fb4-42ac-ba2f-b133314dc0d7" xlink:to="loc_us-gaap_ProfitLoss_5828f211-3395-4f4f-8ecf-033076bff648" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DepreciationDepletionAndAmortization_c62a2059-9805-4d39-ad46-6e9c2702bb1b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DepreciationDepletionAndAmortization"/>
    <link:calculationArc order="12" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_ee83083b-8fb4-42ac-ba2f-b133314dc0d7" xlink:to="loc_us-gaap_DepreciationDepletionAndAmortization_c62a2059-9805-4d39-ad46-6e9c2702bb1b" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GainLossOnContractTermination_0e229196-1286-467c-9052-060da1ddff7f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GainLossOnContractTermination"/>
    <link:calculationArc order="13" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_ee83083b-8fb4-42ac-ba2f-b133314dc0d7" xlink:to="loc_us-gaap_GainLossOnContractTermination_0e229196-1286-467c-9052-060da1ddff7f" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInAccountsReceivable_990c44c1-58c9-4fa6-81c0-73d50fda03ee" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInAccountsReceivable"/>
    <link:calculationArc order="14" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_ee83083b-8fb4-42ac-ba2f-b133314dc0d7" xlink:to="loc_us-gaap_IncreaseDecreaseInAccountsReceivable_990c44c1-58c9-4fa6-81c0-73d50fda03ee" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInOtherOperatingAssets_8f72adeb-c1ec-4a62-bc94-fdf9b503300e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInOtherOperatingAssets"/>
    <link:calculationArc order="15" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_ee83083b-8fb4-42ac-ba2f-b133314dc0d7" xlink:to="loc_us-gaap_IncreaseDecreaseInOtherOperatingAssets_8f72adeb-c1ec-4a62-bc94-fdf9b503300e" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInDeferredRevenue_cdb01b30-62cc-422a-912d-3798607b6c23" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInDeferredRevenue"/>
    <link:calculationArc order="16" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_ee83083b-8fb4-42ac-ba2f-b133314dc0d7" xlink:to="loc_us-gaap_IncreaseDecreaseInDeferredRevenue_cdb01b30-62cc-422a-912d-3798607b6c23" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LossContingencyAccrualProvision_4c1bf9e5-fc15-4f69-9935-95d96d301096" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LossContingencyAccrualProvision"/>
    <link:calculationArc order="17" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_ee83083b-8fb4-42ac-ba2f-b133314dc0d7" xlink:to="loc_us-gaap_LossContingencyAccrualProvision_4c1bf9e5-fc15-4f69-9935-95d96d301096" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInOtherCurrentLiabilities_a9b363f7-7197-4458-a566-9e8830897639" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInOtherCurrentLiabilities"/>
    <link:calculationArc order="18" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_ee83083b-8fb4-42ac-ba2f-b133314dc0d7" xlink:to="loc_us-gaap_IncreaseDecreaseInOtherCurrentLiabilities_a9b363f7-7197-4458-a566-9e8830897639" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillImpairmentLoss_e4f95f48-40f3-46f5-a7b7-c05e1a4115bd" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GoodwillImpairmentLoss"/>
    <link:calculationArc order="19" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_ee83083b-8fb4-42ac-ba2f-b133314dc0d7" xlink:to="loc_us-gaap_GoodwillImpairmentLoss_e4f95f48-40f3-46f5-a7b7-c05e1a4115bd" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_NoncashInterestExpense_7c29a28f-bd6f-427f-a6ff-5b1a111022a4" xlink:href="tgen-20241231.xsd#tgen_NoncashInterestExpense"/>
    <link:calculationArc order="20" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_ee83083b-8fb4-42ac-ba2f-b133314dc0d7" xlink:to="loc_tgen_NoncashInterestExpense_7c29a28f-bd6f-427f-a6ff-5b1a111022a4" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect_72023a22-306d-4c65-a484-3704690eca01" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInFinancingActivities_ff2dbe58-fc25-4acc-b85c-fec90dfe1f4e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivities"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect_72023a22-306d-4c65-a484-3704690eca01" xlink:to="loc_us-gaap_NetCashProvidedByUsedInFinancingActivities_ff2dbe58-fc25-4acc-b85c-fec90dfe1f4e" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInInvestingActivities_fd75dc9a-3109-4a2f-b7e9-03f9e57392bb" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivities"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect_72023a22-306d-4c65-a484-3704690eca01" xlink:to="loc_us-gaap_NetCashProvidedByUsedInInvestingActivities_fd75dc9a-3109-4a2f-b7e9-03f9e57392bb" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_b100ae2a-d5fa-4d2f-abce-f40b053a95bd" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivities"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect_72023a22-306d-4c65-a484-3704690eca01" xlink:to="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_b100ae2a-d5fa-4d2f-abce-f40b053a95bd" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInFinancingActivities_10bdc714-15e0-414e-900a-b043fa944fd3" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivities"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProceedsFromStockOptionsExercised_a7dd90b0-2f72-40c1-a6db-d7d62c8031b6" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProceedsFromStockOptionsExercised"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInFinancingActivities_10bdc714-15e0-414e-900a-b043fa944fd3" xlink:to="loc_us-gaap_ProceedsFromStockOptionsExercised_a7dd90b0-2f72-40c1-a6db-d7d62c8031b6" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProceedsFromNotesPayable_081ee5f0-2b7f-4914-a74d-421694e1a395" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProceedsFromNotesPayable"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInFinancingActivities_10bdc714-15e0-414e-900a-b043fa944fd3" xlink:to="loc_us-gaap_ProceedsFromNotesPayable_081ee5f0-2b7f-4914-a74d-421694e1a395" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinanceLeasePrincipalPayments_04e11f93-5c37-403b-9fb4-51c9927da9b6" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FinanceLeasePrincipalPayments"/>
    <link:calculationArc order="3" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInFinancingActivities_10bdc714-15e0-414e-900a-b043fa944fd3" xlink:to="loc_us-gaap_FinanceLeasePrincipalPayments_04e11f93-5c37-403b-9fb4-51c9927da9b6" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/LosspercommonshareScheduleofLossPerCommonShareBasicandDilutedDetails" xlink:type="simple" xlink:href="tgen-20241231.xsd#LosspercommonshareScheduleofLossPerCommonShareBasicandDilutedDetails"/>
  <link:calculationLink xlink:role="http://www.tecogen.com/role/LosspercommonshareScheduleofLossPerCommonShareBasicandDilutedDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_095f5f5b-412d-459e-9fdd-45c84cb79d65" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_49da9052-7f42-4b48-ac2d-beeea92a9798" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingBasic"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_095f5f5b-412d-459e-9fdd-45c84cb79d65" xlink:to="loc_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_49da9052-7f42-4b48-ac2d-beeea92a9798" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment_b856b361-9254-4f51-9a23-db3d27b2a315" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_095f5f5b-412d-459e-9fdd-45c84cb79d65" xlink:to="loc_us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment_b856b361-9254-4f51-9a23-db3d27b2a315" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/AegisContractandRelatedAssetAcquisitionDetails" xlink:type="simple" xlink:href="tgen-20241231.xsd#AegisContractandRelatedAssetAcquisitionDetails"/>
  <link:calculationLink xlink:role="http://www.tecogen.com/role/AegisContractandRelatedAssetAcquisitionDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetAcquisitionConsiderationTransferred_95f3bba2-9d97-4102-9d29-6c7dd24aede0" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetAcquisitionConsiderationTransferred"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AssetAcquisitionConsiderationTransferredAccountsPayable_05544c9a-9518-47aa-9fc5-3658b3259f05" xlink:href="tgen-20241231.xsd#tgen_AssetAcquisitionConsiderationTransferredAccountsPayable"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_AssetAcquisitionConsiderationTransferred_95f3bba2-9d97-4102-9d29-6c7dd24aede0" xlink:to="loc_tgen_AssetAcquisitionConsiderationTransferredAccountsPayable_05544c9a-9518-47aa-9fc5-3658b3259f05" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_PaymentsForAssetAcquisitions_665bcfb4-fdbc-4386-ad3e-01d3eca86aaf" xlink:href="tgen-20241231.xsd#tgen_PaymentsForAssetAcquisitions"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_AssetAcquisitionConsiderationTransferred_95f3bba2-9d97-4102-9d29-6c7dd24aede0" xlink:to="loc_tgen_PaymentsForAssetAcquisitions_665bcfb4-fdbc-4386-ad3e-01d3eca86aaf" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetAcquisitionConsiderationTransferredOtherAssets_e72cb99a-cedd-4046-b829-5b81aa4307aa" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetAcquisitionConsiderationTransferredOtherAssets"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_AssetAcquisitionConsiderationTransferred_95f3bba2-9d97-4102-9d29-6c7dd24aede0" xlink:to="loc_us-gaap_AssetAcquisitionConsiderationTransferredOtherAssets_e72cb99a-cedd-4046-b829-5b81aa4307aa" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetAcquisitionConsiderationTransferredContingentConsideration_d95d9e53-c251-44e6-82e9-137ec8eca6d3" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetAcquisitionConsiderationTransferredContingentConsideration"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_AssetAcquisitionConsiderationTransferred_95f3bba2-9d97-4102-9d29-6c7dd24aede0" xlink:to="loc_us-gaap_AssetAcquisitionConsiderationTransferredContingentConsideration_d95d9e53-c251-44e6-82e9-137ec8eca6d3" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AssetAcquisitionAssetsAcquiredAndLiabilitiesAssumedNet_c24ba449-a616-4b2f-8287-1cb86e1657ca" xlink:href="tgen-20241231.xsd#tgen_AssetAcquisitionAssetsAcquiredAndLiabilitiesAssumedNet"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AssetAcquisitionReserves_308577df-82ee-4327-bc65-37c678125129" xlink:href="tgen-20241231.xsd#tgen_AssetAcquisitionReserves"/>
    <link:calculationArc order="1" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_tgen_AssetAcquisitionAssetsAcquiredAndLiabilitiesAssumedNet_c24ba449-a616-4b2f-8287-1cb86e1657ca" xlink:to="loc_tgen_AssetAcquisitionReserves_308577df-82ee-4327-bc65-37c678125129" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AssetAcquisitionAssetsAcquired_d1790577-3e52-418d-bac3-758085a092da" xlink:href="tgen-20241231.xsd#tgen_AssetAcquisitionAssetsAcquired"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_tgen_AssetAcquisitionAssetsAcquiredAndLiabilitiesAssumedNet_c24ba449-a616-4b2f-8287-1cb86e1657ca" xlink:to="loc_tgen_AssetAcquisitionAssetsAcquired_d1790577-3e52-418d-bac3-758085a092da" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AssetAcquisitionAssetsAcquired_614a91c6-0ac4-4a6d-9c79-b3fe18ab74eb" xlink:href="tgen-20241231.xsd#tgen_AssetAcquisitionAssetsAcquired"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AssetAcquisitionInventory_29337d9a-dcd9-4e67-b3fc-c329ea2b766c" xlink:href="tgen-20241231.xsd#tgen_AssetAcquisitionInventory"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_tgen_AssetAcquisitionAssetsAcquired_614a91c6-0ac4-4a6d-9c79-b3fe18ab74eb" xlink:to="loc_tgen_AssetAcquisitionInventory_29337d9a-dcd9-4e67-b3fc-c329ea2b766c" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AssetAcquisitionPropertyPlantAndEquipment_fe104b86-4d36-4dee-8c39-6fb65d0f0637" xlink:href="tgen-20241231.xsd#tgen_AssetAcquisitionPropertyPlantAndEquipment"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_tgen_AssetAcquisitionAssetsAcquired_614a91c6-0ac4-4a6d-9c79-b3fe18ab74eb" xlink:to="loc_tgen_AssetAcquisitionPropertyPlantAndEquipment_fe104b86-4d36-4dee-8c39-6fb65d0f0637" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinitelivedIntangibleAssetsAcquired1_9914c777-f7e2-494a-bded-c1839b745994" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FinitelivedIntangibleAssetsAcquired1"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_tgen_AssetAcquisitionAssetsAcquired_614a91c6-0ac4-4a6d-9c79-b3fe18ab74eb" xlink:to="loc_us-gaap_FinitelivedIntangibleAssetsAcquired1_9914c777-f7e2-494a-bded-c1839b745994" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AssetAcquisitionLiabilitiesAssumedNoncurrent_2b80fcb3-689d-4745-ae85-b2cb3166faf9" xlink:href="tgen-20241231.xsd#tgen_AssetAcquisitionLiabilitiesAssumedNoncurrent"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AssetAcquisitionConsiderationTransferredContingentConsiderationNoncurrent_8ae8f230-fd3f-4d2a-b21e-e07d17a53e4a" xlink:href="tgen-20241231.xsd#tgen_AssetAcquisitionConsiderationTransferredContingentConsiderationNoncurrent"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_tgen_AssetAcquisitionLiabilitiesAssumedNoncurrent_2b80fcb3-689d-4745-ae85-b2cb3166faf9" xlink:to="loc_tgen_AssetAcquisitionConsiderationTransferredContingentConsiderationNoncurrent_8ae8f230-fd3f-4d2a-b21e-e07d17a53e4a" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AssetAcquisitionReservesNoncurrent_b8f2fb02-f4bb-417d-92a4-015c226948af" xlink:href="tgen-20241231.xsd#tgen_AssetAcquisitionReservesNoncurrent"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_tgen_AssetAcquisitionLiabilitiesAssumedNoncurrent_2b80fcb3-689d-4745-ae85-b2cb3166faf9" xlink:to="loc_tgen_AssetAcquisitionReservesNoncurrent_b8f2fb02-f4bb-417d-92a4-015c226948af" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AssetAcquisitionLiabilitiesAssumedCurrent_7bf3ba78-e0dd-4e6b-b293-a5770e22237a" xlink:href="tgen-20241231.xsd#tgen_AssetAcquisitionLiabilitiesAssumedCurrent"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AssetAcquisitionConsiderationTransferredContingentConsiderationCurrent_d5e9d915-828b-49e3-a8a7-87abc597e005" xlink:href="tgen-20241231.xsd#tgen_AssetAcquisitionConsiderationTransferredContingentConsiderationCurrent"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_tgen_AssetAcquisitionLiabilitiesAssumedCurrent_7bf3ba78-e0dd-4e6b-b293-a5770e22237a" xlink:to="loc_tgen_AssetAcquisitionConsiderationTransferredContingentConsiderationCurrent_d5e9d915-828b-49e3-a8a7-87abc597e005" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AssetAcquisitionReservesCurrent_9f979bb3-ff8c-4041-9a21-a873d7537e65" xlink:href="tgen-20241231.xsd#tgen_AssetAcquisitionReservesCurrent"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_tgen_AssetAcquisitionLiabilitiesAssumedCurrent_7bf3ba78-e0dd-4e6b-b293-a5770e22237a" xlink:to="loc_tgen_AssetAcquisitionReservesCurrent_9f979bb3-ff8c-4041-9a21-a873d7537e65" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/InventorySummaryofInventoryDetails" xlink:type="simple" xlink:href="tgen-20241231.xsd#InventorySummaryofInventoryDetails"/>
  <link:calculationLink xlink:role="http://www.tecogen.com/role/InventorySummaryofInventoryDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryNet_ff37f677-3a17-432b-9098-5f3c69dc6ab0" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InventoryNet"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryRawMaterialsNetOfReserves_c0f64201-81ba-4f59-a01a-22f68e40d5e7" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InventoryRawMaterialsNetOfReserves"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_InventoryNet_ff37f677-3a17-432b-9098-5f3c69dc6ab0" xlink:to="loc_us-gaap_InventoryRawMaterialsNetOfReserves_c0f64201-81ba-4f59-a01a-22f68e40d5e7" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryWorkInProcessNetOfReserves_846e68e1-aecc-4d26-a359-405b91f26256" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InventoryWorkInProcessNetOfReserves"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_InventoryNet_ff37f677-3a17-432b-9098-5f3c69dc6ab0" xlink:to="loc_us-gaap_InventoryWorkInProcessNetOfReserves_846e68e1-aecc-4d26-a359-405b91f26256" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryFinishedGoodsNetOfReserves_c99aa520-825b-4691-8cd6-cbe1ea56e267" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InventoryFinishedGoodsNetOfReserves"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_InventoryNet_ff37f677-3a17-432b-9098-5f3c69dc6ab0" xlink:to="loc_us-gaap_InventoryFinishedGoodsNetOfReserves_c99aa520-825b-4691-8cd6-cbe1ea56e267" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/IntangibleassetsotherthangoodwillScheduleofIntangibleAssetsDetails" xlink:type="simple" xlink:href="tgen-20241231.xsd#IntangibleassetsotherthangoodwillScheduleofIntangibleAssetsDetails"/>
  <link:calculationLink xlink:role="http://www.tecogen.com/role/IntangibleassetsotherthangoodwillScheduleofIntangibleAssetsDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_tgen_IntangibleLiabilitiesNet_70f423dd-4a45-4bf0-a713-de21c30fcb84" xlink:href="tgen-20241231.xsd#tgen_IntangibleLiabilitiesNet"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_IntangibleLiabilityGross_5eaa0ed4-32c3-40b5-85a1-06aeb099fc2e" xlink:href="tgen-20241231.xsd#tgen_IntangibleLiabilityGross"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_tgen_IntangibleLiabilitiesNet_70f423dd-4a45-4bf0-a713-de21c30fcb84" xlink:to="loc_tgen_IntangibleLiabilityGross_5eaa0ed4-32c3-40b5-85a1-06aeb099fc2e" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_FiniteLivedIntangibleLiabilitiesAccumulatedAmortization_5a797e90-b2b6-477d-a1aa-46d16ffd48f4" xlink:href="tgen-20241231.xsd#tgen_FiniteLivedIntangibleLiabilitiesAccumulatedAmortization"/>
    <link:calculationArc order="2" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_tgen_IntangibleLiabilitiesNet_70f423dd-4a45-4bf0-a713-de21c30fcb84" xlink:to="loc_tgen_FiniteLivedIntangibleLiabilitiesAccumulatedAmortization_5a797e90-b2b6-477d-a1aa-46d16ffd48f4" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IntangibleAssetsNetExcludingGoodwill_ef9eb631-6666-442e-b179-92d6418b6916" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IntangibleAssetsNetExcludingGoodwill"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IntangibleAssetsGrossExcludingGoodwill_ffb6707c-9780-4a1b-a61e-eb4f1c84278d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IntangibleAssetsGrossExcludingGoodwill"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_IntangibleAssetsNetExcludingGoodwill_ef9eb631-6666-442e-b179-92d6418b6916" xlink:to="loc_us-gaap_IntangibleAssetsGrossExcludingGoodwill_ffb6707c-9780-4a1b-a61e-eb4f1c84278d" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_af00a3a1-912c-46e0-9430-af4b9243e46c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization"/>
    <link:calculationArc order="2" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_IntangibleAssetsNetExcludingGoodwill_ef9eb631-6666-442e-b179-92d6418b6916" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_af00a3a1-912c-46e0-9430-af4b9243e46c" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/IntangibleassetsandliabilitiesotherthangoodwillScheduleofAggregateFutureAmortizationDetails" xlink:type="simple" xlink:href="tgen-20241231.xsd#IntangibleassetsandliabilitiesotherthangoodwillScheduleofAggregateFutureAmortizationDetails"/>
  <link:calculationLink xlink:role="http://www.tecogen.com/role/IntangibleassetsandliabilitiesotherthangoodwillScheduleofAggregateFutureAmortizationDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsNet_78e0417e-377d-4d29-aa58-96e5bc7f76e7" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsNet"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRollingYearFour_878f43d0-0892-44cd-8d85-6f6cbdfbc627" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRollingYearFour"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsNet_78e0417e-377d-4d29-aa58-96e5bc7f76e7" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRollingYearFour_878f43d0-0892-44cd-8d85-6f6cbdfbc627" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRollingAfterYearFive_b1eb80b2-ab02-4b10-84c3-63956b2eb08f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRollingAfterYearFive"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsNet_78e0417e-377d-4d29-aa58-96e5bc7f76e7" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRollingAfterYearFive_b1eb80b2-ab02-4b10-84c3-63956b2eb08f" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRollingYearTwo_b65179fa-4036-4cb1-b925-57928a8fc24b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRollingYearTwo"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsNet_78e0417e-377d-4d29-aa58-96e5bc7f76e7" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRollingYearTwo_b65179fa-4036-4cb1-b925-57928a8fc24b" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRollingYearFive_32cfff6f-b339-4607-97f5-e61cf68acb67" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRollingYearFive"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsNet_78e0417e-377d-4d29-aa58-96e5bc7f76e7" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRollingYearFive_32cfff6f-b339-4607-97f5-e61cf68acb67" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextRollingTwelveMonths_aacab5f1-ca5c-4d6e-a9a9-86796d8c3f5a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextRollingTwelveMonths"/>
    <link:calculationArc order="5" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsNet_78e0417e-377d-4d29-aa58-96e5bc7f76e7" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextRollingTwelveMonths_aacab5f1-ca5c-4d6e-a9a9-86796d8c3f5a" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRollingYearThree_10a875ea-8dfa-4561-a33f-42ccfbd76cb2" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRollingYearThree"/>
    <link:calculationArc order="6" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsNet_78e0417e-377d-4d29-aa58-96e5bc7f76e7" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRollingYearThree_10a875ea-8dfa-4561-a33f-42ccfbd76cb2" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_FiniteLivedIntangibleAssetsAndLiabilitiesNet_27e7d53d-7ab9-4b09-bf0d-9a499371d50f" xlink:href="tgen-20241231.xsd#tgen_FiniteLivedIntangibleAssetsAndLiabilitiesNet"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearThree_425fc935-f933-43fd-8473-d0c46ac8285e" xlink:href="tgen-20241231.xsd#tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearThree"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_tgen_FiniteLivedIntangibleAssetsAndLiabilitiesNet_27e7d53d-7ab9-4b09-bf0d-9a499371d50f" xlink:to="loc_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearThree_425fc935-f933-43fd-8473-d0c46ac8285e" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseNextRolling12Months_41d7b356-f623-4466-b8d3-2ea5b1b1847a" xlink:href="tgen-20241231.xsd#tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseNextRolling12Months"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_tgen_FiniteLivedIntangibleAssetsAndLiabilitiesNet_27e7d53d-7ab9-4b09-bf0d-9a499371d50f" xlink:to="loc_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseNextRolling12Months_41d7b356-f623-4466-b8d3-2ea5b1b1847a" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingAfterYearFive_021676af-b513-41ae-b66e-e56d7796f51e" xlink:href="tgen-20241231.xsd#tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingAfterYearFive"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_tgen_FiniteLivedIntangibleAssetsAndLiabilitiesNet_27e7d53d-7ab9-4b09-bf0d-9a499371d50f" xlink:to="loc_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingAfterYearFive_021676af-b513-41ae-b66e-e56d7796f51e" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearTwo_30e67679-be90-465f-a184-226f6036e789" xlink:href="tgen-20241231.xsd#tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearTwo"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_tgen_FiniteLivedIntangibleAssetsAndLiabilitiesNet_27e7d53d-7ab9-4b09-bf0d-9a499371d50f" xlink:to="loc_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearTwo_30e67679-be90-465f-a184-226f6036e789" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearFour_c635e2c9-de4c-4458-baf9-43d03c1d9195" xlink:href="tgen-20241231.xsd#tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearFour"/>
    <link:calculationArc order="5" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_tgen_FiniteLivedIntangibleAssetsAndLiabilitiesNet_27e7d53d-7ab9-4b09-bf0d-9a499371d50f" xlink:to="loc_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearFour_c635e2c9-de4c-4458-baf9-43d03c1d9195" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearFive_f73a8b6c-9669-47fa-ba9a-f7c587b98525" xlink:href="tgen-20241231.xsd#tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearFive"/>
    <link:calculationArc order="6" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_tgen_FiniteLivedIntangibleAssetsAndLiabilitiesNet_27e7d53d-7ab9-4b09-bf0d-9a499371d50f" xlink:to="loc_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearFive_f73a8b6c-9669-47fa-ba9a-f7c587b98525" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/PropertyplantandequipmentSummaryofPropertyandEquipmentDetails" xlink:type="simple" xlink:href="tgen-20241231.xsd#PropertyplantandequipmentSummaryofPropertyandEquipmentDetails"/>
  <link:calculationLink xlink:role="http://www.tecogen.com/role/PropertyplantandequipmentSummaryofPropertyandEquipmentDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentNet_1b6e3c8b-0f77-42d2-80f3-f057594fa4e6" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentNet"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentGross_dff08049-1709-4018-b217-4542fb22a035" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentGross"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentNet_1b6e3c8b-0f77-42d2-80f3-f057594fa4e6" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentGross_dff08049-1709-4018-b217-4542fb22a035" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_12d1d450-382f-4bb5-8599-f7d58b535988" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment"/>
    <link:calculationArc order="2" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentNet_1b6e3c8b-0f77-42d2-80f3-f057594fa4e6" xlink:to="loc_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_12d1d450-382f-4bb5-8599-f7d58b535988" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/LeasesSupplementalBalanceSheetInformationDetails" xlink:type="simple" xlink:href="tgen-20241231.xsd#LeasesSupplementalBalanceSheetInformationDetails"/>
  <link:calculationLink xlink:role="http://www.tecogen.com/role/LeasesSupplementalBalanceSheetInformationDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinanceLeaseLiability_1fa394c3-b006-4179-aad6-5a36cf5a89f0" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FinanceLeaseLiability"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinanceLeaseLiabilityCurrent_3bc2ef7c-28a6-40a2-aaf9-af6621f62003" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FinanceLeaseLiabilityCurrent"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_FinanceLeaseLiability_1fa394c3-b006-4179-aad6-5a36cf5a89f0" xlink:to="loc_us-gaap_FinanceLeaseLiabilityCurrent_3bc2ef7c-28a6-40a2-aaf9-af6621f62003" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinanceLeaseLiabilityNoncurrent_8a2c281e-69b5-404a-9ff6-113f7caa7b56" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FinanceLeaseLiabilityNoncurrent"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_FinanceLeaseLiability_1fa394c3-b006-4179-aad6-5a36cf5a89f0" xlink:to="loc_us-gaap_FinanceLeaseLiabilityNoncurrent_8a2c281e-69b5-404a-9ff6-113f7caa7b56" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseLiability_e2ebd09f-835d-4d3e-98bb-7847e79bc52a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseLiability"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseLiabilityNoncurrent_190a95da-39de-4ad8-8dba-b4e5fa4fc84b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_OperatingLeaseLiability_e2ebd09f-835d-4d3e-98bb-7847e79bc52a" xlink:to="loc_us-gaap_OperatingLeaseLiabilityNoncurrent_190a95da-39de-4ad8-8dba-b4e5fa4fc84b" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseLiabilityCurrent_374a285f-a300-493c-8fe4-48a4d2945479" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseLiabilityCurrent"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_OperatingLeaseLiability_e2ebd09f-835d-4d3e-98bb-7847e79bc52a" xlink:to="loc_us-gaap_OperatingLeaseLiabilityCurrent_374a285f-a300-493c-8fe4-48a4d2945479" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/LeasesFutureMinimumLeaseCommitmentsDetails" xlink:type="simple" xlink:href="tgen-20241231.xsd#LeasesFutureMinimumLeaseCommitmentsDetails"/>
  <link:calculationLink xlink:role="http://www.tecogen.com/role/LeasesFutureMinimumLeaseCommitmentsDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinanceLeaseLiabilityPaymentsDue_2a494e4e-d883-4744-98c0-ffdeddaeddc1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FinanceLeaseLiabilityPaymentsDue"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinanceLeaseLiabilityPaymentsDueYearFour_16d48f26-2a9b-41b8-8356-01b44d96ec36" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FinanceLeaseLiabilityPaymentsDueYearFour"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_FinanceLeaseLiabilityPaymentsDue_2a494e4e-d883-4744-98c0-ffdeddaeddc1" xlink:to="loc_us-gaap_FinanceLeaseLiabilityPaymentsDueYearFour_16d48f26-2a9b-41b8-8356-01b44d96ec36" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinanceLeaseLiabilityPaymentsDueNextTwelveMonths_7a2e3092-d054-487c-a4a6-ff69bad7a075" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FinanceLeaseLiabilityPaymentsDueNextTwelveMonths"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_FinanceLeaseLiabilityPaymentsDue_2a494e4e-d883-4744-98c0-ffdeddaeddc1" xlink:to="loc_us-gaap_FinanceLeaseLiabilityPaymentsDueNextTwelveMonths_7a2e3092-d054-487c-a4a6-ff69bad7a075" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinanceLeaseLiabilityPaymentsDueYearTwo_d35b1cbc-787b-44e5-9f9a-d62462e15d8e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FinanceLeaseLiabilityPaymentsDueYearTwo"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_FinanceLeaseLiabilityPaymentsDue_2a494e4e-d883-4744-98c0-ffdeddaeddc1" xlink:to="loc_us-gaap_FinanceLeaseLiabilityPaymentsDueYearTwo_d35b1cbc-787b-44e5-9f9a-d62462e15d8e" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinanceLeaseLiabilityPaymentsDueYearThree_890aa590-374e-4083-8950-692685eb64ef" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FinanceLeaseLiabilityPaymentsDueYearThree"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_FinanceLeaseLiabilityPaymentsDue_2a494e4e-d883-4744-98c0-ffdeddaeddc1" xlink:to="loc_us-gaap_FinanceLeaseLiabilityPaymentsDueYearThree_890aa590-374e-4083-8950-692685eb64ef" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinanceLeaseLiabilityPaymentsDueYearFive_df402fe0-ed7a-4a10-a5d1-2c02840e96be" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FinanceLeaseLiabilityPaymentsDueYearFive"/>
    <link:calculationArc order="5" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_FinanceLeaseLiabilityPaymentsDue_2a494e4e-d883-4744-98c0-ffdeddaeddc1" xlink:to="loc_us-gaap_FinanceLeaseLiabilityPaymentsDueYearFive_df402fe0-ed7a-4a10-a5d1-2c02840e96be" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinanceLeaseLiabilityPaymentsDueAfterYearFive_d70c471c-0838-4759-afc0-0c058c66a57a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FinanceLeaseLiabilityPaymentsDueAfterYearFive"/>
    <link:calculationArc order="6" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_FinanceLeaseLiabilityPaymentsDue_2a494e4e-d883-4744-98c0-ffdeddaeddc1" xlink:to="loc_us-gaap_FinanceLeaseLiabilityPaymentsDueAfterYearFive_d70c471c-0838-4759-afc0-0c058c66a57a" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_OperatingAndFinanceLeaseLiabilityToBePaid_742df249-db7e-4d34-9b2a-672e9a79d154" xlink:href="tgen-20241231.xsd#tgen_OperatingAndFinanceLeaseLiabilityToBePaid"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_OperatingAndFinanceLeaseLiabilityToBePaidYearTwo_91a47107-3b4f-43d2-896f-26c2f7508a5a" xlink:href="tgen-20241231.xsd#tgen_OperatingAndFinanceLeaseLiabilityToBePaidYearTwo"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_tgen_OperatingAndFinanceLeaseLiabilityToBePaid_742df249-db7e-4d34-9b2a-672e9a79d154" xlink:to="loc_tgen_OperatingAndFinanceLeaseLiabilityToBePaidYearTwo_91a47107-3b4f-43d2-896f-26c2f7508a5a" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_OperatingAndFinanceLeaseLiabilityToBePaidYearFive_b808cde4-fec9-4318-9f26-ed9b8aef045f" xlink:href="tgen-20241231.xsd#tgen_OperatingAndFinanceLeaseLiabilityToBePaidYearFive"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_tgen_OperatingAndFinanceLeaseLiabilityToBePaid_742df249-db7e-4d34-9b2a-672e9a79d154" xlink:to="loc_tgen_OperatingAndFinanceLeaseLiabilityToBePaidYearFive_b808cde4-fec9-4318-9f26-ed9b8aef045f" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_OperatingAndFinanceLeaseLiabilityToBePaidYearThree_19ddc621-e2f4-4a9a-923a-1e9478651585" xlink:href="tgen-20241231.xsd#tgen_OperatingAndFinanceLeaseLiabilityToBePaidYearThree"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_tgen_OperatingAndFinanceLeaseLiabilityToBePaid_742df249-db7e-4d34-9b2a-672e9a79d154" xlink:to="loc_tgen_OperatingAndFinanceLeaseLiabilityToBePaidYearThree_19ddc621-e2f4-4a9a-923a-1e9478651585" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_OperatingAndFinanceLeaseLiabilityToBePaidYearFour_720c83b1-6fe5-4ef5-a980-7fd979270a5f" xlink:href="tgen-20241231.xsd#tgen_OperatingAndFinanceLeaseLiabilityToBePaidYearFour"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_tgen_OperatingAndFinanceLeaseLiabilityToBePaid_742df249-db7e-4d34-9b2a-672e9a79d154" xlink:to="loc_tgen_OperatingAndFinanceLeaseLiabilityToBePaidYearFour_720c83b1-6fe5-4ef5-a980-7fd979270a5f" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_OperatingAndFinanceLeaseLiabilityToBePaidAfterYearFive_06ca6e07-d417-452f-817c-9bd6b24f5832" xlink:href="tgen-20241231.xsd#tgen_OperatingAndFinanceLeaseLiabilityToBePaidAfterYearFive"/>
    <link:calculationArc order="5" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_tgen_OperatingAndFinanceLeaseLiabilityToBePaid_742df249-db7e-4d34-9b2a-672e9a79d154" xlink:to="loc_tgen_OperatingAndFinanceLeaseLiabilityToBePaidAfterYearFive_06ca6e07-d417-452f-817c-9bd6b24f5832" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_OperatingAndFinanceLeaseLiabilityToBePaidYearOne_4778abc2-f98e-41d5-b29c-583caab50c01" xlink:href="tgen-20241231.xsd#tgen_OperatingAndFinanceLeaseLiabilityToBePaidYearOne"/>
    <link:calculationArc order="6" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_tgen_OperatingAndFinanceLeaseLiabilityToBePaid_742df249-db7e-4d34-9b2a-672e9a79d154" xlink:to="loc_tgen_OperatingAndFinanceLeaseLiabilityToBePaidYearOne_4778abc2-f98e-41d5-b29c-583caab50c01" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_9329470d-f260-4e30-99d3-4ef9e998149e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount_bd9660d2-8136-4408-b6f8-528655ec036d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_9329470d-f260-4e30-99d3-4ef9e998149e" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount_bd9660d2-8136-4408-b6f8-528655ec036d" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseLiability_3b583ac3-6db2-4250-8ada-2815c63d5ab3" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseLiability"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_9329470d-f260-4e30-99d3-4ef9e998149e" xlink:to="loc_us-gaap_OperatingLeaseLiability_3b583ac3-6db2-4250-8ada-2815c63d5ab3" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/LeasesFutureMinimumLeaseCommitmentsDetails_1" xlink:type="simple" xlink:href="tgen-20241231.xsd#LeasesFutureMinimumLeaseCommitmentsDetails_1"/>
  <link:calculationLink xlink:role="http://www.tecogen.com/role/LeasesFutureMinimumLeaseCommitmentsDetails_1" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_679ba834-6926-4c11-ab0f-2f1dbb841470" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour_8700cea4-5c34-45ad-a6a0-56ed0fe3389f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_679ba834-6926-4c11-ab0f-2f1dbb841470" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour_8700cea4-5c34-45ad-a6a0-56ed0fe3389f" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_7fb7e740-f790-4e73-a0ca-986c4cbe8250" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_679ba834-6926-4c11-ab0f-2f1dbb841470" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_7fb7e740-f790-4e73-a0ca-986c4cbe8250" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive_9ef51f54-ae11-4930-adbe-ecc83825bf0f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_679ba834-6926-4c11-ab0f-2f1dbb841470" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive_9ef51f54-ae11-4930-adbe-ecc83825bf0f" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree_6f433c82-f67c-4be1-b058-fb702de23ec7" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_679ba834-6926-4c11-ab0f-2f1dbb841470" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree_6f433c82-f67c-4be1-b058-fb702de23ec7" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive_fc76f60c-82b3-4cd7-8764-44ad94f320bf" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive"/>
    <link:calculationArc order="5" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_679ba834-6926-4c11-ab0f-2f1dbb841470" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive_fc76f60c-82b3-4cd7-8764-44ad94f320bf" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_78b0555d-5695-40f1-bbd1-c1e510f7de57" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo"/>
    <link:calculationArc order="6" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_679ba834-6926-4c11-ab0f-2f1dbb841470" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_78b0555d-5695-40f1-bbd1-c1e510f7de57" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/FairValueMeasurementsScheduleofAssetReportedinConsolidatedBalanceSheetMeasuredatFairValueonRecurringBasisDetails" xlink:type="simple" xlink:href="tgen-20241231.xsd#FairValueMeasurementsScheduleofAssetReportedinConsolidatedBalanceSheetMeasuredatFairValueonRecurringBasisDetails"/>
  <link:calculationLink xlink:role="http://www.tecogen.com/role/FairValueMeasurementsScheduleofAssetReportedinConsolidatedBalanceSheetMeasuredatFairValueonRecurringBasisDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LiabilitiesFairValueDisclosure_e6f7530f-343e-4d36-95fb-9bbe6d8f3813" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LiabilitiesFairValueDisclosure"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetAcquisitionContingentConsiderationLiabilityNoncurrent_bc7b02f6-4dc7-40d5-a618-0d2f49e59b73" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetAcquisitionContingentConsiderationLiabilityNoncurrent"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LiabilitiesFairValueDisclosure_e6f7530f-343e-4d36-95fb-9bbe6d8f3813" xlink:to="loc_us-gaap_AssetAcquisitionContingentConsiderationLiabilityNoncurrent_bc7b02f6-4dc7-40d5-a618-0d2f49e59b73" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetAcquisitionContingentConsiderationLiabilityCurrent_a18c633a-0059-4e46-9f84-046d90a2b0d7" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetAcquisitionContingentConsiderationLiabilityCurrent"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LiabilitiesFairValueDisclosure_e6f7530f-343e-4d36-95fb-9bbe6d8f3813" xlink:to="loc_us-gaap_AssetAcquisitionContingentConsiderationLiabilityCurrent_a18c633a-0059-4e46-9f84-046d90a2b0d7" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/IncometaxesReconciliationofFederalStatutoryIncomeTaxProvisiontoCompanysActualProvisionDetails" xlink:type="simple" xlink:href="tgen-20241231.xsd#IncometaxesReconciliationofFederalStatutoryIncomeTaxProvisiontoCompanysActualProvisionDetails"/>
  <link:calculationLink xlink:role="http://www.tecogen.com/role/IncometaxesReconciliationofFederalStatutoryIncomeTaxProvisiontoCompanysActualProvisionDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxExpenseBenefit_e79c1e6e-52d9-47ff-9138-f8ed71599a0b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxExpenseBenefit"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_IncomeTaxReconciliationUnbenefitedOperatingLosses_9030f41f-7149-477c-8872-a5477ce8a0d9" xlink:href="tgen-20241231.xsd#tgen_IncomeTaxReconciliationUnbenefitedOperatingLosses"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_IncomeTaxExpenseBenefit_e79c1e6e-52d9-47ff-9138-f8ed71599a0b" xlink:to="loc_tgen_IncomeTaxReconciliationUnbenefitedOperatingLosses_9030f41f-7149-477c-8872-a5477ce8a0d9" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxReconciliationPriorYearIncomeTaxes_4d4453e6-8fba-41e7-b36a-3b846950a10c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxReconciliationPriorYearIncomeTaxes"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_IncomeTaxExpenseBenefit_e79c1e6e-52d9-47ff-9138-f8ed71599a0b" xlink:to="loc_us-gaap_IncomeTaxReconciliationPriorYearIncomeTaxes_4d4453e6-8fba-41e7-b36a-3b846950a10c" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxReconciliationNondeductibleExpenseResearchAndDevelopment_d49eb9ee-9346-4f22-9e5f-20e57930f484" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxReconciliationNondeductibleExpenseResearchAndDevelopment"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_IncomeTaxExpenseBenefit_e79c1e6e-52d9-47ff-9138-f8ed71599a0b" xlink:to="loc_us-gaap_IncomeTaxReconciliationNondeductibleExpenseResearchAndDevelopment_d49eb9ee-9346-4f22-9e5f-20e57930f484" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxReconciliationNondeductibleExpenseAmortization_a7f8447b-1306-46f1-94ca-de024a4a255e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxReconciliationNondeductibleExpenseAmortization"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_IncomeTaxExpenseBenefit_e79c1e6e-52d9-47ff-9138-f8ed71599a0b" xlink:to="loc_us-gaap_IncomeTaxReconciliationNondeductibleExpenseAmortization_a7f8447b-1306-46f1-94ca-de024a4a255e" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_EffectiveIncomeTaxRateReconciliationStateandLocalIncomeTaxesAmountDeferred_0cca701a-9327-473c-a6fc-01cc8e4e5205" xlink:href="tgen-20241231.xsd#tgen_EffectiveIncomeTaxRateReconciliationStateandLocalIncomeTaxesAmountDeferred"/>
    <link:calculationArc order="5" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_IncomeTaxExpenseBenefit_e79c1e6e-52d9-47ff-9138-f8ed71599a0b" xlink:to="loc_tgen_EffectiveIncomeTaxRateReconciliationStateandLocalIncomeTaxesAmountDeferred_0cca701a-9327-473c-a6fc-01cc8e4e5205" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_EffectiveIncomeTaxRateReconciliationStateandLocalIncomeTaxesAmountCurrent_8bb426e1-b4f4-472f-96ff-7ee512f0b8f0" xlink:href="tgen-20241231.xsd#tgen_EffectiveIncomeTaxRateReconciliationStateandLocalIncomeTaxesAmountCurrent"/>
    <link:calculationArc order="6" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_IncomeTaxExpenseBenefit_e79c1e6e-52d9-47ff-9138-f8ed71599a0b" xlink:to="loc_tgen_EffectiveIncomeTaxRateReconciliationStateandLocalIncomeTaxesAmountCurrent_8bb426e1-b4f4-472f-96ff-7ee512f0b8f0" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_EffectiveIncomeTaxRateReconciliationOperatingLossCarryforwardExpired_e94e6cb4-fb1b-4baf-ab0a-f064998b382a" xlink:href="tgen-20241231.xsd#tgen_EffectiveIncomeTaxRateReconciliationOperatingLossCarryforwardExpired"/>
    <link:calculationArc order="7" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_IncomeTaxExpenseBenefit_e79c1e6e-52d9-47ff-9138-f8ed71599a0b" xlink:to="loc_tgen_EffectiveIncomeTaxRateReconciliationOperatingLossCarryforwardExpired_e94e6cb4-fb1b-4baf-ab0a-f064998b382a" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxReconciliationNondeductibleExpenseImpairmentLosses_18d29d32-40ac-4773-82cd-f43824f3f2f1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxReconciliationNondeductibleExpenseImpairmentLosses"/>
    <link:calculationArc order="8" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_IncomeTaxExpenseBenefit_e79c1e6e-52d9-47ff-9138-f8ed71599a0b" xlink:to="loc_us-gaap_IncomeTaxReconciliationNondeductibleExpenseImpairmentLosses_18d29d32-40ac-4773-82cd-f43824f3f2f1" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate_6d1e8d7d-991a-4eb3-b5d8-10d1bfe87194" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate"/>
    <link:calculationArc order="9" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_IncomeTaxExpenseBenefit_e79c1e6e-52d9-47ff-9138-f8ed71599a0b" xlink:to="loc_us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate_6d1e8d7d-991a-4eb3-b5d8-10d1bfe87194" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance_67f2d719-01d7-42db-833d-a7f71c923c2b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance"/>
    <link:calculationArc order="10" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_IncomeTaxExpenseBenefit_e79c1e6e-52d9-47ff-9138-f8ed71599a0b" xlink:to="loc_us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance_67f2d719-01d7-42db-833d-a7f71c923c2b" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxReconciliationNondeductibleExpenseOther_95d8af58-08f3-4008-bdd5-d94cbf5e6c94" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxReconciliationNondeductibleExpenseOther"/>
    <link:calculationArc order="11" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_IncomeTaxExpenseBenefit_e79c1e6e-52d9-47ff-9138-f8ed71599a0b" xlink:to="loc_us-gaap_IncomeTaxReconciliationNondeductibleExpenseOther_95d8af58-08f3-4008-bdd5-d94cbf5e6c94" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxReconciliationTaxCreditsResearch_64851072-6f0a-47f9-ad77-1d8640575fb8" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxReconciliationTaxCreditsResearch"/>
    <link:calculationArc order="12" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_IncomeTaxExpenseBenefit_e79c1e6e-52d9-47ff-9138-f8ed71599a0b" xlink:to="loc_us-gaap_IncomeTaxReconciliationTaxCreditsResearch_64851072-6f0a-47f9-ad77-1d8640575fb8" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/IncometaxesScheduleofDeferredTaxAssetsDetails" xlink:type="simple" xlink:href="tgen-20241231.xsd#IncometaxesScheduleofDeferredTaxAssetsDetails"/>
  <link:calculationLink xlink:role="http://www.tecogen.com/role/IncometaxesScheduleofDeferredTaxAssetsDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsGross_e3e3c11d-92be-4362-9567-d6beaa967a0d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsGross"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsOperatingLossCarryforwards_7c37812e-f03d-4a92-b2bb-260b04ab4080" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsOperatingLossCarryforwards"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_DeferredTaxAssetsGross_e3e3c11d-92be-4362-9567-d6beaa967a0d" xlink:to="loc_us-gaap_DeferredTaxAssetsOperatingLossCarryforwards_7c37812e-f03d-4a92-b2bb-260b04ab4080" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsTaxCreditCarryforwards_a48ee0ec-544a-4fce-bedd-ae4055626079" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsTaxCreditCarryforwards"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_DeferredTaxAssetsGross_e3e3c11d-92be-4362-9567-d6beaa967a0d" xlink:to="loc_us-gaap_DeferredTaxAssetsTaxCreditCarryforwards_a48ee0ec-544a-4fce-bedd-ae4055626079" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_DeferredTaxAssetTaxDeferredExpenseReservesAndAccrualsAccruedLiabilitiesAndOther_5695edc7-8368-435e-be54-f6e60308195b" xlink:href="tgen-20241231.xsd#tgen_DeferredTaxAssetTaxDeferredExpenseReservesAndAccrualsAccruedLiabilitiesAndOther"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_DeferredTaxAssetsGross_e3e3c11d-92be-4362-9567-d6beaa967a0d" xlink:to="loc_tgen_DeferredTaxAssetTaxDeferredExpenseReservesAndAccrualsAccruedLiabilitiesAndOther_5695edc7-8368-435e-be54-f6e60308195b" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsGoodwillAndIntangibleAssets_101e97ae-6e4a-41cf-9bcb-821ace757eda" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsGoodwillAndIntangibleAssets"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_DeferredTaxAssetsGross_e3e3c11d-92be-4362-9567-d6beaa967a0d" xlink:to="loc_us-gaap_DeferredTaxAssetsGoodwillAndIntangibleAssets_101e97ae-6e4a-41cf-9bcb-821ace757eda" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_DeferredTaxAssetLeases_a2334f3a-7458-4d4b-938d-30eb6a6eb301" xlink:href="tgen-20241231.xsd#tgen_DeferredTaxAssetLeases"/>
    <link:calculationArc order="5" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_DeferredTaxAssetsGross_e3e3c11d-92be-4362-9567-d6beaa967a0d" xlink:to="loc_tgen_DeferredTaxAssetLeases_a2334f3a-7458-4d4b-938d-30eb6a6eb301" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts_6745164d-09b0-468f-abc9-5ea9c1c2d146" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts"/>
    <link:calculationArc order="6" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_DeferredTaxAssetsGross_e3e3c11d-92be-4362-9567-d6beaa967a0d" xlink:to="loc_us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts_6745164d-09b0-468f-abc9-5ea9c1c2d146" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefits_980b51fa-3d7e-42c6-9ffd-6607bc85e695" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefits"/>
    <link:calculationArc order="7" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_DeferredTaxAssetsGross_e3e3c11d-92be-4362-9567-d6beaa967a0d" xlink:to="loc_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefits_980b51fa-3d7e-42c6-9ffd-6607bc85e695" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsInventory_46238308-f524-4234-8154-53f5ded71715" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsInventory"/>
    <link:calculationArc order="8" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_DeferredTaxAssetsGross_e3e3c11d-92be-4362-9567-d6beaa967a0d" xlink:to="loc_us-gaap_DeferredTaxAssetsInventory_46238308-f524-4234-8154-53f5ded71715" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsPropertyPlantAndEquipment_a4c87395-5a17-4ab2-b4b8-f27a1039058f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsPropertyPlantAndEquipment"/>
    <link:calculationArc order="9" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_DeferredTaxAssetsGross_e3e3c11d-92be-4362-9567-d6beaa967a0d" xlink:to="loc_us-gaap_DeferredTaxAssetsPropertyPlantAndEquipment_a4c87395-5a17-4ab2-b4b8-f27a1039058f" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsOther_41affdd6-4abc-49fd-ad99-14f88da9dc26" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsOther"/>
    <link:calculationArc order="10" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_DeferredTaxAssetsGross_e3e3c11d-92be-4362-9567-d6beaa967a0d" xlink:to="loc_us-gaap_DeferredTaxAssetsOther_41affdd6-4abc-49fd-ad99-14f88da9dc26" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxLiabilities_b9191290-75b6-4619-adca-e0764d09c924" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxLiabilities"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsGross_b71670f1-5ca0-4990-94e8-438c4b988f93" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsGross"/>
    <link:calculationArc order="1" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_DeferredTaxLiabilities_b9191290-75b6-4619-adca-e0764d09c924" xlink:to="loc_us-gaap_DeferredTaxAssetsGross_b71670f1-5ca0-4990-94e8-438c4b988f93" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsValuationAllowance_11d6fe50-af50-4957-a62a-57589bfcf36d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsValuationAllowance"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_DeferredTaxLiabilities_b9191290-75b6-4619-adca-e0764d09c924" xlink:to="loc_us-gaap_DeferredTaxAssetsValuationAllowance_11d6fe50-af50-4957-a62a-57589bfcf36d" xlink:type="arc"/>
  </link:calculationLink>
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.DEF
<SEQUENCE>9
<FILENAME>tgen-20241231_def.xml
<DESCRIPTION>XBRL TAXONOMY EXTENSION DEFINITION LINKBASE DOCUMENT
<TEXT>
<XBRL>
<?xml version="1.0" encoding="UTF-8"?>

<!--XBRL Document Created with the Workiva Platform-->
<!--Copyright 2025 Workiva-->
<!--r:27a45c8e-ccb7-4ee0-baf8-e027f6202253,g:a67c4460-f12d-456b-86fe-b4f9ec620b6c-->
<link:linkbase xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xbrldt="http://xbrl.org/2005/xbrldt" xsi:schemaLocation="http://www.xbrl.org/2003/linkbase http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd">
  <link:arcroleRef arcroleURI="http://xbrl.org/int/dim/arcrole/all" xlink:type="simple" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#all"/>
  <link:arcroleRef arcroleURI="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:type="simple" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#hypercube-dimension"/>
  <link:arcroleRef arcroleURI="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:type="simple" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#dimension-default"/>
  <link:arcroleRef arcroleURI="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:type="simple" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#dimension-domain"/>
  <link:arcroleRef arcroleURI="http://xbrl.org/int/dim/arcrole/domain-member" xlink:type="simple" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#domain-member"/>
  <link:roleRef roleURI="http://www.tecogen.com/role/ConsolidatedStatementsofOperations" xlink:type="simple" xlink:href="tgen-20241231.xsd#ConsolidatedStatementsofOperations"/>
  <link:definitionLink xlink:role="http://www.tecogen.com/role/ConsolidatedStatementsofOperations" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementLineItems_18d01b6c-792b-44ef-9c9f-219e4c7637a8" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementTable_92097928-8a34-4d86-b6eb-494db6a87ba8" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_StatementLineItems_18d01b6c-792b-44ef-9c9f-219e4c7637a8" xlink:to="loc_us-gaap_StatementTable_92097928-8a34-4d86-b6eb-494db6a87ba8" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductOrServiceAxis_fe32c86d-622f-435a-a901-d491c73512a9" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ProductOrServiceAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_StatementTable_92097928-8a34-4d86-b6eb-494db6a87ba8" xlink:to="loc_srt_ProductOrServiceAxis_fe32c86d-622f-435a-a901-d491c73512a9" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductsAndServicesDomain_fe32c86d-622f-435a-a901-d491c73512a9_default" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ProductsAndServicesDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_ProductOrServiceAxis_fe32c86d-622f-435a-a901-d491c73512a9" xlink:to="loc_srt_ProductsAndServicesDomain_fe32c86d-622f-435a-a901-d491c73512a9_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductsAndServicesDomain_9161e2d3-5ba7-47ba-9a6b-cbeaa292080d" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ProductsAndServicesDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_ProductOrServiceAxis_fe32c86d-622f-435a-a901-d491c73512a9" xlink:to="loc_srt_ProductsAndServicesDomain_9161e2d3-5ba7-47ba-9a6b-cbeaa292080d" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProductMember_ed85a16c-3141-4ea9-81bb-8bd566269a5c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProductMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_ProductsAndServicesDomain_9161e2d3-5ba7-47ba-9a6b-cbeaa292080d" xlink:to="loc_us-gaap_ProductMember_ed85a16c-3141-4ea9-81bb-8bd566269a5c" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ServiceMember_8520f36b-7ff5-4377-88a3-972877f1510f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ServiceMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_ProductsAndServicesDomain_9161e2d3-5ba7-47ba-9a6b-cbeaa292080d" xlink:to="loc_us-gaap_ServiceMember_8520f36b-7ff5-4377-88a3-972877f1510f" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EnergyServiceMember_e76f17c0-4497-4c0e-96c5-7c96befdf7f1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EnergyServiceMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_ProductsAndServicesDomain_9161e2d3-5ba7-47ba-9a6b-cbeaa292080d" xlink:to="loc_us-gaap_EnergyServiceMember_e76f17c0-4497-4c0e-96c5-7c96befdf7f1" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_affd65ba-ce93-4810-96b9-ad9a47d6c4a1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_StatementLineItems_18d01b6c-792b-44ef-9c9f-219e4c7637a8" xlink:to="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_affd65ba-ce93-4810-96b9-ad9a47d6c4a1" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CostOfGoodsAndServicesSold_658490aa-d9c6-4830-b703-2b68047dcbbf" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CostOfGoodsAndServicesSold"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_StatementLineItems_18d01b6c-792b-44ef-9c9f-219e4c7637a8" xlink:to="loc_us-gaap_CostOfGoodsAndServicesSold_658490aa-d9c6-4830-b703-2b68047dcbbf" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GrossProfit_6ba22174-aa6d-46b9-880c-31d8c4bc17b8" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GrossProfit"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_StatementLineItems_18d01b6c-792b-44ef-9c9f-219e4c7637a8" xlink:to="loc_us-gaap_GrossProfit_6ba22174-aa6d-46b9-880c-31d8c4bc17b8" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingExpensesAbstract_2a843cd4-7a71-4839-8a15-4362974ab1cd" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingExpensesAbstract"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_StatementLineItems_18d01b6c-792b-44ef-9c9f-219e4c7637a8" xlink:to="loc_us-gaap_OperatingExpensesAbstract_2a843cd4-7a71-4839-8a15-4362974ab1cd" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GeneralAndAdministrativeExpense_bdbba2ed-09e0-46f6-9f11-bc457570f215" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GeneralAndAdministrativeExpense"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_OperatingExpensesAbstract_2a843cd4-7a71-4839-8a15-4362974ab1cd" xlink:to="loc_us-gaap_GeneralAndAdministrativeExpense_bdbba2ed-09e0-46f6-9f11-bc457570f215" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SellingExpense_58878891-e75b-45b0-aab7-b8705cc438f6" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SellingExpense"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_OperatingExpensesAbstract_2a843cd4-7a71-4839-8a15-4362974ab1cd" xlink:to="loc_us-gaap_SellingExpense_58878891-e75b-45b0-aab7-b8705cc438f6" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ResearchAndDevelopmentExpense_9868dcab-844a-4815-b036-e495ea4d8ced" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ResearchAndDevelopmentExpense"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_OperatingExpensesAbstract_2a843cd4-7a71-4839-8a15-4362974ab1cd" xlink:to="loc_us-gaap_ResearchAndDevelopmentExpense_9868dcab-844a-4815-b036-e495ea4d8ced" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GainLossOnDispositionOfAssets1_d6fd499c-6ffa-4efd-a2a8-e87f0bf9d74b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GainLossOnDispositionOfAssets1"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_OperatingExpensesAbstract_2a843cd4-7a71-4839-8a15-4362974ab1cd" xlink:to="loc_us-gaap_GainLossOnDispositionOfAssets1_d6fd499c-6ffa-4efd-a2a8-e87f0bf9d74b" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ImpairmentOfLongLivedAssetsHeldForUse_1c04f5c0-2ac7-4376-bb76-465d84af4b13" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ImpairmentOfLongLivedAssetsHeldForUse"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_OperatingExpensesAbstract_2a843cd4-7a71-4839-8a15-4362974ab1cd" xlink:to="loc_us-gaap_ImpairmentOfLongLivedAssetsHeldForUse_1c04f5c0-2ac7-4376-bb76-465d84af4b13" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillImpairmentLoss_8246c103-7036-47c9-ade4-f5c0edd5a220" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GoodwillImpairmentLoss"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_OperatingExpensesAbstract_2a843cd4-7a71-4839-8a15-4362974ab1cd" xlink:to="loc_us-gaap_GoodwillImpairmentLoss_8246c103-7036-47c9-ade4-f5c0edd5a220" xlink:type="arc" order="6"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingExpenses_1d344f3d-489f-4e5a-ba55-af84af7be802" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingExpenses"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_OperatingExpensesAbstract_2a843cd4-7a71-4839-8a15-4362974ab1cd" xlink:to="loc_us-gaap_OperatingExpenses_1d344f3d-489f-4e5a-ba55-af84af7be802" xlink:type="arc" order="7"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingIncomeLoss_9aff6ef8-dd2c-41cc-9768-e45b0556748b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingIncomeLoss"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_StatementLineItems_18d01b6c-792b-44ef-9c9f-219e4c7637a8" xlink:to="loc_us-gaap_OperatingIncomeLoss_9aff6ef8-dd2c-41cc-9768-e45b0556748b" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherIncomeAndExpensesAbstract_4551e44c-7208-46f7-8478-a3fa5c670c90" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherIncomeAndExpensesAbstract"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_StatementLineItems_18d01b6c-792b-44ef-9c9f-219e4c7637a8" xlink:to="loc_us-gaap_OtherIncomeAndExpensesAbstract_4551e44c-7208-46f7-8478-a3fa5c670c90" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_InterestAndOtherIncomeExpense_47ea3f53-963f-4f4d-aaa2-c4ea72758de2" xlink:href="tgen-20241231.xsd#tgen_InterestAndOtherIncomeExpense"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_OtherIncomeAndExpensesAbstract_4551e44c-7208-46f7-8478-a3fa5c670c90" xlink:to="loc_tgen_InterestAndOtherIncomeExpense_47ea3f53-963f-4f4d-aaa2-c4ea72758de2" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InterestExpenseNonoperating_91324adb-3523-4dbf-bc07-156ef04af812" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InterestExpenseNonoperating"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_OtherIncomeAndExpensesAbstract_4551e44c-7208-46f7-8478-a3fa5c670c90" xlink:to="loc_us-gaap_InterestExpenseNonoperating_91324adb-3523-4dbf-bc07-156ef04af812" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NonoperatingIncomeExpense_bdc8959f-41af-4c0d-87f4-b1f0db8a9a68" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NonoperatingIncomeExpense"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_OtherIncomeAndExpensesAbstract_4551e44c-7208-46f7-8478-a3fa5c670c90" xlink:to="loc_us-gaap_NonoperatingIncomeExpense_bdc8959f-41af-4c0d-87f4-b1f0db8a9a68" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_735844a5-c918-4cc7-8862-65c722b40b6c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_StatementLineItems_18d01b6c-792b-44ef-9c9f-219e4c7637a8" xlink:to="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_735844a5-c918-4cc7-8862-65c722b40b6c" xlink:type="arc" order="6"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_IncomeTaxExpenseBenefitState_7502c1df-2796-44a3-8dae-88770671b9c3" xlink:href="tgen-20241231.xsd#tgen_IncomeTaxExpenseBenefitState"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_StatementLineItems_18d01b6c-792b-44ef-9c9f-219e4c7637a8" xlink:to="loc_tgen_IncomeTaxExpenseBenefitState_7502c1df-2796-44a3-8dae-88770671b9c3" xlink:type="arc" order="7"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProfitLoss_efbf3c96-d83f-49af-b20c-dfca5e887804" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProfitLoss"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_StatementLineItems_18d01b6c-792b-44ef-9c9f-219e4c7637a8" xlink:to="loc_us-gaap_ProfitLoss_efbf3c96-d83f-49af-b20c-dfca5e887804" xlink:type="arc" order="8"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetIncomeLossAttributableToNoncontrollingInterest_a6a58f6a-2ca0-4ac5-9122-dfe46a63ea52" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetIncomeLossAttributableToNoncontrollingInterest"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_StatementLineItems_18d01b6c-792b-44ef-9c9f-219e4c7637a8" xlink:to="loc_us-gaap_NetIncomeLossAttributableToNoncontrollingInterest_a6a58f6a-2ca0-4ac5-9122-dfe46a63ea52" xlink:type="arc" order="9"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetIncomeLoss_853c36f5-e0a4-4ec2-a8f6-733f199f9baf" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetIncomeLoss"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_StatementLineItems_18d01b6c-792b-44ef-9c9f-219e4c7637a8" xlink:to="loc_us-gaap_NetIncomeLoss_853c36f5-e0a4-4ec2-a8f6-733f199f9baf" xlink:type="arc" order="10"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EarningsPerShareBasic_05bf1c3f-91b2-425e-970a-69cb034179d7" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EarningsPerShareBasic"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_StatementLineItems_18d01b6c-792b-44ef-9c9f-219e4c7637a8" xlink:to="loc_us-gaap_EarningsPerShareBasic_05bf1c3f-91b2-425e-970a-69cb034179d7" xlink:type="arc" order="11"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_cc8f5b5f-7541-44ba-988f-e6ba4107e308" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingBasic"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_StatementLineItems_18d01b6c-792b-44ef-9c9f-219e4c7637a8" xlink:to="loc_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_cc8f5b5f-7541-44ba-988f-e6ba4107e308" xlink:type="arc" order="12"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EarningsPerShareDiluted_7bae0fe4-ef9b-4209-bfaf-4b4a1ecbf313" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EarningsPerShareDiluted"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_StatementLineItems_18d01b6c-792b-44ef-9c9f-219e4c7637a8" xlink:to="loc_us-gaap_EarningsPerShareDiluted_7bae0fe4-ef9b-4209-bfaf-4b4a1ecbf313" xlink:type="arc" order="13"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_fe9f22b6-8a72-4a04-9319-ed28956f07ab" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_StatementLineItems_18d01b6c-792b-44ef-9c9f-219e4c7637a8" xlink:to="loc_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_fe9f22b6-8a72-4a04-9319-ed28956f07ab" xlink:type="arc" order="14"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/ConsolidatedStatementsofStockholdersEquity" xlink:type="simple" xlink:href="tgen-20241231.xsd#ConsolidatedStatementsofStockholdersEquity"/>
  <link:definitionLink xlink:role="http://www.tecogen.com/role/ConsolidatedStatementsofStockholdersEquity" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementLineItems_e2f66987-a0c8-4d4d-b4cb-94d422044f4e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementTable_9e413df9-b2f4-4953-b581-7c1d303da3ac" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_StatementLineItems_e2f66987-a0c8-4d4d-b4cb-94d422044f4e" xlink:to="loc_us-gaap_StatementTable_9e413df9-b2f4-4953-b581-7c1d303da3ac" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementEquityComponentsAxis_53125d8d-b172-408a-995c-3640bf517361" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementEquityComponentsAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_StatementTable_9e413df9-b2f4-4953-b581-7c1d303da3ac" xlink:to="loc_us-gaap_StatementEquityComponentsAxis_53125d8d-b172-408a-995c-3640bf517361" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquityComponentDomain_53125d8d-b172-408a-995c-3640bf517361_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EquityComponentDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_StatementEquityComponentsAxis_53125d8d-b172-408a-995c-3640bf517361" xlink:to="loc_us-gaap_EquityComponentDomain_53125d8d-b172-408a-995c-3640bf517361_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquityComponentDomain_861e9da5-23a5-4d6c-94ce-fd304cbfc978" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EquityComponentDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_StatementEquityComponentsAxis_53125d8d-b172-408a-995c-3640bf517361" xlink:to="loc_us-gaap_EquityComponentDomain_861e9da5-23a5-4d6c-94ce-fd304cbfc978" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockMember_20586d99-7563-47a6-8c99-47e31039ed96" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_EquityComponentDomain_861e9da5-23a5-4d6c-94ce-fd304cbfc978" xlink:to="loc_us-gaap_CommonStockMember_20586d99-7563-47a6-8c99-47e31039ed96" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdditionalPaidInCapitalMember_8edbc3aa-fa05-4480-aa01-e9267393342f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AdditionalPaidInCapitalMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_EquityComponentDomain_861e9da5-23a5-4d6c-94ce-fd304cbfc978" xlink:to="loc_us-gaap_AdditionalPaidInCapitalMember_8edbc3aa-fa05-4480-aa01-e9267393342f" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RetainedEarningsMember_ed36c891-aeb9-485a-95dc-2181dd273b06" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RetainedEarningsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_EquityComponentDomain_861e9da5-23a5-4d6c-94ce-fd304cbfc978" xlink:to="loc_us-gaap_RetainedEarningsMember_ed36c891-aeb9-485a-95dc-2181dd273b06" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NoncontrollingInterestMember_3cf6d371-656c-4fa8-b514-4257c66df653" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NoncontrollingInterestMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_EquityComponentDomain_861e9da5-23a5-4d6c-94ce-fd304cbfc978" xlink:to="loc_us-gaap_NoncontrollingInterestMember_3cf6d371-656c-4fa8-b514-4257c66df653" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_62e4035b-b5cd-4844-a866-c577e033e523" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInStockholdersEquityRollForward"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_StatementLineItems_e2f66987-a0c8-4d4d-b4cb-94d422044f4e" xlink:to="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_62e4035b-b5cd-4844-a866-c577e033e523" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharesOutstanding_fd76486d-bba9-47d4-a53c-6b6e2429c5c4" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SharesOutstanding"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_62e4035b-b5cd-4844-a866-c577e033e523" xlink:to="loc_us-gaap_SharesOutstanding_fd76486d-bba9-47d4-a53c-6b6e2429c5c4" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest_1ab1939e-8dd6-4b69-807f-03ebbf9b38e1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_62e4035b-b5cd-4844-a866-c577e033e523" xlink:to="loc_us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest_1ab1939e-8dd6-4b69-807f-03ebbf9b38e1" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_c8f5901f-1aae-45af-9e36-f1c4492e5531" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_62e4035b-b5cd-4844-a866-c577e033e523" xlink:to="loc_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_c8f5901f-1aae-45af-9e36-f1c4492e5531" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised_0248fbf8-8e7d-4017-a831-4ffa2ff9f0d7" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_62e4035b-b5cd-4844-a866-c577e033e523" xlink:to="loc_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised_0248fbf8-8e7d-4017-a831-4ffa2ff9f0d7" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MinorityInterestDecreaseFromDistributionsToNoncontrollingInterestHolders_43292ab3-473b-456d-850d-4c02fb3707f0" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_MinorityInterestDecreaseFromDistributionsToNoncontrollingInterestHolders"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_62e4035b-b5cd-4844-a866-c577e033e523" xlink:to="loc_us-gaap_MinorityInterestDecreaseFromDistributionsToNoncontrollingInterestHolders_43292ab3-473b-456d-850d-4c02fb3707f0" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_83d1e0d5-d1a7-42cd-b4c9-ba412d320929" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_62e4035b-b5cd-4844-a866-c577e033e523" xlink:to="loc_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_83d1e0d5-d1a7-42cd-b4c9-ba412d320929" xlink:type="arc" order="6"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProfitLoss_c45521f9-3e4a-45aa-aa6a-43686cd6a0d0" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProfitLoss"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_62e4035b-b5cd-4844-a866-c577e033e523" xlink:to="loc_us-gaap_ProfitLoss_c45521f9-3e4a-45aa-aa6a-43686cd6a0d0" xlink:type="arc" order="7"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharesOutstanding_bb5c30ce-edab-4da1-9b64-3f292b08cbe5" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SharesOutstanding"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest_3b10fd67-336d-4f60-a214-9125f83fe03b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/StockholdersequityTables" xlink:type="simple" xlink:href="tgen-20241231.xsd#StockholdersequityTables"/>
  <link:definitionLink xlink:role="http://www.tecogen.com/role/StockholdersequityTables" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_3146df58-ce71-4869-9fe9-c6963c85e0f0" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_5604dbfe-d1e4-44b0-bb89-fe8ae3eac7f7" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_3146df58-ce71-4869-9fe9-c6963c85e0f0" xlink:to="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_5604dbfe-d1e4-44b0-bb89-fe8ae3eac7f7" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ConsolidatedEntitiesAxis_3725f42c-eb01-46d0-a5d2-12a7b15434fc" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ConsolidatedEntitiesAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_5604dbfe-d1e4-44b0-bb89-fe8ae3eac7f7" xlink:to="loc_srt_ConsolidatedEntitiesAxis_3725f42c-eb01-46d0-a5d2-12a7b15434fc" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ConsolidatedEntitiesDomain_3725f42c-eb01-46d0-a5d2-12a7b15434fc_default" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ConsolidatedEntitiesDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_ConsolidatedEntitiesAxis_3725f42c-eb01-46d0-a5d2-12a7b15434fc" xlink:to="loc_srt_ConsolidatedEntitiesDomain_3725f42c-eb01-46d0-a5d2-12a7b15434fc_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ConsolidatedEntitiesDomain_f5512b81-0b61-4e71-987a-b92d5923d15e" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ConsolidatedEntitiesDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_ConsolidatedEntitiesAxis_3725f42c-eb01-46d0-a5d2-12a7b15434fc" xlink:to="loc_srt_ConsolidatedEntitiesDomain_f5512b81-0b61-4e71-987a-b92d5923d15e" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ParentCompanyMember_e2f348ec-b49b-4d0b-bcee-a496b28cb4b3" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ParentCompanyMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_ConsolidatedEntitiesDomain_f5512b81-0b61-4e71-987a-b92d5923d15e" xlink:to="loc_srt_ParentCompanyMember_e2f348ec-b49b-4d0b-bcee-a496b28cb4b3" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock_ba66b80b-f29a-4740-b1c9-c69699b63356" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_3146df58-ce71-4869-9fe9-c6963c85e0f0" xlink:to="loc_us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock_ba66b80b-f29a-4740-b1c9-c69699b63356" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock_1e41e750-c53a-470f-9d07-98a5b89ce9d3" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_3146df58-ce71-4869-9fe9-c6963c85e0f0" xlink:to="loc_us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock_1e41e750-c53a-470f-9d07-98a5b89ce9d3" xlink:type="arc" order="1"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/NatureofbusinessandoperationsDetails" xlink:type="simple" xlink:href="tgen-20241231.xsd#NatureofbusinessandoperationsDetails"/>
  <link:definitionLink xlink:role="http://www.tecogen.com/role/NatureofbusinessandoperationsDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_3617573e-1eae-4662-99d1-870503554a1a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_cf4522e8-e602-4576-9713-b8204c5a2b68" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_3617573e-1eae-4662-99d1-870503554a1a" xlink:to="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_cf4522e8-e602-4576-9713-b8204c5a2b68" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_616ebbd2-714d-4f9b-b434-7e8a4a3d3946" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_cf4522e8-e602-4576-9713-b8204c5a2b68" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_616ebbd2-714d-4f9b-b434-7e8a4a3d3946" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_616ebbd2-714d-4f9b-b434-7e8a4a3d3946_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_616ebbd2-714d-4f9b-b434-7e8a4a3d3946" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_616ebbd2-714d-4f9b-b434-7e8a4a3d3946_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_b5a3ca41-5bd0-46bf-9091-4b9f63438fd9" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_616ebbd2-714d-4f9b-b434-7e8a4a3d3946" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_b5a3ca41-5bd0-46bf-9091-4b9f63438fd9" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OrderOrProductionBacklogMember_1dd72840-0604-4984-b26d-585f74b8cc73" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OrderOrProductionBacklogMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_b5a3ca41-5bd0-46bf-9091-4b9f63438fd9" xlink:to="loc_us-gaap_OrderOrProductionBacklogMember_1dd72840-0604-4984-b26d-585f74b8cc73" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis_c2e49d4f-30c2-4311-bc79-111f1f65fb11" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RelatedPartyTransactionsByRelatedPartyAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_cf4522e8-e602-4576-9713-b8204c5a2b68" xlink:to="loc_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis_c2e49d4f-30c2-4311-bc79-111f1f65fb11" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyDomain_c2e49d4f-30c2-4311-bc79-111f1f65fb11_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RelatedPartyDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis_c2e49d4f-30c2-4311-bc79-111f1f65fb11" xlink:to="loc_us-gaap_RelatedPartyDomain_c2e49d4f-30c2-4311-bc79-111f1f65fb11_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyDomain_63145fbb-14f5-4e5e-8a64-e0e68fa21fbb" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RelatedPartyDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis_c2e49d4f-30c2-4311-bc79-111f1f65fb11" xlink:to="loc_us-gaap_RelatedPartyDomain_63145fbb-14f5-4e5e-8a64-e0e68fa21fbb" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyMember_dafc00cb-f2d3-41f7-899b-83b65aaffbdc" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RelatedPartyMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_RelatedPartyDomain_63145fbb-14f5-4e5e-8a64-e0e68fa21fbb" xlink:to="loc_us-gaap_RelatedPartyMember_dafc00cb-f2d3-41f7-899b-83b65aaffbdc" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_CounterpartyNameAxis_418e6127-0fe8-45d8-bb01-f64337ba4e4c" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_CounterpartyNameAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_cf4522e8-e602-4576-9713-b8204c5a2b68" xlink:to="loc_srt_CounterpartyNameAxis_418e6127-0fe8-45d8-bb01-f64337ba4e4c" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RepurchaseAgreementCounterpartyNameDomain_418e6127-0fe8-45d8-bb01-f64337ba4e4c_default" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RepurchaseAgreementCounterpartyNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_CounterpartyNameAxis_418e6127-0fe8-45d8-bb01-f64337ba4e4c" xlink:to="loc_srt_RepurchaseAgreementCounterpartyNameDomain_418e6127-0fe8-45d8-bb01-f64337ba4e4c_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RepurchaseAgreementCounterpartyNameDomain_dbe39c54-3657-4c7d-b246-f32db796026c" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RepurchaseAgreementCounterpartyNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_CounterpartyNameAxis_418e6127-0fe8-45d8-bb01-f64337ba4e4c" xlink:to="loc_srt_RepurchaseAgreementCounterpartyNameDomain_dbe39c54-3657-4c7d-b246-f32db796026c" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_JohnN.HatsopoulosAndEarlR.LewisIIIMember_74641148-c529-4b5b-afda-8d923041d5f0" xlink:href="tgen-20241231.xsd#tgen_JohnN.HatsopoulosAndEarlR.LewisIIIMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RepurchaseAgreementCounterpartyNameDomain_dbe39c54-3657-4c7d-b246-f32db796026c" xlink:to="loc_tgen_JohnN.HatsopoulosAndEarlR.LewisIIIMember_74641148-c529-4b5b-afda-8d923041d5f0" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_EarlR.LewisIIIMember_77b1ed36-801f-4c72-b38d-27c365d39c1a" xlink:href="tgen-20241231.xsd#tgen_EarlR.LewisIIIMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RepurchaseAgreementCounterpartyNameDomain_dbe39c54-3657-4c7d-b246-f32db796026c" xlink:to="loc_tgen_EarlR.LewisIIIMember_77b1ed36-801f-4c72-b38d-27c365d39c1a" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NumberOfOperatingSegments_c92bdf2f-056f-41df-a217-bf5c475c0ff9" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NumberOfOperatingSegments"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_3617573e-1eae-4662-99d1-870503554a1a" xlink:to="loc_us-gaap_NumberOfOperatingSegments_c92bdf2f-056f-41df-a217-bf5c475c0ff9" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue_0b3c12e8-17b0-462a-b920-b6c67c287312" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_3617573e-1eae-4662-99d1-870503554a1a" xlink:to="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue_0b3c12e8-17b0-462a-b920-b6c67c287312" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect_81f06120-6d64-4924-8780-a03078fc6d70" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_3617573e-1eae-4662-99d1-870503554a1a" xlink:to="loc_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect_81f06120-6d64-4924-8780-a03078fc6d70" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_cf6153d4-b48c-49f9-b7fe-f384d519f4b0" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivities"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_3617573e-1eae-4662-99d1-870503554a1a" xlink:to="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_cf6153d4-b48c-49f9-b7fe-f384d519f4b0" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingIncomeLoss_539b8e85-c537-4671-864f-9f5170775c56" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingIncomeLoss"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_3617573e-1eae-4662-99d1-870503554a1a" xlink:to="loc_us-gaap_OperatingIncomeLoss_539b8e85-c537-4671-864f-9f5170775c56" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RetainedEarningsAccumulatedDeficit_f72b0797-426c-477c-95da-5a2d1d3aa4cc" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RetainedEarningsAccumulatedDeficit"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_3617573e-1eae-4662-99d1-870503554a1a" xlink:to="loc_us-gaap_RetainedEarningsAccumulatedDeficit_f72b0797-426c-477c-95da-5a2d1d3aa4cc" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_WorkingCapitalNet_6e659066-0587-472b-86ea-f9326c0c838f" xlink:href="tgen-20241231.xsd#tgen_WorkingCapitalNet"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_3617573e-1eae-4662-99d1-870503554a1a" xlink:to="loc_tgen_WorkingCapitalNet_6e659066-0587-472b-86ea-f9326c0c838f" xlink:type="arc" order="6"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_IncreaseDecreaseInWorkingCapital_45332d7a-5627-4f8d-9931-32f6e5042b68" xlink:href="tgen-20241231.xsd#tgen_IncreaseDecreaseInWorkingCapital"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_3617573e-1eae-4662-99d1-870503554a1a" xlink:to="loc_tgen_IncreaseDecreaseInWorkingCapital_45332d7a-5627-4f8d-9931-32f6e5042b68" xlink:type="arc" order="7"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsNet_aba97a15-d57c-4159-a1fa-d56245bf6639" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsNet"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_3617573e-1eae-4662-99d1-870503554a1a" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsNet_aba97a15-d57c-4159-a1fa-d56245bf6639" xlink:type="arc" order="8"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsPeriodIncreaseDecrease_148527ff-a0d2-4714-9035-0072ea20efb4" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsPeriodIncreaseDecrease"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_3617573e-1eae-4662-99d1-870503554a1a" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsPeriodIncreaseDecrease_148527ff-a0d2-4714-9035-0072ea20efb4" xlink:type="arc" order="9"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NotesPayable_87e02901-a03a-4d57-a5f3-283a0a5856ea" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NotesPayable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_3617573e-1eae-4662-99d1-870503554a1a" xlink:to="loc_us-gaap_NotesPayable_87e02901-a03a-4d57-a5f3-283a0a5856ea" xlink:type="arc" order="10"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_OrderOrProductionBacklogValue_9b55500a-abff-4b23-aa22-ca7d8cceb5db" xlink:href="tgen-20241231.xsd#tgen_OrderOrProductionBacklogValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_3617573e-1eae-4662-99d1-870503554a1a" xlink:to="loc_tgen_OrderOrProductionBacklogValue_9b55500a-abff-4b23-aa22-ca7d8cceb5db" xlink:type="arc" order="11"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_Backlog_7d534108-5eb4-492b-82b9-6806af79fb5e" xlink:href="tgen-20241231.xsd#tgen_Backlog"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_3617573e-1eae-4662-99d1-870503554a1a" xlink:to="loc_tgen_Backlog_7d534108-5eb4-492b-82b9-6806af79fb5e" xlink:type="arc" order="12"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_IncreaseDecreaseInBacklog_85073c51-8c75-4ccc-ba0a-8089d516670f" xlink:href="tgen-20241231.xsd#tgen_IncreaseDecreaseInBacklog"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_3617573e-1eae-4662-99d1-870503554a1a" xlink:to="loc_tgen_IncreaseDecreaseInBacklog_85073c51-8c75-4ccc-ba0a-8089d516670f" xlink:type="arc" order="13"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesAdditionalInformationDetails" xlink:type="simple" xlink:href="tgen-20241231.xsd#SummaryofsignificantaccountingpoliciesAdditionalInformationDetails"/>
  <link:definitionLink xlink:role="http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesAdditionalInformationDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisaggregationOfRevenueLineItems_d0cf5c6c-e921-40a3-8fc1-f34d65a2c08a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisaggregationOfRevenueLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisaggregationOfRevenueTable_d86acec6-d385-4cd4-be4a-c99cd255c8e0" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisaggregationOfRevenueTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_d0cf5c6c-e921-40a3-8fc1-f34d65a2c08a" xlink:to="loc_us-gaap_DisaggregationOfRevenueTable_d86acec6-d385-4cd4-be4a-c99cd255c8e0" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventTypeAxis_c41050b6-78e9-4180-9576-4fbab404f51f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsequentEventTypeAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_DisaggregationOfRevenueTable_d86acec6-d385-4cd4-be4a-c99cd255c8e0" xlink:to="loc_us-gaap_SubsequentEventTypeAxis_c41050b6-78e9-4180-9576-4fbab404f51f" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventTypeDomain_c41050b6-78e9-4180-9576-4fbab404f51f_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsequentEventTypeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_SubsequentEventTypeAxis_c41050b6-78e9-4180-9576-4fbab404f51f" xlink:to="loc_us-gaap_SubsequentEventTypeDomain_c41050b6-78e9-4180-9576-4fbab404f51f_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventTypeDomain_876c4d8c-e5f7-4454-a75f-0c1e685023f2" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsequentEventTypeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_SubsequentEventTypeAxis_c41050b6-78e9-4180-9576-4fbab404f51f" xlink:to="loc_us-gaap_SubsequentEventTypeDomain_876c4d8c-e5f7-4454-a75f-0c1e685023f2" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventMember_bb09701d-4cb4-4380-9b59-e153a92d8494" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsequentEventMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_SubsequentEventTypeDomain_876c4d8c-e5f7-4454-a75f-0c1e685023f2" xlink:to="loc_us-gaap_SubsequentEventMember_bb09701d-4cb4-4380-9b59-e153a92d8494" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeStatementLocationAxis_aba74012-80c1-4806-b5b2-ac4f532623eb" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeStatementLocationAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_DisaggregationOfRevenueTable_d86acec6-d385-4cd4-be4a-c99cd255c8e0" xlink:to="loc_us-gaap_IncomeStatementLocationAxis_aba74012-80c1-4806-b5b2-ac4f532623eb" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeStatementLocationDomain_aba74012-80c1-4806-b5b2-ac4f532623eb_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeStatementLocationDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_IncomeStatementLocationAxis_aba74012-80c1-4806-b5b2-ac4f532623eb" xlink:to="loc_us-gaap_IncomeStatementLocationDomain_aba74012-80c1-4806-b5b2-ac4f532623eb_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeStatementLocationDomain_577c1ee6-7255-48ce-a0d6-a4c323253e16" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeStatementLocationDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_IncomeStatementLocationAxis_aba74012-80c1-4806-b5b2-ac4f532623eb" xlink:to="loc_us-gaap_IncomeStatementLocationDomain_577c1ee6-7255-48ce-a0d6-a4c323253e16" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GeneralAndAdministrativeExpenseMember_7c20e5d7-bf3f-4fd9-88bf-3e51a9b9d284" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GeneralAndAdministrativeExpenseMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncomeStatementLocationDomain_577c1ee6-7255-48ce-a0d6-a4c323253e16" xlink:to="loc_us-gaap_GeneralAndAdministrativeExpenseMember_7c20e5d7-bf3f-4fd9-88bf-3e51a9b9d284" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_StatementScenarioAxis_20f719ba-8e59-44fb-8b45-86e52997e772" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_StatementScenarioAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_DisaggregationOfRevenueTable_d86acec6-d385-4cd4-be4a-c99cd255c8e0" xlink:to="loc_srt_StatementScenarioAxis_20f719ba-8e59-44fb-8b45-86e52997e772" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ScenarioUnspecifiedDomain_20f719ba-8e59-44fb-8b45-86e52997e772_default" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ScenarioUnspecifiedDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_StatementScenarioAxis_20f719ba-8e59-44fb-8b45-86e52997e772" xlink:to="loc_srt_ScenarioUnspecifiedDomain_20f719ba-8e59-44fb-8b45-86e52997e772_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ScenarioUnspecifiedDomain_521b48f0-d7df-401a-8eb0-612a432bee73" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ScenarioUnspecifiedDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_StatementScenarioAxis_20f719ba-8e59-44fb-8b45-86e52997e772" xlink:to="loc_srt_ScenarioUnspecifiedDomain_521b48f0-d7df-401a-8eb0-612a432bee73" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ScenarioForecastMember_24761228-c29d-4b39-b7ed-6bcfe42999a9" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ScenarioForecastMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_ScenarioUnspecifiedDomain_521b48f0-d7df-401a-8eb0-612a432bee73" xlink:to="loc_srt_ScenarioForecastMember_24761228-c29d-4b39-b7ed-6bcfe42999a9" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_278db221-5fa2-45af-a23a-808d9b0cb038" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_DisaggregationOfRevenueTable_d86acec6-d385-4cd4-be4a-c99cd255c8e0" xlink:to="loc_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_278db221-5fa2-45af-a23a-808d9b0cb038" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_EmployeeRetentionCreditCurrent_33049d7c-281c-4405-b638-e70d344ff40b" xlink:href="tgen-20241231.xsd#tgen_EmployeeRetentionCreditCurrent"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_d0cf5c6c-e921-40a3-8fc1-f34d65a2c08a" xlink:to="loc_tgen_EmployeeRetentionCreditCurrent_33049d7c-281c-4405-b638-e70d344ff40b" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ProceedsFromEmployeeRetentionCredit_b7c0b658-b061-429e-9c8c-57a9304277c9" xlink:href="tgen-20241231.xsd#tgen_ProceedsFromEmployeeRetentionCredit"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_d0cf5c6c-e921-40a3-8fc1-f34d65a2c08a" xlink:to="loc_tgen_ProceedsFromEmployeeRetentionCredit_b7c0b658-b061-429e-9c8c-57a9304277c9" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProceedsFromInterestReceived_4a312768-a242-4ff3-bb04-466952746458" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProceedsFromInterestReceived"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_d0cf5c6c-e921-40a3-8fc1-f34d65a2c08a" xlink:to="loc_us-gaap_ProceedsFromInterestReceived_4a312768-a242-4ff3-bb04-466952746458" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_PercentageOfOwnedJointVenture_dfaf8ee5-c564-42d2-aecc-28dbd02c3f25" xlink:href="tgen-20241231.xsd#tgen_PercentageOfOwnedJointVenture"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_d0cf5c6c-e921-40a3-8fc1-f34d65a2c08a" xlink:to="loc_tgen_PercentageOfOwnedJointVenture_dfaf8ee5-c564-42d2-aecc-28dbd02c3f25" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent_8a195039-48f2-413a-b710-9dd2ccf33971" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_d0cf5c6c-e921-40a3-8fc1-f34d65a2c08a" xlink:to="loc_us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent_8a195039-48f2-413a-b710-9dd2ccf33971" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ImpairmentOfLongLivedAssetsHeldForUse_939489df-cb5a-42ff-878d-7234e52b7242" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ImpairmentOfLongLivedAssetsHeldForUse"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_d0cf5c6c-e921-40a3-8fc1-f34d65a2c08a" xlink:to="loc_us-gaap_ImpairmentOfLongLivedAssetsHeldForUse_939489df-cb5a-42ff-878d-7234e52b7242" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ContractWithCustomerShippingAndHandlingBilled_b64bb1be-8d7c-42b0-a098-afa2e6ff5f4a" xlink:href="tgen-20241231.xsd#tgen_ContractWithCustomerShippingAndHandlingBilled"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_d0cf5c6c-e921-40a3-8fc1-f34d65a2c08a" xlink:to="loc_tgen_ContractWithCustomerShippingAndHandlingBilled_b64bb1be-8d7c-42b0-a098-afa2e6ff5f4a" xlink:type="arc" order="6"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_CostOfGoodsSoldShippingAndHandling_e508aa06-4c75-4780-a103-4840176d1175" xlink:href="tgen-20241231.xsd#tgen_CostOfGoodsSoldShippingAndHandling"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_d0cf5c6c-e921-40a3-8fc1-f34d65a2c08a" xlink:to="loc_tgen_CostOfGoodsSoldShippingAndHandling_e508aa06-4c75-4780-a103-4840176d1175" xlink:type="arc" order="7"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ShippingandHandlingExpenses_0940ab85-fb2c-4057-827e-f77244a2cc63" xlink:href="tgen-20241231.xsd#tgen_ShippingandHandlingExpenses"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_d0cf5c6c-e921-40a3-8fc1-f34d65a2c08a" xlink:to="loc_tgen_ShippingandHandlingExpenses_0940ab85-fb2c-4057-827e-f77244a2cc63" xlink:type="arc" order="8"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs_369a0511-4973-4684-b720-e88429cf3ffe" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_d0cf5c6c-e921-40a3-8fc1-f34d65a2c08a" xlink:to="loc_us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs_369a0511-4973-4684-b720-e88429cf3ffe" xlink:type="arc" order="9"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdvertisingExpense_e4e015d7-18cd-4c2a-9aa6-88bff7d53a5c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AdvertisingExpense"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_d0cf5c6c-e921-40a3-8fc1-f34d65a2c08a" xlink:to="loc_us-gaap_AdvertisingExpense_e4e015d7-18cd-4c2a-9aa6-88bff7d53a5c" xlink:type="arc" order="10"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ResearchAndDevelopmentExpenseGross_d660f26a-53f8-4d86-8d87-49012dc28cff" xlink:href="tgen-20241231.xsd#tgen_ResearchAndDevelopmentExpenseGross"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_d0cf5c6c-e921-40a3-8fc1-f34d65a2c08a" xlink:to="loc_tgen_ResearchAndDevelopmentExpenseGross_d660f26a-53f8-4d86-8d87-49012dc28cff" xlink:type="arc" order="11"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_RevenueFromContractWithCustomerPaymentPeriod_f0fae8f7-3722-418e-8e1d-2064eb98680d" xlink:href="tgen-20241231.xsd#tgen_RevenueFromContractWithCustomerPaymentPeriod"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_d0cf5c6c-e921-40a3-8fc1-f34d65a2c08a" xlink:to="loc_tgen_RevenueFromContractWithCustomerPaymentPeriod_f0fae8f7-3722-418e-8e1d-2064eb98680d" xlink:type="arc" order="12"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NumberOfOperatingSegments_1f46ee1b-ae73-4712-94ef-ba02466db616" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NumberOfOperatingSegments"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_d0cf5c6c-e921-40a3-8fc1-f34d65a2c08a" xlink:to="loc_us-gaap_NumberOfOperatingSegments_1f46ee1b-ae73-4712-94ef-ba02466db616" xlink:type="arc" order="13"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredRevenueRevenueRecognized1_84ba2f36-61a5-44cc-bcab-6a79d353bc0d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredRevenueRevenueRecognized1"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_d0cf5c6c-e921-40a3-8fc1-f34d65a2c08a" xlink:to="loc_us-gaap_DeferredRevenueRevenueRecognized1_84ba2f36-61a5-44cc-bcab-6a79d353bc0d" xlink:type="arc" order="14"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueRemainingPerformanceObligation_cb99e75c-9eda-47ba-96b8-2f981dbbc0c7" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueRemainingPerformanceObligation"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_d0cf5c6c-e921-40a3-8fc1-f34d65a2c08a" xlink:to="loc_us-gaap_RevenueRemainingPerformanceObligation_cb99e75c-9eda-47ba-96b8-2f981dbbc0c7" xlink:type="arc" order="15"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueRemainingPerformanceObligationPercentage_0f0df7a7-ab87-4409-8ca7-24d33e8d86bd" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueRemainingPerformanceObligationPercentage"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_d0cf5c6c-e921-40a3-8fc1-f34d65a2c08a" xlink:to="loc_us-gaap_RevenueRemainingPerformanceObligationPercentage_0f0df7a7-ab87-4409-8ca7-24d33e8d86bd" xlink:type="arc" order="16"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1_43513068-169a-4883-835f-e0e254709426" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_d0cf5c6c-e921-40a3-8fc1-f34d65a2c08a" xlink:to="loc_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1_43513068-169a-4883-835f-e0e254709426" xlink:type="arc" order="17"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesAdditionalInformationDetails_1" xlink:type="simple" xlink:href="tgen-20241231.xsd#SummaryofsignificantaccountingpoliciesAdditionalInformationDetails_1"/>
  <link:definitionLink xlink:role="http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesAdditionalInformationDetails_1" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisaggregationOfRevenueLineItems_d0cf5c6c-e921-40a3-8fc1-f34d65a2c08a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisaggregationOfRevenueLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisaggregationOfRevenueTable_d86acec6-d385-4cd4-be4a-c99cd255c8e0" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisaggregationOfRevenueTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_d0cf5c6c-e921-40a3-8fc1-f34d65a2c08a" xlink:to="loc_us-gaap_DisaggregationOfRevenueTable_d86acec6-d385-4cd4-be4a-c99cd255c8e0" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventTypeAxis_c41050b6-78e9-4180-9576-4fbab404f51f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsequentEventTypeAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_DisaggregationOfRevenueTable_d86acec6-d385-4cd4-be4a-c99cd255c8e0" xlink:to="loc_us-gaap_SubsequentEventTypeAxis_c41050b6-78e9-4180-9576-4fbab404f51f" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventTypeDomain_c41050b6-78e9-4180-9576-4fbab404f51f_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsequentEventTypeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_SubsequentEventTypeAxis_c41050b6-78e9-4180-9576-4fbab404f51f" xlink:to="loc_us-gaap_SubsequentEventTypeDomain_c41050b6-78e9-4180-9576-4fbab404f51f_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventTypeDomain_876c4d8c-e5f7-4454-a75f-0c1e685023f2" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsequentEventTypeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_SubsequentEventTypeAxis_c41050b6-78e9-4180-9576-4fbab404f51f" xlink:to="loc_us-gaap_SubsequentEventTypeDomain_876c4d8c-e5f7-4454-a75f-0c1e685023f2" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventMember_bb09701d-4cb4-4380-9b59-e153a92d8494" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsequentEventMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_SubsequentEventTypeDomain_876c4d8c-e5f7-4454-a75f-0c1e685023f2" xlink:to="loc_us-gaap_SubsequentEventMember_bb09701d-4cb4-4380-9b59-e153a92d8494" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeStatementLocationAxis_aba74012-80c1-4806-b5b2-ac4f532623eb" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeStatementLocationAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_DisaggregationOfRevenueTable_d86acec6-d385-4cd4-be4a-c99cd255c8e0" xlink:to="loc_us-gaap_IncomeStatementLocationAxis_aba74012-80c1-4806-b5b2-ac4f532623eb" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeStatementLocationDomain_aba74012-80c1-4806-b5b2-ac4f532623eb_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeStatementLocationDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_IncomeStatementLocationAxis_aba74012-80c1-4806-b5b2-ac4f532623eb" xlink:to="loc_us-gaap_IncomeStatementLocationDomain_aba74012-80c1-4806-b5b2-ac4f532623eb_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeStatementLocationDomain_577c1ee6-7255-48ce-a0d6-a4c323253e16" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeStatementLocationDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_IncomeStatementLocationAxis_aba74012-80c1-4806-b5b2-ac4f532623eb" xlink:to="loc_us-gaap_IncomeStatementLocationDomain_577c1ee6-7255-48ce-a0d6-a4c323253e16" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GeneralAndAdministrativeExpenseMember_7c20e5d7-bf3f-4fd9-88bf-3e51a9b9d284" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GeneralAndAdministrativeExpenseMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncomeStatementLocationDomain_577c1ee6-7255-48ce-a0d6-a4c323253e16" xlink:to="loc_us-gaap_GeneralAndAdministrativeExpenseMember_7c20e5d7-bf3f-4fd9-88bf-3e51a9b9d284" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_StatementScenarioAxis_20f719ba-8e59-44fb-8b45-86e52997e772" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_StatementScenarioAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_DisaggregationOfRevenueTable_d86acec6-d385-4cd4-be4a-c99cd255c8e0" xlink:to="loc_srt_StatementScenarioAxis_20f719ba-8e59-44fb-8b45-86e52997e772" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ScenarioUnspecifiedDomain_20f719ba-8e59-44fb-8b45-86e52997e772_default" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ScenarioUnspecifiedDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_StatementScenarioAxis_20f719ba-8e59-44fb-8b45-86e52997e772" xlink:to="loc_srt_ScenarioUnspecifiedDomain_20f719ba-8e59-44fb-8b45-86e52997e772_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ScenarioUnspecifiedDomain_521b48f0-d7df-401a-8eb0-612a432bee73" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ScenarioUnspecifiedDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_StatementScenarioAxis_20f719ba-8e59-44fb-8b45-86e52997e772" xlink:to="loc_srt_ScenarioUnspecifiedDomain_521b48f0-d7df-401a-8eb0-612a432bee73" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ScenarioForecastMember_24761228-c29d-4b39-b7ed-6bcfe42999a9" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ScenarioForecastMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_ScenarioUnspecifiedDomain_521b48f0-d7df-401a-8eb0-612a432bee73" xlink:to="loc_srt_ScenarioForecastMember_24761228-c29d-4b39-b7ed-6bcfe42999a9" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_EmployeeRetentionCreditCurrent_33049d7c-281c-4405-b638-e70d344ff40b" xlink:href="tgen-20241231.xsd#tgen_EmployeeRetentionCreditCurrent"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_d0cf5c6c-e921-40a3-8fc1-f34d65a2c08a" xlink:to="loc_tgen_EmployeeRetentionCreditCurrent_33049d7c-281c-4405-b638-e70d344ff40b" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ProceedsFromEmployeeRetentionCredit_b7c0b658-b061-429e-9c8c-57a9304277c9" xlink:href="tgen-20241231.xsd#tgen_ProceedsFromEmployeeRetentionCredit"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_d0cf5c6c-e921-40a3-8fc1-f34d65a2c08a" xlink:to="loc_tgen_ProceedsFromEmployeeRetentionCredit_b7c0b658-b061-429e-9c8c-57a9304277c9" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProceedsFromInterestReceived_4a312768-a242-4ff3-bb04-466952746458" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProceedsFromInterestReceived"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_d0cf5c6c-e921-40a3-8fc1-f34d65a2c08a" xlink:to="loc_us-gaap_ProceedsFromInterestReceived_4a312768-a242-4ff3-bb04-466952746458" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_PercentageOfOwnedJointVenture_dfaf8ee5-c564-42d2-aecc-28dbd02c3f25" xlink:href="tgen-20241231.xsd#tgen_PercentageOfOwnedJointVenture"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_d0cf5c6c-e921-40a3-8fc1-f34d65a2c08a" xlink:to="loc_tgen_PercentageOfOwnedJointVenture_dfaf8ee5-c564-42d2-aecc-28dbd02c3f25" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent_8a195039-48f2-413a-b710-9dd2ccf33971" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_d0cf5c6c-e921-40a3-8fc1-f34d65a2c08a" xlink:to="loc_us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent_8a195039-48f2-413a-b710-9dd2ccf33971" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ImpairmentOfLongLivedAssetsHeldForUse_939489df-cb5a-42ff-878d-7234e52b7242" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ImpairmentOfLongLivedAssetsHeldForUse"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_d0cf5c6c-e921-40a3-8fc1-f34d65a2c08a" xlink:to="loc_us-gaap_ImpairmentOfLongLivedAssetsHeldForUse_939489df-cb5a-42ff-878d-7234e52b7242" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ContractWithCustomerShippingAndHandlingBilled_b64bb1be-8d7c-42b0-a098-afa2e6ff5f4a" xlink:href="tgen-20241231.xsd#tgen_ContractWithCustomerShippingAndHandlingBilled"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_d0cf5c6c-e921-40a3-8fc1-f34d65a2c08a" xlink:to="loc_tgen_ContractWithCustomerShippingAndHandlingBilled_b64bb1be-8d7c-42b0-a098-afa2e6ff5f4a" xlink:type="arc" order="6"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_CostOfGoodsSoldShippingAndHandling_e508aa06-4c75-4780-a103-4840176d1175" xlink:href="tgen-20241231.xsd#tgen_CostOfGoodsSoldShippingAndHandling"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_d0cf5c6c-e921-40a3-8fc1-f34d65a2c08a" xlink:to="loc_tgen_CostOfGoodsSoldShippingAndHandling_e508aa06-4c75-4780-a103-4840176d1175" xlink:type="arc" order="7"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ShippingandHandlingExpenses_0940ab85-fb2c-4057-827e-f77244a2cc63" xlink:href="tgen-20241231.xsd#tgen_ShippingandHandlingExpenses"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_d0cf5c6c-e921-40a3-8fc1-f34d65a2c08a" xlink:to="loc_tgen_ShippingandHandlingExpenses_0940ab85-fb2c-4057-827e-f77244a2cc63" xlink:type="arc" order="8"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs_369a0511-4973-4684-b720-e88429cf3ffe" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_d0cf5c6c-e921-40a3-8fc1-f34d65a2c08a" xlink:to="loc_us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs_369a0511-4973-4684-b720-e88429cf3ffe" xlink:type="arc" order="9"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdvertisingExpense_e4e015d7-18cd-4c2a-9aa6-88bff7d53a5c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AdvertisingExpense"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_d0cf5c6c-e921-40a3-8fc1-f34d65a2c08a" xlink:to="loc_us-gaap_AdvertisingExpense_e4e015d7-18cd-4c2a-9aa6-88bff7d53a5c" xlink:type="arc" order="10"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ResearchAndDevelopmentExpenseGross_d660f26a-53f8-4d86-8d87-49012dc28cff" xlink:href="tgen-20241231.xsd#tgen_ResearchAndDevelopmentExpenseGross"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_d0cf5c6c-e921-40a3-8fc1-f34d65a2c08a" xlink:to="loc_tgen_ResearchAndDevelopmentExpenseGross_d660f26a-53f8-4d86-8d87-49012dc28cff" xlink:type="arc" order="11"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_RevenueFromContractWithCustomerPaymentPeriod_f0fae8f7-3722-418e-8e1d-2064eb98680d" xlink:href="tgen-20241231.xsd#tgen_RevenueFromContractWithCustomerPaymentPeriod"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_d0cf5c6c-e921-40a3-8fc1-f34d65a2c08a" xlink:to="loc_tgen_RevenueFromContractWithCustomerPaymentPeriod_f0fae8f7-3722-418e-8e1d-2064eb98680d" xlink:type="arc" order="12"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NumberOfOperatingSegments_1f46ee1b-ae73-4712-94ef-ba02466db616" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NumberOfOperatingSegments"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_d0cf5c6c-e921-40a3-8fc1-f34d65a2c08a" xlink:to="loc_us-gaap_NumberOfOperatingSegments_1f46ee1b-ae73-4712-94ef-ba02466db616" xlink:type="arc" order="13"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredRevenueRevenueRecognized1_84ba2f36-61a5-44cc-bcab-6a79d353bc0d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredRevenueRevenueRecognized1"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_d0cf5c6c-e921-40a3-8fc1-f34d65a2c08a" xlink:to="loc_us-gaap_DeferredRevenueRevenueRecognized1_84ba2f36-61a5-44cc-bcab-6a79d353bc0d" xlink:type="arc" order="14"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueRemainingPerformanceObligation_cb99e75c-9eda-47ba-96b8-2f981dbbc0c7" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueRemainingPerformanceObligation"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_d0cf5c6c-e921-40a3-8fc1-f34d65a2c08a" xlink:to="loc_us-gaap_RevenueRemainingPerformanceObligation_cb99e75c-9eda-47ba-96b8-2f981dbbc0c7" xlink:type="arc" order="15"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueRemainingPerformanceObligationPercentage_0f0df7a7-ab87-4409-8ca7-24d33e8d86bd" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueRemainingPerformanceObligationPercentage"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_d0cf5c6c-e921-40a3-8fc1-f34d65a2c08a" xlink:to="loc_us-gaap_RevenueRemainingPerformanceObligationPercentage_0f0df7a7-ab87-4409-8ca7-24d33e8d86bd" xlink:type="arc" order="16"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1_43513068-169a-4883-835f-e0e254709426" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_d0cf5c6c-e921-40a3-8fc1-f34d65a2c08a" xlink:to="loc_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1_43513068-169a-4883-835f-e0e254709426" xlink:type="arc" order="17"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesConcentrationofCreditRiskDetails" xlink:type="simple" xlink:href="tgen-20241231.xsd#SummaryofsignificantaccountingpoliciesConcentrationofCreditRiskDetails"/>
  <link:definitionLink xlink:role="http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesConcentrationofCreditRiskDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskLineItems_f01b134f-4c5e-448f-b0bf-0fe2c2fb6150" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskTable_fab04912-ea5a-45e1-9233-cc895c14c61e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_ConcentrationRiskLineItems_f01b134f-4c5e-448f-b0bf-0fe2c2fb6150" xlink:to="loc_us-gaap_ConcentrationRiskTable_fab04912-ea5a-45e1-9233-cc895c14c61e" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskByTypeAxis_f394910d-cf5c-4a9a-be0e-2e168ef79370" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskByTypeAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ConcentrationRiskTable_fab04912-ea5a-45e1-9233-cc895c14c61e" xlink:to="loc_us-gaap_ConcentrationRiskByTypeAxis_f394910d-cf5c-4a9a-be0e-2e168ef79370" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskTypeDomain_f394910d-cf5c-4a9a-be0e-2e168ef79370_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskTypeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_ConcentrationRiskByTypeAxis_f394910d-cf5c-4a9a-be0e-2e168ef79370" xlink:to="loc_us-gaap_ConcentrationRiskTypeDomain_f394910d-cf5c-4a9a-be0e-2e168ef79370_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskTypeDomain_e84c513e-dd31-4c1f-8ab7-dd9d90d6b177" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskTypeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_ConcentrationRiskByTypeAxis_f394910d-cf5c-4a9a-be0e-2e168ef79370" xlink:to="loc_us-gaap_ConcentrationRiskTypeDomain_e84c513e-dd31-4c1f-8ab7-dd9d90d6b177" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CustomerConcentrationRiskMember_385f5ae3-7836-445a-858a-dbfcfd823398" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CustomerConcentrationRiskMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ConcentrationRiskTypeDomain_e84c513e-dd31-4c1f-8ab7-dd9d90d6b177" xlink:to="loc_us-gaap_CustomerConcentrationRiskMember_385f5ae3-7836-445a-858a-dbfcfd823398" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskByBenchmarkAxis_d6032e1a-cdbe-4781-a7d3-dd4dd6b04c35" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskByBenchmarkAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ConcentrationRiskTable_fab04912-ea5a-45e1-9233-cc895c14c61e" xlink:to="loc_us-gaap_ConcentrationRiskByBenchmarkAxis_d6032e1a-cdbe-4781-a7d3-dd4dd6b04c35" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskBenchmarkDomain_d6032e1a-cdbe-4781-a7d3-dd4dd6b04c35_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskBenchmarkDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_ConcentrationRiskByBenchmarkAxis_d6032e1a-cdbe-4781-a7d3-dd4dd6b04c35" xlink:to="loc_us-gaap_ConcentrationRiskBenchmarkDomain_d6032e1a-cdbe-4781-a7d3-dd4dd6b04c35_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskBenchmarkDomain_5d4c1cc5-a2da-4dee-95de-3c51b98859d7" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskBenchmarkDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_ConcentrationRiskByBenchmarkAxis_d6032e1a-cdbe-4781-a7d3-dd4dd6b04c35" xlink:to="loc_us-gaap_ConcentrationRiskBenchmarkDomain_5d4c1cc5-a2da-4dee-95de-3c51b98859d7" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SalesRevenueNetMember_d4c05ca5-13db-48f7-ad23-3c1c1af568ac" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SalesRevenueNetMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ConcentrationRiskBenchmarkDomain_5d4c1cc5-a2da-4dee-95de-3c51b98859d7" xlink:to="loc_us-gaap_SalesRevenueNetMember_d4c05ca5-13db-48f7-ad23-3c1c1af568ac" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountsReceivableMember_51eae78d-f2b4-49cd-9e7b-138e401429c9" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountsReceivableMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ConcentrationRiskBenchmarkDomain_5d4c1cc5-a2da-4dee-95de-3c51b98859d7" xlink:to="loc_us-gaap_AccountsReceivableMember_51eae78d-f2b4-49cd-9e7b-138e401429c9" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MajorCustomersAxis_056f7e34-073c-4121-aabb-763edb72d5b8" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MajorCustomersAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ConcentrationRiskTable_fab04912-ea5a-45e1-9233-cc895c14c61e" xlink:to="loc_srt_MajorCustomersAxis_056f7e34-073c-4121-aabb-763edb72d5b8" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_NameOfMajorCustomerDomain_056f7e34-073c-4121-aabb-763edb72d5b8_default" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_NameOfMajorCustomerDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_MajorCustomersAxis_056f7e34-073c-4121-aabb-763edb72d5b8" xlink:to="loc_srt_NameOfMajorCustomerDomain_056f7e34-073c-4121-aabb-763edb72d5b8_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_NameOfMajorCustomerDomain_bdc8ec8e-6fb7-4b92-b2ea-b8acd9919db9" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_NameOfMajorCustomerDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_MajorCustomersAxis_056f7e34-073c-4121-aabb-763edb72d5b8" xlink:to="loc_srt_NameOfMajorCustomerDomain_bdc8ec8e-6fb7-4b92-b2ea-b8acd9919db9" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_OneCustomerMember_ae80b02d-067a-4260-b596-8543cda885d5" xlink:href="tgen-20241231.xsd#tgen_OneCustomerMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_NameOfMajorCustomerDomain_bdc8ec8e-6fb7-4b92-b2ea-b8acd9919db9" xlink:to="loc_tgen_OneCustomerMember_ae80b02d-067a-4260-b596-8543cda885d5" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashFDICInsuredAmount_4bdde9a4-fae5-40ee-aa0b-d3d024b79167" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashFDICInsuredAmount"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ConcentrationRiskLineItems_f01b134f-4c5e-448f-b0bf-0fe2c2fb6150" xlink:to="loc_us-gaap_CashFDICInsuredAmount_4bdde9a4-fae5-40ee-aa0b-d3d024b79167" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashUninsuredAmount_fbe32be3-7c97-4137-bd2b-2a7b47f34fa5" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashUninsuredAmount"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ConcentrationRiskLineItems_f01b134f-4c5e-448f-b0bf-0fe2c2fb6150" xlink:to="loc_us-gaap_CashUninsuredAmount_fbe32be3-7c97-4137-bd2b-2a7b47f34fa5" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskPercentage1_72f20ff7-07bb-488b-80bb-a4c6e9b005eb" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskPercentage1"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ConcentrationRiskLineItems_f01b134f-4c5e-448f-b0bf-0fe2c2fb6150" xlink:to="loc_us-gaap_ConcentrationRiskPercentage1_72f20ff7-07bb-488b-80bb-a4c6e9b005eb" xlink:type="arc" order="2"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesPropertyPlantandEquipmentDetails" xlink:type="simple" xlink:href="tgen-20241231.xsd#SummaryofsignificantaccountingpoliciesPropertyPlantandEquipmentDetails"/>
  <link:definitionLink xlink:role="http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesPropertyPlantandEquipmentDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentLineItems_917ba190-beb6-4a17-af19-593f4a716f0b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_7ef3b5f4-d2af-4f28-b7b4-14611c8c3d82" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfPropertyPlantAndEquipmentTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_917ba190-beb6-4a17-af19-593f4a716f0b" xlink:to="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_7ef3b5f4-d2af-4f28-b7b4-14611c8c3d82" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeAxis_ca943719-5d1a-4436-a74c-853f79f7b7b3" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_7ef3b5f4-d2af-4f28-b7b4-14611c8c3d82" xlink:to="loc_srt_RangeAxis_ca943719-5d1a-4436-a74c-853f79f7b7b3" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeMember_ca943719-5d1a-4436-a74c-853f79f7b7b3_default" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_RangeAxis_ca943719-5d1a-4436-a74c-853f79f7b7b3" xlink:to="loc_srt_RangeMember_ca943719-5d1a-4436-a74c-853f79f7b7b3_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeMember_f30c0a08-8d10-4a0a-b585-99fbaa0d44af" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_RangeAxis_ca943719-5d1a-4436-a74c-853f79f7b7b3" xlink:to="loc_srt_RangeMember_f30c0a08-8d10-4a0a-b585-99fbaa0d44af" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MinimumMember_d78c9c25-47b9-4cc4-8337-93d143923d0a" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MinimumMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RangeMember_f30c0a08-8d10-4a0a-b585-99fbaa0d44af" xlink:to="loc_srt_MinimumMember_d78c9c25-47b9-4cc4-8337-93d143923d0a" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MaximumMember_a7e30a8a-b71b-49e3-9816-375c92831d04" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MaximumMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RangeMember_f30c0a08-8d10-4a0a-b585-99fbaa0d44af" xlink:to="loc_srt_MaximumMember_a7e30a8a-b71b-49e3-9816-375c92831d04" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentUsefulLife_a3122a6b-22c5-40a3-9160-f1d80797e951" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentUsefulLife"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_917ba190-beb6-4a17-af19-593f4a716f0b" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentUsefulLife_a3122a6b-22c5-40a3-9160-f1d80797e951" xlink:type="arc" order="0"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesRevenueDetails" xlink:type="simple" xlink:href="tgen-20241231.xsd#SummaryofsignificantaccountingpoliciesRevenueDetails"/>
  <link:definitionLink xlink:role="http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesRevenueDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisaggregationOfRevenueLineItems_e535781c-edcb-40e8-898b-03c59faa0ff2" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisaggregationOfRevenueLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisaggregationOfRevenueTable_747277d3-617b-4523-a8cb-22ce17ef4f42" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisaggregationOfRevenueTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_e535781c-edcb-40e8-898b-03c59faa0ff2" xlink:to="loc_us-gaap_DisaggregationOfRevenueTable_747277d3-617b-4523-a8cb-22ce17ef4f42" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ConsolidationItemsAxis_4b0bd131-5474-437a-a788-e2231d76d30c" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ConsolidationItemsAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_DisaggregationOfRevenueTable_747277d3-617b-4523-a8cb-22ce17ef4f42" xlink:to="loc_srt_ConsolidationItemsAxis_4b0bd131-5474-437a-a788-e2231d76d30c" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ConsolidationItemsDomain_4b0bd131-5474-437a-a788-e2231d76d30c_default" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ConsolidationItemsDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_ConsolidationItemsAxis_4b0bd131-5474-437a-a788-e2231d76d30c" xlink:to="loc_srt_ConsolidationItemsDomain_4b0bd131-5474-437a-a788-e2231d76d30c_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ConsolidationItemsDomain_d527c198-1665-413f-8bc9-4fe8c39f5bff" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ConsolidationItemsDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_ConsolidationItemsAxis_4b0bd131-5474-437a-a788-e2231d76d30c" xlink:to="loc_srt_ConsolidationItemsDomain_d527c198-1665-413f-8bc9-4fe8c39f5bff" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingSegmentsMember_29f9da83-1aec-45c5-a94d-739025053527" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingSegmentsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_ConsolidationItemsDomain_d527c198-1665-413f-8bc9-4fe8c39f5bff" xlink:to="loc_us-gaap_OperatingSegmentsMember_29f9da83-1aec-45c5-a94d-739025053527" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementBusinessSegmentsAxis_146354bc-e45c-48b7-9d33-50a82a615710" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementBusinessSegmentsAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_DisaggregationOfRevenueTable_747277d3-617b-4523-a8cb-22ce17ef4f42" xlink:to="loc_us-gaap_StatementBusinessSegmentsAxis_146354bc-e45c-48b7-9d33-50a82a615710" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SegmentDomain_146354bc-e45c-48b7-9d33-50a82a615710_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SegmentDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_StatementBusinessSegmentsAxis_146354bc-e45c-48b7-9d33-50a82a615710" xlink:to="loc_us-gaap_SegmentDomain_146354bc-e45c-48b7-9d33-50a82a615710_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SegmentDomain_41e47a01-0af9-4c59-a081-b3e46090663d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SegmentDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_StatementBusinessSegmentsAxis_146354bc-e45c-48b7-9d33-50a82a615710" xlink:to="loc_us-gaap_SegmentDomain_41e47a01-0af9-4c59-a081-b3e46090663d" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ProductsSegmentMember_daa83ca1-d13d-43e4-af7a-217c9cfa5f0d" xlink:href="tgen-20241231.xsd#tgen_ProductsSegmentMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_SegmentDomain_41e47a01-0af9-4c59-a081-b3e46090663d" xlink:to="loc_tgen_ProductsSegmentMember_daa83ca1-d13d-43e4-af7a-217c9cfa5f0d" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ServicesSegmentMember_3d45a82e-5b8c-41c3-be04-a80f02694806" xlink:href="tgen-20241231.xsd#tgen_ServicesSegmentMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_SegmentDomain_41e47a01-0af9-4c59-a081-b3e46090663d" xlink:to="loc_tgen_ServicesSegmentMember_3d45a82e-5b8c-41c3-be04-a80f02694806" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_EnergyProductionMember_39e486a5-4b02-4faa-a09b-f23dc2094755" xlink:href="tgen-20241231.xsd#tgen_EnergyProductionMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_SegmentDomain_41e47a01-0af9-4c59-a081-b3e46090663d" xlink:to="loc_tgen_EnergyProductionMember_39e486a5-4b02-4faa-a09b-f23dc2094755" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ProductsandServicesMember_03770040-6cca-4dec-8271-7ed05ab133b4" xlink:href="tgen-20241231.xsd#tgen_ProductsandServicesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_SegmentDomain_41e47a01-0af9-4c59-a081-b3e46090663d" xlink:to="loc_tgen_ProductsandServicesMember_03770040-6cca-4dec-8271-7ed05ab133b4" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_EnergyProductionSegmentMember_f152ef8c-590a-40e2-ac61-04cf14ff9eb1" xlink:href="tgen-20241231.xsd#tgen_EnergyProductionSegmentMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_SegmentDomain_41e47a01-0af9-4c59-a081-b3e46090663d" xlink:to="loc_tgen_EnergyProductionSegmentMember_f152ef8c-590a-40e2-ac61-04cf14ff9eb1" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductOrServiceAxis_6f04913b-2ba0-4629-8d91-db331f03dde4" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ProductOrServiceAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_DisaggregationOfRevenueTable_747277d3-617b-4523-a8cb-22ce17ef4f42" xlink:to="loc_srt_ProductOrServiceAxis_6f04913b-2ba0-4629-8d91-db331f03dde4" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductsAndServicesDomain_6f04913b-2ba0-4629-8d91-db331f03dde4_default" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ProductsAndServicesDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_ProductOrServiceAxis_6f04913b-2ba0-4629-8d91-db331f03dde4" xlink:to="loc_srt_ProductsAndServicesDomain_6f04913b-2ba0-4629-8d91-db331f03dde4_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductsAndServicesDomain_73150cf9-e4e8-43bb-a570-d4ebb92da167" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ProductsAndServicesDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_ProductOrServiceAxis_6f04913b-2ba0-4629-8d91-db331f03dde4" xlink:to="loc_srt_ProductsAndServicesDomain_73150cf9-e4e8-43bb-a570-d4ebb92da167" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProductMember_8413cd5c-d9dd-4c3d-abcb-c9c390260bf0" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProductMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_ProductsAndServicesDomain_73150cf9-e4e8-43bb-a570-d4ebb92da167" xlink:to="loc_us-gaap_ProductMember_8413cd5c-d9dd-4c3d-abcb-c9c390260bf0" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_InstallationServicesMember_53862cec-cbff-4dce-9f5f-01eb13fe2b8c" xlink:href="tgen-20241231.xsd#tgen_InstallationServicesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_ProductsAndServicesDomain_73150cf9-e4e8-43bb-a570-d4ebb92da167" xlink:to="loc_tgen_InstallationServicesMember_53862cec-cbff-4dce-9f5f-01eb13fe2b8c" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_MaintenanceServiceMember_3ed7a94d-5eba-4c4f-81de-8ded3d876d31" xlink:href="tgen-20241231.xsd#tgen_MaintenanceServiceMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_ProductsAndServicesDomain_73150cf9-e4e8-43bb-a570-d4ebb92da167" xlink:to="loc_tgen_MaintenanceServiceMember_3ed7a94d-5eba-4c4f-81de-8ded3d876d31" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_EnergyProductionMember_5a621af3-7867-4d17-8bed-7c5d0c5b1d18" xlink:href="tgen-20241231.xsd#tgen_EnergyProductionMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_ProductsAndServicesDomain_73150cf9-e4e8-43bb-a570-d4ebb92da167" xlink:to="loc_tgen_EnergyProductionMember_5a621af3-7867-4d17-8bed-7c5d0c5b1d18" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_TurnkeyInstallationMember_6a6d9de3-e7af-48c4-b9ec-a7dae853bbc4" xlink:href="tgen-20241231.xsd#tgen_TurnkeyInstallationMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_ProductsAndServicesDomain_73150cf9-e4e8-43bb-a570-d4ebb92da167" xlink:to="loc_tgen_TurnkeyInstallationMember_6a6d9de3-e7af-48c4-b9ec-a7dae853bbc4" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_CogenerationMember_7a7d0e46-0ecf-4f94-ab3b-c3090810fdda" xlink:href="tgen-20241231.xsd#tgen_CogenerationMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_ProductsAndServicesDomain_73150cf9-e4e8-43bb-a570-d4ebb92da167" xlink:to="loc_tgen_CogenerationMember_7a7d0e46-0ecf-4f94-ab3b-c3090810fdda" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ChillerMember_d9393944-3815-428d-961e-df7fc3b7b168" xlink:href="tgen-20241231.xsd#tgen_ChillerMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_ProductsAndServicesDomain_73150cf9-e4e8-43bb-a570-d4ebb92da167" xlink:to="loc_tgen_ChillerMember_d9393944-3815-428d-961e-df7fc3b7b168" xlink:type="arc" order="6"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_EngineeredAccessoriesMember_630cd7ca-4620-4316-8c17-adae419bba11" xlink:href="tgen-20241231.xsd#tgen_EngineeredAccessoriesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_ProductsAndServicesDomain_73150cf9-e4e8-43bb-a570-d4ebb92da167" xlink:to="loc_tgen_EngineeredAccessoriesMember_630cd7ca-4620-4316-8c17-adae419bba11" xlink:type="arc" order="7"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_6be01258-a1eb-44fa-9949-dc3be00021c5" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_e535781c-edcb-40e8-898b-03c59faa0ff2" xlink:to="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_6be01258-a1eb-44fa-9949-dc3be00021c5" xlink:type="arc" order="0"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/LosspercommonshareScheduleofLossPerCommonShareBasicandDilutedDetails" xlink:type="simple" xlink:href="tgen-20241231.xsd#LosspercommonshareScheduleofLossPerCommonShareBasicandDilutedDetails"/>
  <link:definitionLink xlink:role="http://www.tecogen.com/role/LosspercommonshareScheduleofLossPerCommonShareBasicandDilutedDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems_143d5743-6765-422a-b399-1a75c38a92d3" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable_e6953009-2478-4900-904b-82397305bc9f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems_143d5743-6765-422a-b399-1a75c38a92d3" xlink:to="loc_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable_e6953009-2478-4900-904b-82397305bc9f" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_3d025f2a-fb9d-443e-a517-7fc0b04e7024" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable_e6953009-2478-4900-904b-82397305bc9f" xlink:to="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_3d025f2a-fb9d-443e-a517-7fc0b04e7024" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AntidilutiveSecuritiesNameDomain_3d025f2a-fb9d-443e-a517-7fc0b04e7024_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AntidilutiveSecuritiesNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_3d025f2a-fb9d-443e-a517-7fc0b04e7024" xlink:to="loc_us-gaap_AntidilutiveSecuritiesNameDomain_3d025f2a-fb9d-443e-a517-7fc0b04e7024_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AntidilutiveSecuritiesNameDomain_202bb83b-a67a-401f-bad4-f88f33172a69" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AntidilutiveSecuritiesNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_3d025f2a-fb9d-443e-a517-7fc0b04e7024" xlink:to="loc_us-gaap_AntidilutiveSecuritiesNameDomain_202bb83b-a67a-401f-bad4-f88f33172a69" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeStockOptionMember_422d56be-05a2-4b94-a647-18348ca28eb1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeStockOptionMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AntidilutiveSecuritiesNameDomain_202bb83b-a67a-401f-bad4-f88f33172a69" xlink:to="loc_us-gaap_EmployeeStockOptionMember_422d56be-05a2-4b94-a647-18348ca28eb1" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetIncomeLoss_a7bd36e4-57b4-4549-8cf5-4371f42dc46f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetIncomeLoss"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems_143d5743-6765-422a-b399-1a75c38a92d3" xlink:to="loc_us-gaap_NetIncomeLoss_a7bd36e4-57b4-4549-8cf5-4371f42dc46f" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_010b6052-0fb2-4a29-ba4b-91f47cf8c0ca" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingBasic"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems_143d5743-6765-422a-b399-1a75c38a92d3" xlink:to="loc_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_010b6052-0fb2-4a29-ba4b-91f47cf8c0ca" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DilutiveSecuritiesAbstract_96f3a099-0742-4cb3-857f-7052b167c405" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DilutiveSecuritiesAbstract"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems_143d5743-6765-422a-b399-1a75c38a92d3" xlink:to="loc_us-gaap_DilutiveSecuritiesAbstract_96f3a099-0742-4cb3-857f-7052b167c405" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment_0b7e6063-0b22-4c9c-80fe-8545cdc12fb7" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DilutiveSecuritiesAbstract_96f3a099-0742-4cb3-857f-7052b167c405" xlink:to="loc_us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment_0b7e6063-0b22-4c9c-80fe-8545cdc12fb7" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_b07eb69e-bb05-48ad-8142-83e3f6608492" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems_143d5743-6765-422a-b399-1a75c38a92d3" xlink:to="loc_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_b07eb69e-bb05-48ad-8142-83e3f6608492" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EarningsPerShareBasic_7e16cc51-c773-43a4-9eb1-2c0130622c92" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EarningsPerShareBasic"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems_143d5743-6765-422a-b399-1a75c38a92d3" xlink:to="loc_us-gaap_EarningsPerShareBasic_7e16cc51-c773-43a4-9eb1-2c0130622c92" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EarningsPerShareDiluted_672ff59a-a90d-493d-bc1c-94f2e0771688" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EarningsPerShareDiluted"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems_143d5743-6765-422a-b399-1a75c38a92d3" xlink:to="loc_us-gaap_EarningsPerShareDiluted_672ff59a-a90d-493d-bc1c-94f2e0771688" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_c7204858-68ce-442d-835f-fbef9d04b253" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems_143d5743-6765-422a-b399-1a75c38a92d3" xlink:to="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_c7204858-68ce-442d-835f-fbef9d04b253" xlink:type="arc" order="6"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/AcquisitionofAmericanDGEnergyIncDetails" xlink:type="simple" xlink:href="tgen-20241231.xsd#AcquisitionofAmericanDGEnergyIncDetails"/>
  <link:definitionLink xlink:role="http://www.tecogen.com/role/AcquisitionofAmericanDGEnergyIncDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionLineItems_b3e9935a-9071-4c9b-9b06-e6124b3c0332" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_ae2c9b3e-42fb-43e3-9c63-72ea371a5bb5" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_b3e9935a-9071-4c9b-9b06-e6124b3c0332" xlink:to="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_ae2c9b3e-42fb-43e3-9c63-72ea371a5bb5" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionAxis_19e707c0-d36a-43ce-bee3-a9225b53f13b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_ae2c9b3e-42fb-43e3-9c63-72ea371a5bb5" xlink:to="loc_us-gaap_BusinessAcquisitionAxis_19e707c0-d36a-43ce-bee3-a9225b53f13b" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionAcquireeDomain_19e707c0-d36a-43ce-bee3-a9225b53f13b_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionAcquireeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_19e707c0-d36a-43ce-bee3-a9225b53f13b" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_19e707c0-d36a-43ce-bee3-a9225b53f13b_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionAcquireeDomain_57df3e82-a46d-4610-9c46-c39a74697ef2" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionAcquireeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_19e707c0-d36a-43ce-bee3-a9225b53f13b" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_57df3e82-a46d-4610-9c46-c39a74697ef2" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AmericanDgEnergyMember_76edce62-0b8d-43bb-aae5-c49a37c934b6" xlink:href="tgen-20241231.xsd#tgen_AmericanDgEnergyMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionAcquireeDomain_57df3e82-a46d-4610-9c46-c39a74697ef2" xlink:to="loc_tgen_AmericanDgEnergyMember_76edce62-0b8d-43bb-aae5-c49a37c934b6" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsidiaryOrEquityMethodInvesteeCumulativePercentageOwnershipAfterAllTransactions_64f9a68d-e006-440e-ab32-c56846fee775" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsidiaryOrEquityMethodInvesteeCumulativePercentageOwnershipAfterAllTransactions"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_b3e9935a-9071-4c9b-9b06-e6124b3c0332" xlink:to="loc_us-gaap_SubsidiaryOrEquityMethodInvesteeCumulativePercentageOwnershipAfterAllTransactions_64f9a68d-e006-440e-ab32-c56846fee775" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Goodwill_b49c7cf5-ec25-4654-9663-d1e34a0f009e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Goodwill"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_b3e9935a-9071-4c9b-9b06-e6124b3c0332" xlink:to="loc_us-gaap_Goodwill_b49c7cf5-ec25-4654-9663-d1e34a0f009e" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionPurchasePriceAllocationGoodwillExpectedTaxDeductibleAmount_c998ce4f-343e-433f-b546-7d9c1c1b7cec" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionPurchasePriceAllocationGoodwillExpectedTaxDeductibleAmount"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_b3e9935a-9071-4c9b-9b06-e6124b3c0332" xlink:to="loc_us-gaap_BusinessAcquisitionPurchasePriceAllocationGoodwillExpectedTaxDeductibleAmount_c998ce4f-343e-433f-b546-7d9c1c1b7cec" xlink:type="arc" order="2"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/AegisContractandRelatedAssetAcquisitionDetails" xlink:type="simple" xlink:href="tgen-20241231.xsd#AegisContractandRelatedAssetAcquisitionDetails"/>
  <link:definitionLink xlink:role="http://www.tecogen.com/role/AegisContractandRelatedAssetAcquisitionDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetAcquisitionLineItems_13f0bfb6-9c2a-4645-b35b-3bc240ec1478" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetAcquisitionLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetAcquisitionTable_69f99705-7224-4e10-8aaf-f5c583f819b3" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetAcquisitionTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_AssetAcquisitionLineItems_13f0bfb6-9c2a-4645-b35b-3bc240ec1478" xlink:to="loc_us-gaap_AssetAcquisitionTable_69f99705-7224-4e10-8aaf-f5c583f819b3" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetAcquisitionAxis_b6fefb4a-77b4-431d-bd5f-22d84d04446f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetAcquisitionAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_AssetAcquisitionTable_69f99705-7224-4e10-8aaf-f5c583f819b3" xlink:to="loc_us-gaap_AssetAcquisitionAxis_b6fefb4a-77b4-431d-bd5f-22d84d04446f" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetAcquisitionDomain_b6fefb4a-77b4-431d-bd5f-22d84d04446f_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetAcquisitionDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_AssetAcquisitionAxis_b6fefb4a-77b4-431d-bd5f-22d84d04446f" xlink:to="loc_us-gaap_AssetAcquisitionDomain_b6fefb4a-77b4-431d-bd5f-22d84d04446f_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetAcquisitionDomain_de0d906c-0e80-4340-a6a7-02fc30b1b9cf" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetAcquisitionDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_AssetAcquisitionAxis_b6fefb4a-77b4-431d-bd5f-22d84d04446f" xlink:to="loc_us-gaap_AssetAcquisitionDomain_de0d906c-0e80-4340-a6a7-02fc30b1b9cf" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AegisEnergyServicesLLCMember_87b63076-2a13-4041-a7e5-166121354cd8" xlink:href="tgen-20241231.xsd#tgen_AegisEnergyServicesLLCMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AssetAcquisitionDomain_de0d906c-0e80-4340-a6a7-02fc30b1b9cf" xlink:to="loc_tgen_AegisEnergyServicesLLCMember_87b63076-2a13-4041-a7e5-166121354cd8" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MeasurementInputTypeAxis_cd95ecba-5e84-4a8f-a724-69a930ad868c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_MeasurementInputTypeAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_AssetAcquisitionTable_69f99705-7224-4e10-8aaf-f5c583f819b3" xlink:to="loc_us-gaap_MeasurementInputTypeAxis_cd95ecba-5e84-4a8f-a724-69a930ad868c" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MeasurementInputTypeDomain_cd95ecba-5e84-4a8f-a724-69a930ad868c_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_MeasurementInputTypeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_MeasurementInputTypeAxis_cd95ecba-5e84-4a8f-a724-69a930ad868c" xlink:to="loc_us-gaap_MeasurementInputTypeDomain_cd95ecba-5e84-4a8f-a724-69a930ad868c_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MeasurementInputTypeDomain_ac55c0bb-4e8d-47a4-93b1-d07113103166" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_MeasurementInputTypeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_MeasurementInputTypeAxis_cd95ecba-5e84-4a8f-a724-69a930ad868c" xlink:to="loc_us-gaap_MeasurementInputTypeDomain_ac55c0bb-4e8d-47a4-93b1-d07113103166" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MeasurementInputDiscountRateMember_e0e4a73b-9354-4505-90ed-c5bdb07d2f31" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_MeasurementInputDiscountRateMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_MeasurementInputTypeDomain_ac55c0bb-4e8d-47a4-93b1-d07113103166" xlink:to="loc_us-gaap_MeasurementInputDiscountRateMember_e0e4a73b-9354-4505-90ed-c5bdb07d2f31" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_MeasurementInputWACCMember_c611c1c9-7b49-4901-9460-7351deeccb42" xlink:href="tgen-20241231.xsd#tgen_MeasurementInputWACCMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_MeasurementInputTypeDomain_ac55c0bb-4e8d-47a4-93b1-d07113103166" xlink:to="loc_tgen_MeasurementInputWACCMember_c611c1c9-7b49-4901-9460-7351deeccb42" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeAxis_4a4b8c43-d3cf-4bfb-899f-bb94dc2d7a31" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_AssetAcquisitionTable_69f99705-7224-4e10-8aaf-f5c583f819b3" xlink:to="loc_srt_RangeAxis_4a4b8c43-d3cf-4bfb-899f-bb94dc2d7a31" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeMember_4a4b8c43-d3cf-4bfb-899f-bb94dc2d7a31_default" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_RangeAxis_4a4b8c43-d3cf-4bfb-899f-bb94dc2d7a31" xlink:to="loc_srt_RangeMember_4a4b8c43-d3cf-4bfb-899f-bb94dc2d7a31_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeMember_ea3450db-325d-41f2-a498-190107a5c141" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_RangeAxis_4a4b8c43-d3cf-4bfb-899f-bb94dc2d7a31" xlink:to="loc_srt_RangeMember_ea3450db-325d-41f2-a498-190107a5c141" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MinimumMember_228fd6e4-9858-454f-8fc5-3a1f80b24829" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MinimumMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RangeMember_ea3450db-325d-41f2-a498-190107a5c141" xlink:to="loc_srt_MinimumMember_228fd6e4-9858-454f-8fc5-3a1f80b24829" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MaximumMember_3b98625b-eff1-448b-ab89-2e979593677a" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MaximumMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RangeMember_ea3450db-325d-41f2-a498-190107a5c141" xlink:to="loc_srt_MaximumMember_3b98625b-eff1-448b-ab89-2e979593677a" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AssetAcquisitionMaintenanceAgreementsNumberOfCogenerationSystems_25ebe582-4d06-4db7-9a69-ba4ecdf3b9d2" xlink:href="tgen-20241231.xsd#tgen_AssetAcquisitionMaintenanceAgreementsNumberOfCogenerationSystems"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AssetAcquisitionLineItems_13f0bfb6-9c2a-4645-b35b-3bc240ec1478" xlink:to="loc_tgen_AssetAcquisitionMaintenanceAgreementsNumberOfCogenerationSystems_25ebe582-4d06-4db7-9a69-ba4ecdf3b9d2" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_NumberOfAssetsAcquired_efa1946d-ece6-4b94-a6f7-1ccf9c431f94" xlink:href="tgen-20241231.xsd#tgen_NumberOfAssetsAcquired"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AssetAcquisitionLineItems_13f0bfb6-9c2a-4645-b35b-3bc240ec1478" xlink:to="loc_tgen_NumberOfAssetsAcquired_efa1946d-ece6-4b94-a6f7-1ccf9c431f94" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_PaymentsForAssetAcquisitions_4651532a-3e22-4df9-84fb-fee3b5fbbccb" xlink:href="tgen-20241231.xsd#tgen_PaymentsForAssetAcquisitions"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AssetAcquisitionLineItems_13f0bfb6-9c2a-4645-b35b-3bc240ec1478" xlink:to="loc_tgen_PaymentsForAssetAcquisitions_4651532a-3e22-4df9-84fb-fee3b5fbbccb" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_NumberOfEmployeesAcquired_73a961df-7ee2-4226-9f64-897daaad5293" xlink:href="tgen-20241231.xsd#tgen_NumberOfEmployeesAcquired"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AssetAcquisitionLineItems_13f0bfb6-9c2a-4645-b35b-3bc240ec1478" xlink:to="loc_tgen_NumberOfEmployeesAcquired_73a961df-7ee2-4226-9f64-897daaad5293" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AssetAcquisitionMaintenanceAgreementsProfitSharingPeriod_a0c3f659-a3e4-4417-9697-cb165d11787d" xlink:href="tgen-20241231.xsd#tgen_AssetAcquisitionMaintenanceAgreementsProfitSharingPeriod"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AssetAcquisitionLineItems_13f0bfb6-9c2a-4645-b35b-3bc240ec1478" xlink:to="loc_tgen_AssetAcquisitionMaintenanceAgreementsProfitSharingPeriod_a0c3f659-a3e4-4417-9697-cb165d11787d" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AssetAcquisitionNumberOfAdditionalMaintenanceContracts_2b31804f-0962-4f44-9ce1-c35689be2d65" xlink:href="tgen-20241231.xsd#tgen_AssetAcquisitionNumberOfAdditionalMaintenanceContracts"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AssetAcquisitionLineItems_13f0bfb6-9c2a-4645-b35b-3bc240ec1478" xlink:to="loc_tgen_AssetAcquisitionNumberOfAdditionalMaintenanceContracts_2b31804f-0962-4f44-9ce1-c35689be2d65" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AssetAcquisitionMaintenanceAgreementsNumberOfAdditionalCogenerationUnits_91e2abb1-404a-434d-a12a-635a33535821" xlink:href="tgen-20241231.xsd#tgen_AssetAcquisitionMaintenanceAgreementsNumberOfAdditionalCogenerationUnits"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AssetAcquisitionLineItems_13f0bfb6-9c2a-4645-b35b-3bc240ec1478" xlink:to="loc_tgen_AssetAcquisitionMaintenanceAgreementsNumberOfAdditionalCogenerationUnits_91e2abb1-404a-434d-a12a-635a33535821" xlink:type="arc" order="6"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetAcquisitionConsiderationTransferredOtherAssets_248353af-e1b1-48c0-93f7-bedc0eefd9e5" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetAcquisitionConsiderationTransferredOtherAssets"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AssetAcquisitionLineItems_13f0bfb6-9c2a-4645-b35b-3bc240ec1478" xlink:to="loc_us-gaap_AssetAcquisitionConsiderationTransferredOtherAssets_248353af-e1b1-48c0-93f7-bedc0eefd9e5" xlink:type="arc" order="7"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AssetAcquisitionConsiderationTransferredAccountsPayable_e584752f-ca98-4ded-8fb9-859bdb3232b2" xlink:href="tgen-20241231.xsd#tgen_AssetAcquisitionConsiderationTransferredAccountsPayable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AssetAcquisitionLineItems_13f0bfb6-9c2a-4645-b35b-3bc240ec1478" xlink:to="loc_tgen_AssetAcquisitionConsiderationTransferredAccountsPayable_e584752f-ca98-4ded-8fb9-859bdb3232b2" xlink:type="arc" order="8"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetAcquisitionConsiderationTransferredContingentConsideration_f61edc12-746e-4086-8d55-a2ec209d9764" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetAcquisitionConsiderationTransferredContingentConsideration"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AssetAcquisitionLineItems_13f0bfb6-9c2a-4645-b35b-3bc240ec1478" xlink:to="loc_us-gaap_AssetAcquisitionConsiderationTransferredContingentConsideration_f61edc12-746e-4086-8d55-a2ec209d9764" xlink:type="arc" order="9"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetAcquisitionConsiderationTransferred_2cab4e4f-be83-462e-a1a2-2880d02b8a1d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetAcquisitionConsiderationTransferred"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AssetAcquisitionLineItems_13f0bfb6-9c2a-4645-b35b-3bc240ec1478" xlink:to="loc_us-gaap_AssetAcquisitionConsiderationTransferred_2cab4e4f-be83-462e-a1a2-2880d02b8a1d" xlink:type="arc" order="10"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AssetAcquisitionPropertyPlantAndEquipment_01f8dbf1-40bb-4bda-bde5-0ee8dcb6fc83" xlink:href="tgen-20241231.xsd#tgen_AssetAcquisitionPropertyPlantAndEquipment"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AssetAcquisitionLineItems_13f0bfb6-9c2a-4645-b35b-3bc240ec1478" xlink:to="loc_tgen_AssetAcquisitionPropertyPlantAndEquipment_01f8dbf1-40bb-4bda-bde5-0ee8dcb6fc83" xlink:type="arc" order="11"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AssetAcquisitionInventory_32f7111b-ec6e-4819-ac4c-0f7a3d2c3763" xlink:href="tgen-20241231.xsd#tgen_AssetAcquisitionInventory"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AssetAcquisitionLineItems_13f0bfb6-9c2a-4645-b35b-3bc240ec1478" xlink:to="loc_tgen_AssetAcquisitionInventory_32f7111b-ec6e-4819-ac4c-0f7a3d2c3763" xlink:type="arc" order="12"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinitelivedIntangibleAssetsAcquired1_3cb2399d-7ca7-4abb-8122-f9f651d69717" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FinitelivedIntangibleAssetsAcquired1"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AssetAcquisitionLineItems_13f0bfb6-9c2a-4645-b35b-3bc240ec1478" xlink:to="loc_us-gaap_FinitelivedIntangibleAssetsAcquired1_3cb2399d-7ca7-4abb-8122-f9f651d69717" xlink:type="arc" order="13"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AssetAcquisitionAssetsAcquired_30a65c37-61bd-4136-bc90-432c924bbc6d" xlink:href="tgen-20241231.xsd#tgen_AssetAcquisitionAssetsAcquired"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AssetAcquisitionLineItems_13f0bfb6-9c2a-4645-b35b-3bc240ec1478" xlink:to="loc_tgen_AssetAcquisitionAssetsAcquired_30a65c37-61bd-4136-bc90-432c924bbc6d" xlink:type="arc" order="14"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AssetAcquisitionReserves_01c0bb76-7f35-48dd-a50b-ec1ddc9a3a20" xlink:href="tgen-20241231.xsd#tgen_AssetAcquisitionReserves"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AssetAcquisitionLineItems_13f0bfb6-9c2a-4645-b35b-3bc240ec1478" xlink:to="loc_tgen_AssetAcquisitionReserves_01c0bb76-7f35-48dd-a50b-ec1ddc9a3a20" xlink:type="arc" order="15"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AssetAcquisitionAssetsAcquiredAndLiabilitiesAssumedNet_5b2f7d8e-f4be-4846-809f-0cbd135f7415" xlink:href="tgen-20241231.xsd#tgen_AssetAcquisitionAssetsAcquiredAndLiabilitiesAssumedNet"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AssetAcquisitionLineItems_13f0bfb6-9c2a-4645-b35b-3bc240ec1478" xlink:to="loc_tgen_AssetAcquisitionAssetsAcquiredAndLiabilitiesAssumedNet_5b2f7d8e-f4be-4846-809f-0cbd135f7415" xlink:type="arc" order="16"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AssetAcquisitionGoodwill_1957ce36-adb4-4de1-8344-750552d0cd12" xlink:href="tgen-20241231.xsd#tgen_AssetAcquisitionGoodwill"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AssetAcquisitionLineItems_13f0bfb6-9c2a-4645-b35b-3bc240ec1478" xlink:to="loc_tgen_AssetAcquisitionGoodwill_1957ce36-adb4-4de1-8344-750552d0cd12" xlink:type="arc" order="17"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillAcquiredDuringPeriod_5f330ea8-3013-4908-a3c3-6f5b27d43a71" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GoodwillAcquiredDuringPeriod"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AssetAcquisitionLineItems_13f0bfb6-9c2a-4645-b35b-3bc240ec1478" xlink:to="loc_us-gaap_GoodwillAcquiredDuringPeriod_5f330ea8-3013-4908-a3c3-6f5b27d43a71" xlink:type="arc" order="18"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_IntangibleAssetsMeasurementInput_8bd795b5-f7f0-4cc0-9b29-bb591447b64f" xlink:href="tgen-20241231.xsd#tgen_IntangibleAssetsMeasurementInput"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AssetAcquisitionLineItems_13f0bfb6-9c2a-4645-b35b-3bc240ec1478" xlink:to="loc_tgen_IntangibleAssetsMeasurementInput_8bd795b5-f7f0-4cc0-9b29-bb591447b64f" xlink:type="arc" order="19"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionsProFormaRevenue_525d0784-9b15-40b8-9207-50a499053a6c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionsProFormaRevenue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AssetAcquisitionLineItems_13f0bfb6-9c2a-4645-b35b-3bc240ec1478" xlink:to="loc_us-gaap_BusinessAcquisitionsProFormaRevenue_525d0784-9b15-40b8-9207-50a499053a6c" xlink:type="arc" order="20"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss_42e93fe9-310c-44cd-92ef-351fa062a34b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AssetAcquisitionLineItems_13f0bfb6-9c2a-4645-b35b-3bc240ec1478" xlink:to="loc_us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss_42e93fe9-310c-44cd-92ef-351fa062a34b" xlink:type="arc" order="21"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AssetAcquisitionConsiderationTransferredContingentConsiderationCurrent_638dfefd-b1e4-4830-904e-a595eb0ff666" xlink:href="tgen-20241231.xsd#tgen_AssetAcquisitionConsiderationTransferredContingentConsiderationCurrent"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AssetAcquisitionLineItems_13f0bfb6-9c2a-4645-b35b-3bc240ec1478" xlink:to="loc_tgen_AssetAcquisitionConsiderationTransferredContingentConsiderationCurrent_638dfefd-b1e4-4830-904e-a595eb0ff666" xlink:type="arc" order="22"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AssetAcquisitionReservesCurrent_4e6c0221-b3bd-4407-a4b8-ddb5172ef279" xlink:href="tgen-20241231.xsd#tgen_AssetAcquisitionReservesCurrent"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AssetAcquisitionLineItems_13f0bfb6-9c2a-4645-b35b-3bc240ec1478" xlink:to="loc_tgen_AssetAcquisitionReservesCurrent_4e6c0221-b3bd-4407-a4b8-ddb5172ef279" xlink:type="arc" order="23"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AssetAcquisitionLiabilitiesAssumedCurrent_a056ece2-85df-4cdb-824f-7fdcdb9a77b9" xlink:href="tgen-20241231.xsd#tgen_AssetAcquisitionLiabilitiesAssumedCurrent"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AssetAcquisitionLineItems_13f0bfb6-9c2a-4645-b35b-3bc240ec1478" xlink:to="loc_tgen_AssetAcquisitionLiabilitiesAssumedCurrent_a056ece2-85df-4cdb-824f-7fdcdb9a77b9" xlink:type="arc" order="24"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AssetAcquisitionConsiderationTransferredContingentConsiderationNoncurrent_8032d8f1-526b-42b5-964d-91832520cacc" xlink:href="tgen-20241231.xsd#tgen_AssetAcquisitionConsiderationTransferredContingentConsiderationNoncurrent"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AssetAcquisitionLineItems_13f0bfb6-9c2a-4645-b35b-3bc240ec1478" xlink:to="loc_tgen_AssetAcquisitionConsiderationTransferredContingentConsiderationNoncurrent_8032d8f1-526b-42b5-964d-91832520cacc" xlink:type="arc" order="25"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AssetAcquisitionReservesNoncurrent_40d2aa9c-f14c-4b47-bc31-4366c138f404" xlink:href="tgen-20241231.xsd#tgen_AssetAcquisitionReservesNoncurrent"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AssetAcquisitionLineItems_13f0bfb6-9c2a-4645-b35b-3bc240ec1478" xlink:to="loc_tgen_AssetAcquisitionReservesNoncurrent_40d2aa9c-f14c-4b47-bc31-4366c138f404" xlink:type="arc" order="26"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AssetAcquisitionLiabilitiesAssumedNoncurrent_20cc8c7c-0b17-478b-a547-2d4ac9ca88fe" xlink:href="tgen-20241231.xsd#tgen_AssetAcquisitionLiabilitiesAssumedNoncurrent"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AssetAcquisitionLineItems_13f0bfb6-9c2a-4645-b35b-3bc240ec1478" xlink:to="loc_tgen_AssetAcquisitionLiabilitiesAssumedNoncurrent_20cc8c7c-0b17-478b-a547-2d4ac9ca88fe" xlink:type="arc" order="27"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AssetAcquisitionContingentConsiderationPaymentPeriod_c3631eb5-d6e3-4931-9914-4d86b3eddeb9" xlink:href="tgen-20241231.xsd#tgen_AssetAcquisitionContingentConsiderationPaymentPeriod"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AssetAcquisitionLineItems_13f0bfb6-9c2a-4645-b35b-3bc240ec1478" xlink:to="loc_tgen_AssetAcquisitionContingentConsiderationPaymentPeriod_c3631eb5-d6e3-4931-9914-4d86b3eddeb9" xlink:type="arc" order="28"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AssetAcquisitionContingentConsiderationPercentage_8ca5f0b2-a650-4cc8-80bf-6068242d7f84" xlink:href="tgen-20241231.xsd#tgen_AssetAcquisitionContingentConsiderationPercentage"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AssetAcquisitionLineItems_13f0bfb6-9c2a-4645-b35b-3bc240ec1478" xlink:to="loc_tgen_AssetAcquisitionContingentConsiderationPercentage_8ca5f0b2-a650-4cc8-80bf-6068242d7f84" xlink:type="arc" order="29"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AssetAcquisitionDeferredMaintenanceCostsIncurredPeriod_f2056e79-5e3f-4278-ad91-1f7a7047c4eb" xlink:href="tgen-20241231.xsd#tgen_AssetAcquisitionDeferredMaintenanceCostsIncurredPeriod"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AssetAcquisitionLineItems_13f0bfb6-9c2a-4645-b35b-3bc240ec1478" xlink:to="loc_tgen_AssetAcquisitionDeferredMaintenanceCostsIncurredPeriod_f2056e79-5e3f-4278-ad91-1f7a7047c4eb" xlink:type="arc" order="30"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationProvisionalInformationInitialAccountingIncompleteAdjustmentInventory_a7f73334-6bac-4733-bd68-4f7527007354" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationProvisionalInformationInitialAccountingIncompleteAdjustmentInventory"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AssetAcquisitionLineItems_13f0bfb6-9c2a-4645-b35b-3bc240ec1478" xlink:to="loc_us-gaap_BusinessCombinationProvisionalInformationInitialAccountingIncompleteAdjustmentInventory_a7f73334-6bac-4733-bd68-4f7527007354" xlink:type="arc" order="31"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationProvisionalInformationInitialAccountingIncompleteAdjustmentFinancialLiabilities_1b42cecc-55e3-4a8a-820d-feacd9675d0b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationProvisionalInformationInitialAccountingIncompleteAdjustmentFinancialLiabilities"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AssetAcquisitionLineItems_13f0bfb6-9c2a-4645-b35b-3bc240ec1478" xlink:to="loc_us-gaap_BusinessCombinationProvisionalInformationInitialAccountingIncompleteAdjustmentFinancialLiabilities_1b42cecc-55e3-4a8a-820d-feacd9675d0b" xlink:type="arc" order="32"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationProvisionalInformationInitialAccountingIncompleteAdjustmentConsiderationTransferred_3ac19266-edd2-4e94-8aa4-7daacf2eea35" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationProvisionalInformationInitialAccountingIncompleteAdjustmentConsiderationTransferred"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AssetAcquisitionLineItems_13f0bfb6-9c2a-4645-b35b-3bc240ec1478" xlink:to="loc_us-gaap_BusinessCombinationProvisionalInformationInitialAccountingIncompleteAdjustmentConsiderationTransferred_3ac19266-edd2-4e94-8aa4-7daacf2eea35" xlink:type="arc" order="33"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AssetAcquisitionProvisionalInformationInitialAccountingIncompleteAdjustmentContingentConsiderationLiability_50f3f6eb-de8b-442a-ab77-8e001bf972e3" xlink:href="tgen-20241231.xsd#tgen_AssetAcquisitionProvisionalInformationInitialAccountingIncompleteAdjustmentContingentConsiderationLiability"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AssetAcquisitionLineItems_13f0bfb6-9c2a-4645-b35b-3bc240ec1478" xlink:to="loc_tgen_AssetAcquisitionProvisionalInformationInitialAccountingIncompleteAdjustmentContingentConsiderationLiability_50f3f6eb-de8b-442a-ab77-8e001bf972e3" xlink:type="arc" order="34"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AssetAcquisitionProvisionalInformationInitialAccountingIncompleteAdjustmentFiniteLivedIntangibleAssetsAcquired_68dba801-b063-4188-be93-22edf9f71bfd" xlink:href="tgen-20241231.xsd#tgen_AssetAcquisitionProvisionalInformationInitialAccountingIncompleteAdjustmentFiniteLivedIntangibleAssetsAcquired"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AssetAcquisitionLineItems_13f0bfb6-9c2a-4645-b35b-3bc240ec1478" xlink:to="loc_tgen_AssetAcquisitionProvisionalInformationInitialAccountingIncompleteAdjustmentFiniteLivedIntangibleAssetsAcquired_68dba801-b063-4188-be93-22edf9f71bfd" xlink:type="arc" order="35"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationProvisionalInformationInitialAccountingIncompleteAdjustmentIntangibles_b3648c14-8e00-4a15-8540-f5ec1d7deb28" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationProvisionalInformationInitialAccountingIncompleteAdjustmentIntangibles"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AssetAcquisitionLineItems_13f0bfb6-9c2a-4645-b35b-3bc240ec1478" xlink:to="loc_us-gaap_BusinessCombinationProvisionalInformationInitialAccountingIncompleteAdjustmentIntangibles_b3648c14-8e00-4a15-8540-f5ec1d7deb28" xlink:type="arc" order="36"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetAcquisitionContingentConsiderationLiability_68b57b6d-64c5-4f36-b198-95a6ff05e3ce" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetAcquisitionContingentConsiderationLiability"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AssetAcquisitionLineItems_13f0bfb6-9c2a-4645-b35b-3bc240ec1478" xlink:to="loc_us-gaap_AssetAcquisitionContingentConsiderationLiability_68b57b6d-64c5-4f36-b198-95a6ff05e3ce" xlink:type="arc" order="37"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentForContingentConsiderationLiabilityInvestingActivities_3dda5bcc-c6eb-4721-abc5-9777d3b07f5e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentForContingentConsiderationLiabilityInvestingActivities"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AssetAcquisitionLineItems_13f0bfb6-9c2a-4645-b35b-3bc240ec1478" xlink:to="loc_us-gaap_PaymentForContingentConsiderationLiabilityInvestingActivities_3dda5bcc-c6eb-4721-abc5-9777d3b07f5e" xlink:type="arc" order="38"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/SaleofADGAssetsDetails" xlink:type="simple" xlink:href="tgen-20241231.xsd#SaleofADGAssetsDetails"/>
  <link:definitionLink xlink:role="http://www.tecogen.com/role/SaleofADGAssetsDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsLineItems_9190329b-a2a3-4edb-90af-89906bb3f25a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsTable_36e410d4-ba5c-4353-80be-6d1e2179ddf8" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsLineItems_9190329b-a2a3-4edb-90af-89906bb3f25a" xlink:to="loc_us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsTable_36e410d4-ba5c-4353-80be-6d1e2179ddf8" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductOrServiceAxis_21d22697-c669-4801-9aae-0c7b2f62e1fb" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ProductOrServiceAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsTable_36e410d4-ba5c-4353-80be-6d1e2179ddf8" xlink:to="loc_srt_ProductOrServiceAxis_21d22697-c669-4801-9aae-0c7b2f62e1fb" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductsAndServicesDomain_21d22697-c669-4801-9aae-0c7b2f62e1fb_default" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ProductsAndServicesDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_ProductOrServiceAxis_21d22697-c669-4801-9aae-0c7b2f62e1fb" xlink:to="loc_srt_ProductsAndServicesDomain_21d22697-c669-4801-9aae-0c7b2f62e1fb_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductsAndServicesDomain_6ca711c1-4b48-47a5-9263-f03a5a319eb0" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ProductsAndServicesDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_ProductOrServiceAxis_21d22697-c669-4801-9aae-0c7b2f62e1fb" xlink:to="loc_srt_ProductsAndServicesDomain_6ca711c1-4b48-47a5-9263-f03a5a319eb0" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_EnergyProductionContactsMember_f98e9fb8-70df-4ae7-8855-ca56e9ccafe5" xlink:href="tgen-20241231.xsd#tgen_EnergyProductionContactsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_ProductsAndServicesDomain_6ca711c1-4b48-47a5-9263-f03a5a319eb0" xlink:to="loc_tgen_EnergyProductionContactsMember_f98e9fb8-70df-4ae7-8855-ca56e9ccafe5" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetAcquisitionAxis_e2319e79-d8d3-4282-8010-3487a3604b81" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetAcquisitionAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsTable_36e410d4-ba5c-4353-80be-6d1e2179ddf8" xlink:to="loc_us-gaap_AssetAcquisitionAxis_e2319e79-d8d3-4282-8010-3487a3604b81" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetAcquisitionDomain_e2319e79-d8d3-4282-8010-3487a3604b81_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetAcquisitionDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_AssetAcquisitionAxis_e2319e79-d8d3-4282-8010-3487a3604b81" xlink:to="loc_us-gaap_AssetAcquisitionDomain_e2319e79-d8d3-4282-8010-3487a3604b81_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetAcquisitionDomain_282ceb5d-a4df-4d02-866b-09e3b1d6fc13" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetAcquisitionDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_AssetAcquisitionAxis_e2319e79-d8d3-4282-8010-3487a3604b81" xlink:to="loc_us-gaap_AssetAcquisitionDomain_282ceb5d-a4df-4d02-866b-09e3b1d6fc13" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AegisEnergyServicesLLCMember_b9e5d5a8-7314-44ab-a2c9-f1f6ef17c8cb" xlink:href="tgen-20241231.xsd#tgen_AegisEnergyServicesLLCMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AssetAcquisitionDomain_282ceb5d-a4df-4d02-866b-09e3b1d6fc13" xlink:to="loc_tgen_AegisEnergyServicesLLCMember_b9e5d5a8-7314-44ab-a2c9-f1f6ef17c8cb" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax_9a83fc5a-b3d0-4dcd-aa99-d393dc12f15a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsLineItems_9190329b-a2a3-4edb-90af-89906bb3f25a" xlink:to="loc_us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax_9a83fc5a-b3d0-4dcd-aa99-d393dc12f15a" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_EnergyProductionAgreementsPercentageOfExcessCashFlowsAboveThreshold_2acec619-2117-4f2c-abc1-1f814ff8263c" xlink:href="tgen-20241231.xsd#tgen_EnergyProductionAgreementsPercentageOfExcessCashFlowsAboveThreshold"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsLineItems_9190329b-a2a3-4edb-90af-89906bb3f25a" xlink:to="loc_tgen_EnergyProductionAgreementsPercentageOfExcessCashFlowsAboveThreshold_2acec619-2117-4f2c-abc1-1f814ff8263c" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_EnergyProductionAgreementsRevenueOfExcessCashFlowsAboveThreshold_30bf2236-fa88-4254-9ea2-39d9e7e476be" xlink:href="tgen-20241231.xsd#tgen_EnergyProductionAgreementsRevenueOfExcessCashFlowsAboveThreshold"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsLineItems_9190329b-a2a3-4edb-90af-89906bb3f25a" xlink:to="loc_tgen_EnergyProductionAgreementsRevenueOfExcessCashFlowsAboveThreshold_30bf2236-fa88-4254-9ea2-39d9e7e476be" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_EnergyProductionAgreementsAccountsReceivableFromExcessCashFlowsAboveThreshold_3e6c2834-12c8-46ec-88f0-b0bdf2abbc5b" xlink:href="tgen-20241231.xsd#tgen_EnergyProductionAgreementsAccountsReceivableFromExcessCashFlowsAboveThreshold"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsLineItems_9190329b-a2a3-4edb-90af-89906bb3f25a" xlink:to="loc_tgen_EnergyProductionAgreementsAccountsReceivableFromExcessCashFlowsAboveThreshold_3e6c2834-12c8-46ec-88f0-b0bdf2abbc5b" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_EnergyProductionAgreementsSiteDecommissioningCosts_ea09c31a-d83d-45ba-8755-07c7b27e4008" xlink:href="tgen-20241231.xsd#tgen_EnergyProductionAgreementsSiteDecommissioningCosts"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsLineItems_9190329b-a2a3-4edb-90af-89906bb3f25a" xlink:to="loc_tgen_EnergyProductionAgreementsSiteDecommissioningCosts_ea09c31a-d83d-45ba-8755-07c7b27e4008" xlink:type="arc" order="4"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/IntangibleassetsandliabilitiesotherthangoodwillNarrativeDetails" xlink:type="simple" xlink:href="tgen-20241231.xsd#IntangibleassetsandliabilitiesotherthangoodwillNarrativeDetails"/>
  <link:definitionLink xlink:role="http://www.tecogen.com/role/IntangibleassetsandliabilitiesotherthangoodwillNarrativeDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AcquiredFiniteLivedIntangibleAssetsLineItems_82fe6d07-308b-4d3f-b967-8897dd3e3b5d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AcquiredFiniteLivedIntangibleAssetsLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfAcquiredFiniteLivedIntangibleAssetByMajorClassTable_a8620c87-89c5-4d16-a7e4-7dcb9997a176" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfAcquiredFiniteLivedIntangibleAssetByMajorClassTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_AcquiredFiniteLivedIntangibleAssetsLineItems_82fe6d07-308b-4d3f-b967-8897dd3e3b5d" xlink:to="loc_us-gaap_ScheduleOfAcquiredFiniteLivedIntangibleAssetByMajorClassTable_a8620c87-89c5-4d16-a7e4-7dcb9997a176" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IndefiniteLivedIntangibleAssetsByMajorClassAxis_6c7aedde-b5e7-4404-aac8-f9702140f3e9" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IndefiniteLivedIntangibleAssetsByMajorClassAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfAcquiredFiniteLivedIntangibleAssetByMajorClassTable_a8620c87-89c5-4d16-a7e4-7dcb9997a176" xlink:to="loc_us-gaap_IndefiniteLivedIntangibleAssetsByMajorClassAxis_6c7aedde-b5e7-4404-aac8-f9702140f3e9" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IndefiniteLivedIntangibleAssetsMajorClassNameDomain_6c7aedde-b5e7-4404-aac8-f9702140f3e9_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IndefiniteLivedIntangibleAssetsMajorClassNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_IndefiniteLivedIntangibleAssetsByMajorClassAxis_6c7aedde-b5e7-4404-aac8-f9702140f3e9" xlink:to="loc_us-gaap_IndefiniteLivedIntangibleAssetsMajorClassNameDomain_6c7aedde-b5e7-4404-aac8-f9702140f3e9_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IndefiniteLivedIntangibleAssetsMajorClassNameDomain_c9337fb9-8640-4a0f-9553-fbb82df0d948" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IndefiniteLivedIntangibleAssetsMajorClassNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_IndefiniteLivedIntangibleAssetsByMajorClassAxis_6c7aedde-b5e7-4404-aac8-f9702140f3e9" xlink:to="loc_us-gaap_IndefiniteLivedIntangibleAssetsMajorClassNameDomain_c9337fb9-8640-4a0f-9553-fbb82df0d948" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TrademarksMember_c32092a2-bfb2-42d4-9f68-988f5efd4d25" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TrademarksMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IndefiniteLivedIntangibleAssetsMajorClassNameDomain_c9337fb9-8640-4a0f-9553-fbb82df0d948" xlink:to="loc_us-gaap_TrademarksMember_c32092a2-bfb2-42d4-9f68-988f5efd4d25" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_898e74f4-8f90-4265-a117-266359450723" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfAcquiredFiniteLivedIntangibleAssetByMajorClassTable_a8620c87-89c5-4d16-a7e4-7dcb9997a176" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_898e74f4-8f90-4265-a117-266359450723" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_898e74f4-8f90-4265-a117-266359450723_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_898e74f4-8f90-4265-a117-266359450723" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_898e74f4-8f90-4265-a117-266359450723_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_897a016c-7103-43d2-af6c-256fdb454dca" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_898e74f4-8f90-4265-a117-266359450723" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_897a016c-7103-43d2-af6c-256fdb454dca" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ProductCertificationMember_79030a38-9f22-4d75-8a16-d695b7f39f02" xlink:href="tgen-20241231.xsd#tgen_ProductCertificationMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_897a016c-7103-43d2-af6c-256fdb454dca" xlink:to="loc_tgen_ProductCertificationMember_79030a38-9f22-4d75-8a16-d695b7f39f02" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PatentsMember_b922d1cc-2c15-4e38-b8c0-297bd15880cd" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PatentsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_897a016c-7103-43d2-af6c-256fdb454dca" xlink:to="loc_us-gaap_PatentsMember_b922d1cc-2c15-4e38-b8c0-297bd15880cd" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_FavorableContractAssetMember_c54f7495-9807-4eba-b698-9d3c351b9f39" xlink:href="tgen-20241231.xsd#tgen_FavorableContractAssetMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_897a016c-7103-43d2-af6c-256fdb454dca" xlink:to="loc_tgen_FavorableContractAssetMember_c54f7495-9807-4eba-b698-9d3c351b9f39" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractBasedIntangibleAssetsMember_7bbff89e-b7bf-484c-b89d-0ad0498c6a6c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ContractBasedIntangibleAssetsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_897a016c-7103-43d2-af6c-256fdb454dca" xlink:to="loc_us-gaap_ContractBasedIntangibleAssetsMember_7bbff89e-b7bf-484c-b89d-0ad0498c6a6c" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeAxis_93b2e6bf-6b3f-4745-98f2-2737ce66511b" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfAcquiredFiniteLivedIntangibleAssetByMajorClassTable_a8620c87-89c5-4d16-a7e4-7dcb9997a176" xlink:to="loc_srt_RangeAxis_93b2e6bf-6b3f-4745-98f2-2737ce66511b" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeMember_93b2e6bf-6b3f-4745-98f2-2737ce66511b_default" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_RangeAxis_93b2e6bf-6b3f-4745-98f2-2737ce66511b" xlink:to="loc_srt_RangeMember_93b2e6bf-6b3f-4745-98f2-2737ce66511b_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeMember_5194da52-36c5-483e-ba26-a29c6e83f0a8" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_RangeAxis_93b2e6bf-6b3f-4745-98f2-2737ce66511b" xlink:to="loc_srt_RangeMember_5194da52-36c5-483e-ba26-a29c6e83f0a8" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MinimumMember_dc5d6b8d-fe40-4206-b36c-729f676bf132" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MinimumMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RangeMember_5194da52-36c5-483e-ba26-a29c6e83f0a8" xlink:to="loc_srt_MinimumMember_dc5d6b8d-fe40-4206-b36c-729f676bf132" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MaximumMember_5b186819-74bd-4a33-b3f4-cd2b59e6ba8d" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MaximumMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RangeMember_5194da52-36c5-483e-ba26-a29c6e83f0a8" xlink:to="loc_srt_MaximumMember_5b186819-74bd-4a33-b3f4-cd2b59e6ba8d" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeStatementLocationAxis_d262c42e-57f6-4cce-acb5-b049a0795b7d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeStatementLocationAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfAcquiredFiniteLivedIntangibleAssetByMajorClassTable_a8620c87-89c5-4d16-a7e4-7dcb9997a176" xlink:to="loc_us-gaap_IncomeStatementLocationAxis_d262c42e-57f6-4cce-acb5-b049a0795b7d" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeStatementLocationDomain_d262c42e-57f6-4cce-acb5-b049a0795b7d_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeStatementLocationDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_IncomeStatementLocationAxis_d262c42e-57f6-4cce-acb5-b049a0795b7d" xlink:to="loc_us-gaap_IncomeStatementLocationDomain_d262c42e-57f6-4cce-acb5-b049a0795b7d_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeStatementLocationDomain_b72ae7c1-1233-4b7f-877d-010add207892" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeStatementLocationDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_IncomeStatementLocationAxis_d262c42e-57f6-4cce-acb5-b049a0795b7d" xlink:to="loc_us-gaap_IncomeStatementLocationDomain_b72ae7c1-1233-4b7f-877d-010add207892" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_LongLivedAssetImpairmentMember_af8d3a6e-66c1-4d8c-9a63-83a9319dceae" xlink:href="tgen-20241231.xsd#tgen_LongLivedAssetImpairmentMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncomeStatementLocationDomain_b72ae7c1-1233-4b7f-877d-010add207892" xlink:to="loc_tgen_LongLivedAssetImpairmentMember_af8d3a6e-66c1-4d8c-9a63-83a9319dceae" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetUsefulLife_80375682-ca2f-4847-886f-b1e9185a141e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetUsefulLife"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AcquiredFiniteLivedIntangibleAssetsLineItems_82fe6d07-308b-4d3f-b967-8897dd3e3b5d" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetUsefulLife_80375682-ca2f-4847-886f-b1e9185a141e" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinitelivedIntangibleAssetsAcquired1_2c9a6346-22ec-4b7d-aa05-76cef64ee59c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FinitelivedIntangibleAssetsAcquired1"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AcquiredFiniteLivedIntangibleAssetsLineItems_82fe6d07-308b-4d3f-b967-8897dd3e3b5d" xlink:to="loc_us-gaap_FinitelivedIntangibleAssetsAcquired1_2c9a6346-22ec-4b7d-aa05-76cef64ee59c" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AmortizationOfIntangibleAssets_8f061ead-64bf-4ff9-b7c8-d336007dcbdb" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AmortizationOfIntangibleAssets"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AcquiredFiniteLivedIntangibleAssetsLineItems_82fe6d07-308b-4d3f-b967-8897dd3e3b5d" xlink:to="loc_us-gaap_AmortizationOfIntangibleAssets_8f061ead-64bf-4ff9-b7c8-d336007dcbdb" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AmortizationofContractRelatedIntangibleAssetsandLiabilitiesNet_a383cf92-c8c9-46d1-ad22-bf624b4a33cc" xlink:href="tgen-20241231.xsd#tgen_AmortizationofContractRelatedIntangibleAssetsandLiabilitiesNet"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AcquiredFiniteLivedIntangibleAssetsLineItems_82fe6d07-308b-4d3f-b967-8897dd3e3b5d" xlink:to="loc_tgen_AmortizationofContractRelatedIntangibleAssetsandLiabilitiesNet_a383cf92-c8c9-46d1-ad22-bf624b4a33cc" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill_3211c872-971c-4067-aae1-aea073fd6e6c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AcquiredFiniteLivedIntangibleAssetsLineItems_82fe6d07-308b-4d3f-b967-8897dd3e3b5d" xlink:to="loc_us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill_3211c872-971c-4067-aae1-aea073fd6e6c" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GainLossOnContractTermination_a6fe3ad0-2be6-4677-846d-e34f1415302b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GainLossOnContractTermination"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AcquiredFiniteLivedIntangibleAssetsLineItems_82fe6d07-308b-4d3f-b967-8897dd3e3b5d" xlink:to="loc_us-gaap_GainLossOnContractTermination_a6fe3ad0-2be6-4677-846d-e34f1415302b" xlink:type="arc" order="5"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/IntangibleassetsotherthangoodwillScheduleofIntangibleAssetsDetails" xlink:type="simple" xlink:href="tgen-20241231.xsd#IntangibleassetsotherthangoodwillScheduleofIntangibleAssetsDetails"/>
  <link:definitionLink xlink:role="http://www.tecogen.com/role/IntangibleassetsotherthangoodwillScheduleofIntangibleAssetsDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_68edf787-0446-46f1-8a44-ecea7a286e7a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_bb2db831-5267-4e44-babd-6348a881e088" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_68edf787-0446-46f1-8a44-ecea7a286e7a" xlink:to="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_bb2db831-5267-4e44-babd-6348a881e088" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_FiniteLivedIntangibleLiabilityAxis_cb1e8921-1063-4fac-b76d-5b7a0bd86337" xlink:href="tgen-20241231.xsd#tgen_FiniteLivedIntangibleLiabilityAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_bb2db831-5267-4e44-babd-6348a881e088" xlink:to="loc_tgen_FiniteLivedIntangibleLiabilityAxis_cb1e8921-1063-4fac-b76d-5b7a0bd86337" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_FiniteLivedIntangibleLiabilityDomain_cb1e8921-1063-4fac-b76d-5b7a0bd86337_default" xlink:href="tgen-20241231.xsd#tgen_FiniteLivedIntangibleLiabilityDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_tgen_FiniteLivedIntangibleLiabilityAxis_cb1e8921-1063-4fac-b76d-5b7a0bd86337" xlink:to="loc_tgen_FiniteLivedIntangibleLiabilityDomain_cb1e8921-1063-4fac-b76d-5b7a0bd86337_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_FiniteLivedIntangibleLiabilityDomain_56751e99-d9b3-443a-9c88-c44813edbb15" xlink:href="tgen-20241231.xsd#tgen_FiniteLivedIntangibleLiabilityDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_tgen_FiniteLivedIntangibleLiabilityAxis_cb1e8921-1063-4fac-b76d-5b7a0bd86337" xlink:to="loc_tgen_FiniteLivedIntangibleLiabilityDomain_56751e99-d9b3-443a-9c88-c44813edbb15" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_UnfavorableContractLiabilityMember_69663ffc-93f8-4b58-aaed-b42ad3f2b237" xlink:href="tgen-20241231.xsd#tgen_UnfavorableContractLiabilityMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_tgen_FiniteLivedIntangibleLiabilityDomain_56751e99-d9b3-443a-9c88-c44813edbb15" xlink:to="loc_tgen_UnfavorableContractLiabilityMember_69663ffc-93f8-4b58-aaed-b42ad3f2b237" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IndefiniteLivedIntangibleAssetsByMajorClassAxis_be4b0ea0-d46f-4be9-8d20-d05dabfd5630" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IndefiniteLivedIntangibleAssetsByMajorClassAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_bb2db831-5267-4e44-babd-6348a881e088" xlink:to="loc_us-gaap_IndefiniteLivedIntangibleAssetsByMajorClassAxis_be4b0ea0-d46f-4be9-8d20-d05dabfd5630" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IndefiniteLivedIntangibleAssetsMajorClassNameDomain_be4b0ea0-d46f-4be9-8d20-d05dabfd5630_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IndefiniteLivedIntangibleAssetsMajorClassNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_IndefiniteLivedIntangibleAssetsByMajorClassAxis_be4b0ea0-d46f-4be9-8d20-d05dabfd5630" xlink:to="loc_us-gaap_IndefiniteLivedIntangibleAssetsMajorClassNameDomain_be4b0ea0-d46f-4be9-8d20-d05dabfd5630_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IndefiniteLivedIntangibleAssetsMajorClassNameDomain_52858f73-1464-4311-aa3e-df9452bc7484" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IndefiniteLivedIntangibleAssetsMajorClassNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_IndefiniteLivedIntangibleAssetsByMajorClassAxis_be4b0ea0-d46f-4be9-8d20-d05dabfd5630" xlink:to="loc_us-gaap_IndefiniteLivedIntangibleAssetsMajorClassNameDomain_52858f73-1464-4311-aa3e-df9452bc7484" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TrademarksMember_a658c645-77be-49e0-ae8d-ea9677d528d1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TrademarksMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IndefiniteLivedIntangibleAssetsMajorClassNameDomain_52858f73-1464-4311-aa3e-df9452bc7484" xlink:to="loc_us-gaap_TrademarksMember_a658c645-77be-49e0-ae8d-ea9677d528d1" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InProcessResearchAndDevelopmentMember_a889ba64-dd9c-433f-9408-5a94966e403e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InProcessResearchAndDevelopmentMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IndefiniteLivedIntangibleAssetsMajorClassNameDomain_52858f73-1464-4311-aa3e-df9452bc7484" xlink:to="loc_us-gaap_InProcessResearchAndDevelopmentMember_a889ba64-dd9c-433f-9408-5a94966e403e" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_2050af9a-c386-4a5a-99fc-27e301ba4661" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_bb2db831-5267-4e44-babd-6348a881e088" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_2050af9a-c386-4a5a-99fc-27e301ba4661" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_2050af9a-c386-4a5a-99fc-27e301ba4661_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_2050af9a-c386-4a5a-99fc-27e301ba4661" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_2050af9a-c386-4a5a-99fc-27e301ba4661_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_6418bce7-bf22-4328-8db7-1c506a27bec2" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_2050af9a-c386-4a5a-99fc-27e301ba4661" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_6418bce7-bf22-4328-8db7-1c506a27bec2" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ProductCertificationMember_612e1cb4-021c-4550-8d35-074b6923fb60" xlink:href="tgen-20241231.xsd#tgen_ProductCertificationMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_6418bce7-bf22-4328-8db7-1c506a27bec2" xlink:to="loc_tgen_ProductCertificationMember_612e1cb4-021c-4550-8d35-074b6923fb60" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PatentsMember_de96795b-a891-4408-b4c0-520bb48fd47c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PatentsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_6418bce7-bf22-4328-8db7-1c506a27bec2" xlink:to="loc_us-gaap_PatentsMember_de96795b-a891-4408-b4c0-520bb48fd47c" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DevelopedTechnologyRightsMember_9f750d00-3bf3-4f61-ba2d-dcc6cf52b767" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DevelopedTechnologyRightsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_6418bce7-bf22-4328-8db7-1c506a27bec2" xlink:to="loc_us-gaap_DevelopedTechnologyRightsMember_9f750d00-3bf3-4f61-ba2d-dcc6cf52b767" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_FavorableContractAssetMember_cb312751-e446-4939-bd9a-556a13bcaca3" xlink:href="tgen-20241231.xsd#tgen_FavorableContractAssetMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_6418bce7-bf22-4328-8db7-1c506a27bec2" xlink:to="loc_tgen_FavorableContractAssetMember_cb312751-e446-4939-bd9a-556a13bcaca3" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CustomerContractsMember_0ec36dbc-f100-4278-b3c4-d5420ef0bb02" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CustomerContractsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_6418bce7-bf22-4328-8db7-1c506a27bec2" xlink:to="loc_us-gaap_CustomerContractsMember_0ec36dbc-f100-4278-b3c4-d5420ef0bb02" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IntangibleAssetsGrossExcludingGoodwill_30c0d717-97f2-490d-95e3-c7257e3cd625" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IntangibleAssetsGrossExcludingGoodwill"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_68edf787-0446-46f1-8a44-ecea7a286e7a" xlink:to="loc_us-gaap_IntangibleAssetsGrossExcludingGoodwill_30c0d717-97f2-490d-95e3-c7257e3cd625" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_acda341d-2712-475a-8bdf-7bfe5caa4ff5" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_68edf787-0446-46f1-8a44-ecea7a286e7a" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_acda341d-2712-475a-8bdf-7bfe5caa4ff5" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IntangibleAssetsNetExcludingGoodwill_ea983991-ccf9-455a-a98e-f7e2d6f281d0" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IntangibleAssetsNetExcludingGoodwill"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_68edf787-0446-46f1-8a44-ecea7a286e7a" xlink:to="loc_us-gaap_IntangibleAssetsNetExcludingGoodwill_ea983991-ccf9-455a-a98e-f7e2d6f281d0" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_IntangibleLiabilityGross_cb17d4cf-d37c-4aed-9e82-b1e493ac36fc" xlink:href="tgen-20241231.xsd#tgen_IntangibleLiabilityGross"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_68edf787-0446-46f1-8a44-ecea7a286e7a" xlink:to="loc_tgen_IntangibleLiabilityGross_cb17d4cf-d37c-4aed-9e82-b1e493ac36fc" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_FiniteLivedIntangibleLiabilitiesAccumulatedAmortization_1033f409-d176-4274-8cf1-8ecc570bccfa" xlink:href="tgen-20241231.xsd#tgen_FiniteLivedIntangibleLiabilitiesAccumulatedAmortization"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_68edf787-0446-46f1-8a44-ecea7a286e7a" xlink:to="loc_tgen_FiniteLivedIntangibleLiabilitiesAccumulatedAmortization_1033f409-d176-4274-8cf1-8ecc570bccfa" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_IntangibleLiabilitiesNet_c4fdd10d-c42c-4886-9191-10f2c394d80c" xlink:href="tgen-20241231.xsd#tgen_IntangibleLiabilitiesNet"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_68edf787-0446-46f1-8a44-ecea7a286e7a" xlink:to="loc_tgen_IntangibleLiabilitiesNet_c4fdd10d-c42c-4886-9191-10f2c394d80c" xlink:type="arc" order="5"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/IntangibleassetsandliabilitiesotherthangoodwillScheduleofAggregateFutureAmortizationDetails" xlink:type="simple" xlink:href="tgen-20241231.xsd#IntangibleassetsandliabilitiesotherthangoodwillScheduleofAggregateFutureAmortizationDetails"/>
  <link:definitionLink xlink:role="http://www.tecogen.com/role/IntangibleassetsandliabilitiesotherthangoodwillScheduleofAggregateFutureAmortizationDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_b50d923b-314d-4885-a9b0-2d6c9075d492" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_1d0ac5de-db37-4896-a026-ece1bddb6685" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_b50d923b-314d-4885-a9b0-2d6c9075d492" xlink:to="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_1d0ac5de-db37-4896-a026-ece1bddb6685" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_499bbb21-bb9c-48a6-8948-0e3052fa2158" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_1d0ac5de-db37-4896-a026-ece1bddb6685" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_499bbb21-bb9c-48a6-8948-0e3052fa2158" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_499bbb21-bb9c-48a6-8948-0e3052fa2158_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_499bbb21-bb9c-48a6-8948-0e3052fa2158" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_499bbb21-bb9c-48a6-8948-0e3052fa2158_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_86614318-493c-468a-a127-cd8b68918fef" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_499bbb21-bb9c-48a6-8948-0e3052fa2158" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_86614318-493c-468a-a127-cd8b68918fef" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_NonContractRelatedIntangibleAssetsMember_023b77c1-6b99-4dbb-815f-5aa2d059d170" xlink:href="tgen-20241231.xsd#tgen_NonContractRelatedIntangibleAssetsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_86614318-493c-468a-a127-cd8b68918fef" xlink:to="loc_tgen_NonContractRelatedIntangibleAssetsMember_023b77c1-6b99-4dbb-815f-5aa2d059d170" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractBasedIntangibleAssetsMember_751779b1-fdc7-4c61-97c0-952b4b7bc7ad" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ContractBasedIntangibleAssetsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_86614318-493c-468a-a127-cd8b68918fef" xlink:to="loc_us-gaap_ContractBasedIntangibleAssetsMember_751779b1-fdc7-4c61-97c0-952b4b7bc7ad" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsNetAmortizationExpenseRollingMaturityAbstract_8cf704a3-d161-45e1-bb57-9a4d654d9d0d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsNetAmortizationExpenseRollingMaturityAbstract"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_b50d923b-314d-4885-a9b0-2d6c9075d492" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsNetAmortizationExpenseRollingMaturityAbstract_8cf704a3-d161-45e1-bb57-9a4d654d9d0d" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextRollingTwelveMonths_8bdad651-89b0-47c6-8101-3925ef20e087" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextRollingTwelveMonths"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsNetAmortizationExpenseRollingMaturityAbstract_8cf704a3-d161-45e1-bb57-9a4d654d9d0d" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextRollingTwelveMonths_8bdad651-89b0-47c6-8101-3925ef20e087" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRollingYearTwo_63cce239-189c-4fae-a341-ca5dd9ff4fb7" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRollingYearTwo"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsNetAmortizationExpenseRollingMaturityAbstract_8cf704a3-d161-45e1-bb57-9a4d654d9d0d" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRollingYearTwo_63cce239-189c-4fae-a341-ca5dd9ff4fb7" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRollingYearThree_aa26349d-d0ab-4ab8-8e75-9b875e0060c7" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRollingYearThree"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsNetAmortizationExpenseRollingMaturityAbstract_8cf704a3-d161-45e1-bb57-9a4d654d9d0d" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRollingYearThree_aa26349d-d0ab-4ab8-8e75-9b875e0060c7" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRollingYearFour_ab3bd2ef-32e6-4ead-b6ef-2a9bc04595a2" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRollingYearFour"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsNetAmortizationExpenseRollingMaturityAbstract_8cf704a3-d161-45e1-bb57-9a4d654d9d0d" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRollingYearFour_ab3bd2ef-32e6-4ead-b6ef-2a9bc04595a2" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRollingYearFive_94909bf4-03ce-4834-b87f-a3b366b9ad97" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRollingYearFive"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsNetAmortizationExpenseRollingMaturityAbstract_8cf704a3-d161-45e1-bb57-9a4d654d9d0d" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRollingYearFive_94909bf4-03ce-4834-b87f-a3b366b9ad97" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRollingAfterYearFive_ea594edd-035b-4c35-9049-de254a56613b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRollingAfterYearFive"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsNetAmortizationExpenseRollingMaturityAbstract_8cf704a3-d161-45e1-bb57-9a4d654d9d0d" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRollingAfterYearFive_ea594edd-035b-4c35-9049-de254a56613b" xlink:type="arc" order="6"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsNet_921f856c-b63a-4331-8dda-97c487eb08e5" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsNet"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsNetAmortizationExpenseRollingMaturityAbstract_8cf704a3-d161-45e1-bb57-9a4d654d9d0d" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsNet_921f856c-b63a-4331-8dda-97c487eb08e5" xlink:type="arc" order="7"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingMaturityAbstract_139f23f5-2f48-42e1-b8ab-2b7b6b1f78d8" xlink:href="tgen-20241231.xsd#tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingMaturityAbstract"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_b50d923b-314d-4885-a9b0-2d6c9075d492" xlink:to="loc_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingMaturityAbstract_139f23f5-2f48-42e1-b8ab-2b7b6b1f78d8" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseNextRolling12Months_e3f81cf4-9dd6-47e1-8001-388c07cac548" xlink:href="tgen-20241231.xsd#tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseNextRolling12Months"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingMaturityAbstract_139f23f5-2f48-42e1-b8ab-2b7b6b1f78d8" xlink:to="loc_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseNextRolling12Months_e3f81cf4-9dd6-47e1-8001-388c07cac548" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearTwo_6a51f7ba-a45e-4ac5-a0ff-9deca2cd49af" xlink:href="tgen-20241231.xsd#tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearTwo"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingMaturityAbstract_139f23f5-2f48-42e1-b8ab-2b7b6b1f78d8" xlink:to="loc_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearTwo_6a51f7ba-a45e-4ac5-a0ff-9deca2cd49af" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearThree_92027fda-4790-48d9-a0b9-0f0be584da37" xlink:href="tgen-20241231.xsd#tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearThree"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingMaturityAbstract_139f23f5-2f48-42e1-b8ab-2b7b6b1f78d8" xlink:to="loc_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearThree_92027fda-4790-48d9-a0b9-0f0be584da37" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearFour_7c7293d7-a2f5-47b3-834b-ade7c099db87" xlink:href="tgen-20241231.xsd#tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearFour"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingMaturityAbstract_139f23f5-2f48-42e1-b8ab-2b7b6b1f78d8" xlink:to="loc_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearFour_7c7293d7-a2f5-47b3-834b-ade7c099db87" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearFive_ce89c64e-358c-44a6-81bd-c0f8ee934c2b" xlink:href="tgen-20241231.xsd#tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearFive"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingMaturityAbstract_139f23f5-2f48-42e1-b8ab-2b7b6b1f78d8" xlink:to="loc_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearFive_ce89c64e-358c-44a6-81bd-c0f8ee934c2b" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingAfterYearFive_2142f6db-3390-4843-b949-04570b7c9f5d" xlink:href="tgen-20241231.xsd#tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingAfterYearFive"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingMaturityAbstract_139f23f5-2f48-42e1-b8ab-2b7b6b1f78d8" xlink:to="loc_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingAfterYearFive_2142f6db-3390-4843-b949-04570b7c9f5d" xlink:type="arc" order="6"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_FiniteLivedIntangibleAssetsAndLiabilitiesNet_4691d2cc-1179-43bb-a5a2-c47926234b20" xlink:href="tgen-20241231.xsd#tgen_FiniteLivedIntangibleAssetsAndLiabilitiesNet"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingMaturityAbstract_139f23f5-2f48-42e1-b8ab-2b7b6b1f78d8" xlink:to="loc_tgen_FiniteLivedIntangibleAssetsAndLiabilitiesNet_4691d2cc-1179-43bb-a5a2-c47926234b20" xlink:type="arc" order="7"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/PropertyplantandequipmentSummaryofPropertyandEquipmentDetails" xlink:type="simple" xlink:href="tgen-20241231.xsd#PropertyplantandequipmentSummaryofPropertyandEquipmentDetails"/>
  <link:definitionLink xlink:role="http://www.tecogen.com/role/PropertyplantandequipmentSummaryofPropertyandEquipmentDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentLineItems_69563e52-338c-4413-9de4-5214733b9a6c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_bda38d39-405b-4fe5-af02-5574944b48b6" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfPropertyPlantAndEquipmentTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_69563e52-338c-4413-9de4-5214733b9a6c" xlink:to="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_bda38d39-405b-4fe5-af02-5574944b48b6" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_3461ff29-8467-4e09-88d3-e3f176d265b9" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentByTypeAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_bda38d39-405b-4fe5-af02-5574944b48b6" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_3461ff29-8467-4e09-88d3-e3f176d265b9" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_3461ff29-8467-4e09-88d3-e3f176d265b9_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_3461ff29-8467-4e09-88d3-e3f176d265b9" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_3461ff29-8467-4e09-88d3-e3f176d265b9_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_7af132e4-c8de-4af5-b1d7-ea017a28c6fa" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_3461ff29-8467-4e09-88d3-e3f176d265b9" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_7af132e4-c8de-4af5-b1d7-ea017a28c6fa" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EnergyEquipmentMember_53c9d45e-b5c5-4653-a24b-5fbe9de7fec4" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EnergyEquipmentMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_7af132e4-c8de-4af5-b1d7-ea017a28c6fa" xlink:to="loc_us-gaap_EnergyEquipmentMember_53c9d45e-b5c5-4653-a24b-5fbe9de7fec4" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MachineryAndEquipmentMember_6f3b809a-110f-4757-be65-6ef95e6bf772" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_MachineryAndEquipmentMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_7af132e4-c8de-4af5-b1d7-ea017a28c6fa" xlink:to="loc_us-gaap_MachineryAndEquipmentMember_6f3b809a-110f-4757-be65-6ef95e6bf772" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FurnitureAndFixturesMember_b6ebe53e-d19a-43e1-8a88-36076b477f57" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FurnitureAndFixturesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_7af132e4-c8de-4af5-b1d7-ea017a28c6fa" xlink:to="loc_us-gaap_FurnitureAndFixturesMember_b6ebe53e-d19a-43e1-8a88-36076b477f57" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ComputerSoftwareIntangibleAssetMember_505fd771-d410-4e5a-990d-3b1f33d042a2" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ComputerSoftwareIntangibleAssetMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_7af132e4-c8de-4af5-b1d7-ea017a28c6fa" xlink:to="loc_us-gaap_ComputerSoftwareIntangibleAssetMember_505fd771-d410-4e5a-990d-3b1f33d042a2" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LeaseholdImprovementsMember_b484e094-ae6b-4994-9086-011ea37a256f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LeaseholdImprovementsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_7af132e4-c8de-4af5-b1d7-ea017a28c6fa" xlink:to="loc_us-gaap_LeaseholdImprovementsMember_b484e094-ae6b-4994-9086-011ea37a256f" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeAxis_eb9b8475-9c84-4b8c-974f-4b9c557dea2c" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_bda38d39-405b-4fe5-af02-5574944b48b6" xlink:to="loc_srt_RangeAxis_eb9b8475-9c84-4b8c-974f-4b9c557dea2c" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeMember_eb9b8475-9c84-4b8c-974f-4b9c557dea2c_default" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_RangeAxis_eb9b8475-9c84-4b8c-974f-4b9c557dea2c" xlink:to="loc_srt_RangeMember_eb9b8475-9c84-4b8c-974f-4b9c557dea2c_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeMember_cf8f5105-3e25-47a0-b908-a654cec6cee2" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_RangeAxis_eb9b8475-9c84-4b8c-974f-4b9c557dea2c" xlink:to="loc_srt_RangeMember_cf8f5105-3e25-47a0-b908-a654cec6cee2" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MinimumMember_94e6ea03-66af-4cba-b07c-077d8bd235b0" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MinimumMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RangeMember_cf8f5105-3e25-47a0-b908-a654cec6cee2" xlink:to="loc_srt_MinimumMember_94e6ea03-66af-4cba-b07c-077d8bd235b0" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MaximumMember_41d6eaae-b95d-4993-ae79-216a6c1b6eb7" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MaximumMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RangeMember_cf8f5105-3e25-47a0-b908-a654cec6cee2" xlink:to="loc_srt_MaximumMember_41d6eaae-b95d-4993-ae79-216a6c1b6eb7" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentGross_9fabf6fa-bf62-4396-bbec-a684f29c4b2f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentGross"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_69563e52-338c-4413-9de4-5214733b9a6c" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentGross_9fabf6fa-bf62-4396-bbec-a684f29c4b2f" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_cc25c9f0-d4fe-44d8-a99e-e7910c5e8c9a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_69563e52-338c-4413-9de4-5214733b9a6c" xlink:to="loc_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_cc25c9f0-d4fe-44d8-a99e-e7910c5e8c9a" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentNet_a821d435-6e17-42f8-a6e6-cf6df5a7a5ba" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentNet"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_69563e52-338c-4413-9de4-5214733b9a6c" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentNet_a821d435-6e17-42f8-a6e6-cf6df5a7a5ba" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentUsefulLife_5302bdfb-04d9-444d-9129-b2533b0887dd" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentUsefulLife"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_69563e52-338c-4413-9de4-5214733b9a6c" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentUsefulLife_5302bdfb-04d9-444d-9129-b2533b0887dd" xlink:type="arc" order="3"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/PropertyplantandequipmentNarrativeDetails" xlink:type="simple" xlink:href="tgen-20241231.xsd#PropertyplantandequipmentNarrativeDetails"/>
  <link:definitionLink xlink:role="http://www.tecogen.com/role/PropertyplantandequipmentNarrativeDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentLineItems_190225ef-c42a-4b18-925f-4df6ba2e505a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_88ad3e0e-48d5-4916-a740-f5a165fc42a8" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfPropertyPlantAndEquipmentTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_190225ef-c42a-4b18-925f-4df6ba2e505a" xlink:to="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_88ad3e0e-48d5-4916-a740-f5a165fc42a8" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RestatementAxis_2ff440d7-6be0-47d8-8151-a884a81c7912" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RestatementAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_88ad3e0e-48d5-4916-a740-f5a165fc42a8" xlink:to="loc_srt_RestatementAxis_2ff440d7-6be0-47d8-8151-a884a81c7912" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RestatementDomain_2ff440d7-6be0-47d8-8151-a884a81c7912_default" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RestatementDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_RestatementAxis_2ff440d7-6be0-47d8-8151-a884a81c7912" xlink:to="loc_srt_RestatementDomain_2ff440d7-6be0-47d8-8151-a884a81c7912_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RestatementDomain_44e3a1eb-b91d-45f2-9b06-3ea851c876b7" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RestatementDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_RestatementAxis_2ff440d7-6be0-47d8-8151-a884a81c7912" xlink:to="loc_srt_RestatementDomain_44e3a1eb-b91d-45f2-9b06-3ea851c876b7" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RestatementAdjustmentMember_3ccfde05-d565-453d-90f3-032d150868ce" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RestatementAdjustmentMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RestatementDomain_44e3a1eb-b91d-45f2-9b06-3ea851c876b7" xlink:to="loc_srt_RestatementAdjustmentMember_3ccfde05-d565-453d-90f3-032d150868ce" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_DepreciationDepletionandAmortizationPropertyPlantandEquipment_6cfcd960-9326-4e85-b86c-628ec8644618" xlink:href="tgen-20241231.xsd#tgen_DepreciationDepletionandAmortizationPropertyPlantandEquipment"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_190225ef-c42a-4b18-925f-4df6ba2e505a" xlink:to="loc_tgen_DepreciationDepletionandAmortizationPropertyPlantandEquipment_6cfcd960-9326-4e85-b86c-628ec8644618" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment_bb287e0b-c349-462f-aa6f-aabb8304779f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_190225ef-c42a-4b18-925f-4df6ba2e505a" xlink:to="loc_us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment_bb287e0b-c349-462f-aa6f-aabb8304779f" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GainLossOnDispositionOfAssets1_1037c6b6-fd6e-4358-a290-02bc321928bc" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GainLossOnDispositionOfAssets1"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_190225ef-c42a-4b18-925f-4df6ba2e505a" xlink:to="loc_us-gaap_GainLossOnDispositionOfAssets1_1037c6b6-fd6e-4358-a290-02bc321928bc" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AccruedDecommissioningCosts_2316d8ef-f865-4e22-bec0-beea4fe478e6" xlink:href="tgen-20241231.xsd#tgen_AccruedDecommissioningCosts"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_190225ef-c42a-4b18-925f-4df6ba2e505a" xlink:to="loc_tgen_AccruedDecommissioningCosts_2316d8ef-f865-4e22-bec0-beea4fe478e6" xlink:type="arc" order="3"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/GoodwillScheduleofGoodwillDetails" xlink:type="simple" xlink:href="tgen-20241231.xsd#GoodwillScheduleofGoodwillDetails"/>
  <link:definitionLink xlink:role="http://www.tecogen.com/role/GoodwillScheduleofGoodwillDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillLineItems_a941d6a0-5764-47a6-b6f5-7278226ef784" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GoodwillLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfGoodwillTable_6e6eecf5-ff69-4e89-8918-7d08087ced35" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfGoodwillTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_GoodwillLineItems_a941d6a0-5764-47a6-b6f5-7278226ef784" xlink:to="loc_us-gaap_ScheduleOfGoodwillTable_6e6eecf5-ff69-4e89-8918-7d08087ced35" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementBusinessSegmentsAxis_bf451bc6-9782-4076-9abd-0e14ec67471c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementBusinessSegmentsAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfGoodwillTable_6e6eecf5-ff69-4e89-8918-7d08087ced35" xlink:to="loc_us-gaap_StatementBusinessSegmentsAxis_bf451bc6-9782-4076-9abd-0e14ec67471c" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SegmentDomain_bf451bc6-9782-4076-9abd-0e14ec67471c_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SegmentDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_StatementBusinessSegmentsAxis_bf451bc6-9782-4076-9abd-0e14ec67471c" xlink:to="loc_us-gaap_SegmentDomain_bf451bc6-9782-4076-9abd-0e14ec67471c_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SegmentDomain_f129771e-8aab-4653-995c-727dfb288458" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SegmentDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_StatementBusinessSegmentsAxis_bf451bc6-9782-4076-9abd-0e14ec67471c" xlink:to="loc_us-gaap_SegmentDomain_f129771e-8aab-4653-995c-727dfb288458" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ProductsandServicesMember_4027f969-6201-4206-9630-c6c22cdf3bd2" xlink:href="tgen-20241231.xsd#tgen_ProductsandServicesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_SegmentDomain_f129771e-8aab-4653-995c-727dfb288458" xlink:to="loc_tgen_ProductsandServicesMember_4027f969-6201-4206-9630-c6c22cdf3bd2" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ProductsSegmentMember_0426d90c-4c5e-4c5a-838f-5da5715b8cba" xlink:href="tgen-20241231.xsd#tgen_ProductsSegmentMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_SegmentDomain_f129771e-8aab-4653-995c-727dfb288458" xlink:to="loc_tgen_ProductsSegmentMember_0426d90c-4c5e-4c5a-838f-5da5715b8cba" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_EnergyProductionMember_e18792c2-d67a-44b6-87e4-74b4dd94d9a7" xlink:href="tgen-20241231.xsd#tgen_EnergyProductionMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_SegmentDomain_f129771e-8aab-4653-995c-727dfb288458" xlink:to="loc_tgen_EnergyProductionMember_e18792c2-d67a-44b6-87e4-74b4dd94d9a7" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ServicesSegmentMember_faa460f3-eb97-4ef0-95e5-448b7e8cacf8" xlink:href="tgen-20241231.xsd#tgen_ServicesSegmentMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_SegmentDomain_f129771e-8aab-4653-995c-727dfb288458" xlink:to="loc_tgen_ServicesSegmentMember_faa460f3-eb97-4ef0-95e5-448b7e8cacf8" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillRollForward_c0a5d11b-68b0-432b-91c9-2447454e07ed" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GoodwillRollForward"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_GoodwillLineItems_a941d6a0-5764-47a6-b6f5-7278226ef784" xlink:to="loc_us-gaap_GoodwillRollForward_c0a5d11b-68b0-432b-91c9-2447454e07ed" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Goodwill_b6edeca7-d6eb-458e-8e8c-9d0fa06d4709" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Goodwill"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_GoodwillRollForward_c0a5d11b-68b0-432b-91c9-2447454e07ed" xlink:to="loc_us-gaap_Goodwill_b6edeca7-d6eb-458e-8e8c-9d0fa06d4709" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillImpairmentLoss_4f3af309-aa20-490e-9b97-c64595c1d335" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GoodwillImpairmentLoss"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_GoodwillRollForward_c0a5d11b-68b0-432b-91c9-2447454e07ed" xlink:to="loc_us-gaap_GoodwillImpairmentLoss_4f3af309-aa20-490e-9b97-c64595c1d335" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillAcquiredDuringPeriod_a28a357d-5c09-49d8-a318-549e6d140518" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GoodwillAcquiredDuringPeriod"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_GoodwillRollForward_c0a5d11b-68b0-432b-91c9-2447454e07ed" xlink:to="loc_us-gaap_GoodwillAcquiredDuringPeriod_a28a357d-5c09-49d8-a318-549e6d140518" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillPurchaseAccountingAdjustments_d5471254-ad63-4fc9-9c0a-f6396f1072d8" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GoodwillPurchaseAccountingAdjustments"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_GoodwillRollForward_c0a5d11b-68b0-432b-91c9-2447454e07ed" xlink:to="loc_us-gaap_GoodwillPurchaseAccountingAdjustments_d5471254-ad63-4fc9-9c0a-f6396f1072d8" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Goodwill_f76f40ff-be68-4e54-9e67-59d4edf57ba7" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Goodwill"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/GoodwillNarrativeDetails" xlink:type="simple" xlink:href="tgen-20241231.xsd#GoodwillNarrativeDetails"/>
  <link:definitionLink xlink:role="http://www.tecogen.com/role/GoodwillNarrativeDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillLineItems_0460fb6e-d71b-4145-ac34-a88cb0144443" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GoodwillLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfGoodwillTable_ff7ee487-025a-4458-95ed-faa73e0dafbb" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfGoodwillTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_GoodwillLineItems_0460fb6e-d71b-4145-ac34-a88cb0144443" xlink:to="loc_us-gaap_ScheduleOfGoodwillTable_ff7ee487-025a-4458-95ed-faa73e0dafbb" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementBusinessSegmentsAxis_a26b602a-9846-481a-8ad5-67bdb617f9ed" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementBusinessSegmentsAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfGoodwillTable_ff7ee487-025a-4458-95ed-faa73e0dafbb" xlink:to="loc_us-gaap_StatementBusinessSegmentsAxis_a26b602a-9846-481a-8ad5-67bdb617f9ed" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SegmentDomain_a26b602a-9846-481a-8ad5-67bdb617f9ed_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SegmentDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_StatementBusinessSegmentsAxis_a26b602a-9846-481a-8ad5-67bdb617f9ed" xlink:to="loc_us-gaap_SegmentDomain_a26b602a-9846-481a-8ad5-67bdb617f9ed_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SegmentDomain_c013ea4d-7910-4536-b3a8-2f126f671400" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SegmentDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_StatementBusinessSegmentsAxis_a26b602a-9846-481a-8ad5-67bdb617f9ed" xlink:to="loc_us-gaap_SegmentDomain_c013ea4d-7910-4536-b3a8-2f126f671400" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ServicesSegmentMember_a6db28dd-d56e-4442-96b1-001d141cf38f" xlink:href="tgen-20241231.xsd#tgen_ServicesSegmentMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_SegmentDomain_c013ea4d-7910-4536-b3a8-2f126f671400" xlink:to="loc_tgen_ServicesSegmentMember_a6db28dd-d56e-4442-96b1-001d141cf38f" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillImpairmentLoss_a36e720d-2be0-4273-8466-07cea5a94e96" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GoodwillImpairmentLoss"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_GoodwillLineItems_0460fb6e-d71b-4145-ac34-a88cb0144443" xlink:to="loc_us-gaap_GoodwillImpairmentLoss_a36e720d-2be0-4273-8466-07cea5a94e96" xlink:type="arc" order="0"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/RelatedPartyNotesDetails" xlink:type="simple" xlink:href="tgen-20241231.xsd#RelatedPartyNotesDetails"/>
  <link:definitionLink xlink:role="http://www.tecogen.com/role/RelatedPartyNotesDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyTransactionLineItems_dad6de8e-4f0b-4cdb-a931-8f8699cf773e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RelatedPartyTransactionLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfRelatedPartyTransactionsByRelatedPartyTable_da059f6e-a8bb-45dd-bbff-135441a5644b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfRelatedPartyTransactionsByRelatedPartyTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_RelatedPartyTransactionLineItems_dad6de8e-4f0b-4cdb-a931-8f8699cf773e" xlink:to="loc_us-gaap_ScheduleOfRelatedPartyTransactionsByRelatedPartyTable_da059f6e-a8bb-45dd-bbff-135441a5644b" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_CounterpartyNameAxis_82116e9a-a1f9-4eb2-b96d-80c9dd09f21f" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_CounterpartyNameAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfRelatedPartyTransactionsByRelatedPartyTable_da059f6e-a8bb-45dd-bbff-135441a5644b" xlink:to="loc_srt_CounterpartyNameAxis_82116e9a-a1f9-4eb2-b96d-80c9dd09f21f" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RepurchaseAgreementCounterpartyNameDomain_82116e9a-a1f9-4eb2-b96d-80c9dd09f21f_default" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RepurchaseAgreementCounterpartyNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_CounterpartyNameAxis_82116e9a-a1f9-4eb2-b96d-80c9dd09f21f" xlink:to="loc_srt_RepurchaseAgreementCounterpartyNameDomain_82116e9a-a1f9-4eb2-b96d-80c9dd09f21f_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RepurchaseAgreementCounterpartyNameDomain_2e16fb55-abdd-4342-aa26-24fb36dca6d5" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RepurchaseAgreementCounterpartyNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_CounterpartyNameAxis_82116e9a-a1f9-4eb2-b96d-80c9dd09f21f" xlink:to="loc_srt_RepurchaseAgreementCounterpartyNameDomain_2e16fb55-abdd-4342-aa26-24fb36dca6d5" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_JohnN.HatsopoulosAndEarlR.LewisIIIMember_ef484666-f414-4752-9ed9-4e6cb431d2ba" xlink:href="tgen-20241231.xsd#tgen_JohnN.HatsopoulosAndEarlR.LewisIIIMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RepurchaseAgreementCounterpartyNameDomain_2e16fb55-abdd-4342-aa26-24fb36dca6d5" xlink:to="loc_tgen_JohnN.HatsopoulosAndEarlR.LewisIIIMember_ef484666-f414-4752-9ed9-4e6cb431d2ba" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_EarlR.LewisIIIMember_f85c5d8f-6402-47e7-8721-9e8724a3718a" xlink:href="tgen-20241231.xsd#tgen_EarlR.LewisIIIMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RepurchaseAgreementCounterpartyNameDomain_2e16fb55-abdd-4342-aa26-24fb36dca6d5" xlink:to="loc_tgen_EarlR.LewisIIIMember_f85c5d8f-6402-47e7-8721-9e8724a3718a" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_JohnN.HatsopoulosMember_4c22d55d-50d9-4fb9-b2a8-55bd083f70e5" xlink:href="tgen-20241231.xsd#tgen_JohnN.HatsopoulosMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RepurchaseAgreementCounterpartyNameDomain_2e16fb55-abdd-4342-aa26-24fb36dca6d5" xlink:to="loc_tgen_JohnN.HatsopoulosMember_4c22d55d-50d9-4fb9-b2a8-55bd083f70e5" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis_65974a5a-a541-4be3-b427-c0d1590fae43" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RelatedPartyTransactionsByRelatedPartyAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfRelatedPartyTransactionsByRelatedPartyTable_da059f6e-a8bb-45dd-bbff-135441a5644b" xlink:to="loc_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis_65974a5a-a541-4be3-b427-c0d1590fae43" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyDomain_65974a5a-a541-4be3-b427-c0d1590fae43_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RelatedPartyDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis_65974a5a-a541-4be3-b427-c0d1590fae43" xlink:to="loc_us-gaap_RelatedPartyDomain_65974a5a-a541-4be3-b427-c0d1590fae43_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyDomain_eba3f8d5-89d1-4058-95f5-fe5d601239f9" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RelatedPartyDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis_65974a5a-a541-4be3-b427-c0d1590fae43" xlink:to="loc_us-gaap_RelatedPartyDomain_eba3f8d5-89d1-4058-95f5-fe5d601239f9" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyMember_cd93f20c-4219-432e-b4ae-dea7a7f5e9bf" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RelatedPartyMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_RelatedPartyDomain_eba3f8d5-89d1-4058-95f5-fe5d601239f9" xlink:to="loc_us-gaap_RelatedPartyMember_cd93f20c-4219-432e-b4ae-dea7a7f5e9bf" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_DirectorMember_43dd536a-5d5c-477f-805b-131b31b1a485" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_DirectorMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_RelatedPartyDomain_eba3f8d5-89d1-4058-95f5-fe5d601239f9" xlink:to="loc_srt_DirectorMember_43dd536a-5d5c-477f-805b-131b31b1a485" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyTransactionAxis_64beb34c-510e-4112-bad1-379ca22f5fd0" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RelatedPartyTransactionAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfRelatedPartyTransactionsByRelatedPartyTable_da059f6e-a8bb-45dd-bbff-135441a5644b" xlink:to="loc_us-gaap_RelatedPartyTransactionAxis_64beb34c-510e-4112-bad1-379ca22f5fd0" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyTransactionDomain_64beb34c-510e-4112-bad1-379ca22f5fd0_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RelatedPartyTransactionDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_RelatedPartyTransactionAxis_64beb34c-510e-4112-bad1-379ca22f5fd0" xlink:to="loc_us-gaap_RelatedPartyTransactionDomain_64beb34c-510e-4112-bad1-379ca22f5fd0_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyTransactionDomain_9df8f96f-c308-440e-ae77-bd263074dbf1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RelatedPartyTransactionDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_RelatedPartyTransactionAxis_64beb34c-510e-4112-bad1-379ca22f5fd0" xlink:to="loc_us-gaap_RelatedPartyTransactionDomain_9df8f96f-c308-440e-ae77-bd263074dbf1" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_October2023PromissoryNoteMember_6e8552cc-15c2-4724-83e3-1c9437b66b7b" xlink:href="tgen-20241231.xsd#tgen_October2023PromissoryNoteMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_RelatedPartyTransactionDomain_9df8f96f-c308-440e-ae77-bd263074dbf1" xlink:to="loc_tgen_October2023PromissoryNoteMember_6e8552cc-15c2-4724-83e3-1c9437b66b7b" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_July2024PromissoryNoteMember_76a440b0-d8be-4aaf-85e5-4d0a95141ecb" xlink:href="tgen-20241231.xsd#tgen_July2024PromissoryNoteMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_RelatedPartyTransactionDomain_9df8f96f-c308-440e-ae77-bd263074dbf1" xlink:to="loc_tgen_July2024PromissoryNoteMember_76a440b0-d8be-4aaf-85e5-4d0a95141ecb" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_September2024PromissoryNoteMember_bcf9c506-422f-4fab-b3b3-bc29c24c1a8f" xlink:href="tgen-20241231.xsd#tgen_September2024PromissoryNoteMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_RelatedPartyTransactionDomain_9df8f96f-c308-440e-ae77-bd263074dbf1" xlink:to="loc_tgen_September2024PromissoryNoteMember_bcf9c506-422f-4fab-b3b3-bc29c24c1a8f" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AverageClosingSharePriceMember_4345e2ea-061c-41dd-b38a-098937e7456f" xlink:href="tgen-20241231.xsd#tgen_AverageClosingSharePriceMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_RelatedPartyTransactionDomain_9df8f96f-c308-440e-ae77-bd263074dbf1" xlink:to="loc_tgen_AverageClosingSharePriceMember_4345e2ea-061c-41dd-b38a-098937e7456f" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventTypeAxis_3c1c811a-059e-4650-9b3c-d9a4decfb689" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsequentEventTypeAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfRelatedPartyTransactionsByRelatedPartyTable_da059f6e-a8bb-45dd-bbff-135441a5644b" xlink:to="loc_us-gaap_SubsequentEventTypeAxis_3c1c811a-059e-4650-9b3c-d9a4decfb689" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventTypeDomain_3c1c811a-059e-4650-9b3c-d9a4decfb689_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsequentEventTypeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_SubsequentEventTypeAxis_3c1c811a-059e-4650-9b3c-d9a4decfb689" xlink:to="loc_us-gaap_SubsequentEventTypeDomain_3c1c811a-059e-4650-9b3c-d9a4decfb689_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventTypeDomain_9ac02334-21d0-4ccc-ad70-6101ecd5a26a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsequentEventTypeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_SubsequentEventTypeAxis_3c1c811a-059e-4650-9b3c-d9a4decfb689" xlink:to="loc_us-gaap_SubsequentEventTypeDomain_9ac02334-21d0-4ccc-ad70-6101ecd5a26a" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventMember_33a8ca2d-4717-489a-a990-b4622d67bc82" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsequentEventMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_SubsequentEventTypeDomain_9ac02334-21d0-4ccc-ad70-6101ecd5a26a" xlink:to="loc_us-gaap_SubsequentEventMember_33a8ca2d-4717-489a-a990-b4622d67bc82" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NotesPayable_2579e32f-f765-43f8-9798-5fd504b33ea4" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NotesPayable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_RelatedPartyTransactionLineItems_dad6de8e-4f0b-4cdb-a931-8f8699cf773e" xlink:to="loc_us-gaap_NotesPayable_2579e32f-f765-43f8-9798-5fd504b33ea4" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_RelatedPartyTransactionPeriod_ea5b7304-df33-484c-88b3-80203d4d5ce0" xlink:href="tgen-20241231.xsd#tgen_RelatedPartyTransactionPeriod"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_RelatedPartyTransactionLineItems_dad6de8e-4f0b-4cdb-a931-8f8699cf773e" xlink:to="loc_tgen_RelatedPartyTransactionPeriod_ea5b7304-df33-484c-88b3-80203d4d5ce0" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyTransactionRate_dfa06e80-a185-4c56-9149-4284e6a60fc3" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RelatedPartyTransactionRate"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_RelatedPartyTransactionLineItems_dad6de8e-4f0b-4cdb-a931-8f8699cf773e" xlink:to="loc_us-gaap_RelatedPartyTransactionRate_dfa06e80-a185-4c56-9149-4284e6a60fc3" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InterestPayableCurrentAndNoncurrent_35ecc86b-f6f6-4cf0-8fa8-f06fda0a7c6a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InterestPayableCurrentAndNoncurrent"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_RelatedPartyTransactionLineItems_dad6de8e-4f0b-4cdb-a931-8f8699cf773e" xlink:to="loc_us-gaap_InterestPayableCurrentAndNoncurrent_35ecc86b-f6f6-4cf0-8fa8-f06fda0a7c6a" xlink:type="arc" order="3"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/CommitmentsandcontingenciesDetails" xlink:type="simple" xlink:href="tgen-20241231.xsd#CommitmentsandcontingenciesDetails"/>
  <link:definitionLink xlink:role="http://www.tecogen.com/role/CommitmentsandcontingenciesDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LossContingenciesLineItems_10faca68-78c7-4568-8327-95a6dd23b018" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LossContingenciesLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LossContingenciesTable_e11f9fe1-8ba2-4522-91a7-49ecf0c7734c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LossContingenciesTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_LossContingenciesLineItems_10faca68-78c7-4568-8327-95a6dd23b018" xlink:to="loc_us-gaap_LossContingenciesTable_e11f9fe1-8ba2-4522-91a7-49ecf0c7734c" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_LegalEntityAxis_24122261-fcdc-4c75-bd58-d2d157bab7f7" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_LegalEntityAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_LossContingenciesTable_e11f9fe1-8ba2-4522-91a7-49ecf0c7734c" xlink:to="loc_dei_LegalEntityAxis_24122261-fcdc-4c75-bd58-d2d157bab7f7" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityDomain_24122261-fcdc-4c75-bd58-d2d157bab7f7_default" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_dei_LegalEntityAxis_24122261-fcdc-4c75-bd58-d2d157bab7f7" xlink:to="loc_dei_EntityDomain_24122261-fcdc-4c75-bd58-d2d157bab7f7_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityDomain_749bd7c0-c1f4-4b75-b7ed-1662e95eac4b" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_dei_LegalEntityAxis_24122261-fcdc-4c75-bd58-d2d157bab7f7" xlink:to="loc_dei_EntityDomain_749bd7c0-c1f4-4b75-b7ed-1662e95eac4b" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_EurositePowerIncMember_fe472ae6-035d-4343-a53b-bfd43c1fb497" xlink:href="tgen-20241231.xsd#tgen_EurositePowerIncMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_dei_EntityDomain_749bd7c0-c1f4-4b75-b7ed-1662e95eac4b" xlink:to="loc_tgen_EurositePowerIncMember_fe472ae6-035d-4343-a53b-bfd43c1fb497" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_765a682f-30b3-4a2c-adb4-d6d1f6905222" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentByTypeAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_LossContingenciesTable_e11f9fe1-8ba2-4522-91a7-49ecf0c7734c" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_765a682f-30b3-4a2c-adb4-d6d1f6905222" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_765a682f-30b3-4a2c-adb4-d6d1f6905222_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_765a682f-30b3-4a2c-adb4-d6d1f6905222" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_765a682f-30b3-4a2c-adb4-d6d1f6905222_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_8eb2f39e-55db-4945-9ef2-847f0db745be" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_765a682f-30b3-4a2c-adb4-d6d1f6905222" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_8eb2f39e-55db-4945-9ef2-847f0db745be" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_OfficeSpaceAndWarehouseFacilitiesMember_28107aca-9f73-41c8-8153-741c34168ace" xlink:href="tgen-20241231.xsd#tgen_OfficeSpaceAndWarehouseFacilitiesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_8eb2f39e-55db-4945-9ef2-847f0db745be" xlink:to="loc_tgen_OfficeSpaceAndWarehouseFacilitiesMember_28107aca-9f73-41c8-8153-741c34168ace" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_LitigationCaseAxis_c321e433-d3a0-4e8c-ae69-7781ae6222d7" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_LitigationCaseAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_LossContingenciesTable_e11f9fe1-8ba2-4522-91a7-49ecf0c7734c" xlink:to="loc_srt_LitigationCaseAxis_c321e433-d3a0-4e8c-ae69-7781ae6222d7" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_LitigationCaseTypeDomain_c321e433-d3a0-4e8c-ae69-7781ae6222d7_default" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_LitigationCaseTypeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_LitigationCaseAxis_c321e433-d3a0-4e8c-ae69-7781ae6222d7" xlink:to="loc_srt_LitigationCaseTypeDomain_c321e433-d3a0-4e8c-ae69-7781ae6222d7_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_LitigationCaseTypeDomain_dfd743b7-56b9-44f3-9f01-25a9f597da03" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_LitigationCaseTypeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_LitigationCaseAxis_c321e433-d3a0-4e8c-ae69-7781ae6222d7" xlink:to="loc_srt_LitigationCaseTypeDomain_dfd743b7-56b9-44f3-9f01-25a9f597da03" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_TheCorporationOfTheTownOfMiltonMiltonEnergyGenerationSolutionsInc.AndMiltonHydroDistributionIncMember_fb600bf4-78af-4a78-9c17-8fb09a15b328" xlink:href="tgen-20241231.xsd#tgen_TheCorporationOfTheTownOfMiltonMiltonEnergyGenerationSolutionsInc.AndMiltonHydroDistributionIncMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_LitigationCaseTypeDomain_dfd743b7-56b9-44f3-9f01-25a9f597da03" xlink:to="loc_tgen_TheCorporationOfTheTownOfMiltonMiltonEnergyGenerationSolutionsInc.AndMiltonHydroDistributionIncMember_fb600bf4-78af-4a78-9c17-8fb09a15b328" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventTypeAxis_6d7abd16-7cd2-4661-926e-3ec2ea70b69a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsequentEventTypeAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_LossContingenciesTable_e11f9fe1-8ba2-4522-91a7-49ecf0c7734c" xlink:to="loc_us-gaap_SubsequentEventTypeAxis_6d7abd16-7cd2-4661-926e-3ec2ea70b69a" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventTypeDomain_6d7abd16-7cd2-4661-926e-3ec2ea70b69a_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsequentEventTypeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_SubsequentEventTypeAxis_6d7abd16-7cd2-4661-926e-3ec2ea70b69a" xlink:to="loc_us-gaap_SubsequentEventTypeDomain_6d7abd16-7cd2-4661-926e-3ec2ea70b69a_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventTypeDomain_3a74413b-05fb-4eba-9ed8-d502a673297e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsequentEventTypeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_SubsequentEventTypeAxis_6d7abd16-7cd2-4661-926e-3ec2ea70b69a" xlink:to="loc_us-gaap_SubsequentEventTypeDomain_3a74413b-05fb-4eba-9ed8-d502a673297e" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventMember_00130c9c-c677-47e8-9608-b94b987a6a73" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsequentEventMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_SubsequentEventTypeDomain_3a74413b-05fb-4eba-9ed8-d502a673297e" xlink:to="loc_us-gaap_SubsequentEventMember_00130c9c-c677-47e8-9608-b94b987a6a73" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseCost_c04bb8f1-0f82-4cd2-bcbe-4edb2e6f46f6" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseCost"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LossContingenciesLineItems_10faca68-78c7-4568-8327-95a6dd23b018" xlink:to="loc_us-gaap_OperatingLeaseCost_c04bb8f1-0f82-4cd2-bcbe-4edb2e6f46f6" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LossContingencyDamagesSoughtValue_0f0bc481-ae6e-49c3-bc7b-a67b2421b052" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LossContingencyDamagesSoughtValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LossContingenciesLineItems_10faca68-78c7-4568-8327-95a6dd23b018" xlink:to="loc_us-gaap_LossContingencyDamagesSoughtValue_0f0bc481-ae6e-49c3-bc7b-a67b2421b052" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LitigationReserve_461c21ad-592a-4610-8187-430a8cbc4c84" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LitigationReserve"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LossContingenciesLineItems_10faca68-78c7-4568-8327-95a6dd23b018" xlink:to="loc_us-gaap_LitigationReserve_461c21ad-592a-4610-8187-430a8cbc4c84" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LossContingencyDamagesAwardedValue_acb80645-c84c-4f9f-810e-ee3418df9470" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LossContingencyDamagesAwardedValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LossContingenciesLineItems_10faca68-78c7-4568-8327-95a6dd23b018" xlink:to="loc_us-gaap_LossContingencyDamagesAwardedValue_acb80645-c84c-4f9f-810e-ee3418df9470" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LossContingencyDamagesPaidValue_2c7afec6-5889-4850-9a02-945f837805a5" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LossContingencyDamagesPaidValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LossContingenciesLineItems_10faca68-78c7-4568-8327-95a6dd23b018" xlink:to="loc_us-gaap_LossContingencyDamagesPaidValue_2c7afec6-5889-4850-9a02-945f837805a5" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_PeriodOfSeveranceBenefitsForKeyManagementEmployeesUnderThePlan_e8e96248-7f08-4060-b254-da79c412656e" xlink:href="tgen-20241231.xsd#tgen_PeriodOfSeveranceBenefitsForKeyManagementEmployeesUnderThePlan"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LossContingenciesLineItems_10faca68-78c7-4568-8327-95a6dd23b018" xlink:to="loc_tgen_PeriodOfSeveranceBenefitsForKeyManagementEmployeesUnderThePlan_e8e96248-7f08-4060-b254-da79c412656e" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ChangeInControlSeveranceBenefitPlanPeriodInForce_aaa25340-4b44-4d24-8aaf-08e1508ccf6f" xlink:href="tgen-20241231.xsd#tgen_ChangeInControlSeveranceBenefitPlanPeriodInForce"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LossContingenciesLineItems_10faca68-78c7-4568-8327-95a6dd23b018" xlink:to="loc_tgen_ChangeInControlSeveranceBenefitPlanPeriodInForce_aaa25340-4b44-4d24-8aaf-08e1508ccf6f" xlink:type="arc" order="6"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ChangeInControlSeveranceBenefitPlanPeriodInForceExtension_8130d350-edd0-4bca-ba90-0c88b2a05ecc" xlink:href="tgen-20241231.xsd#tgen_ChangeInControlSeveranceBenefitPlanPeriodInForceExtension"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LossContingenciesLineItems_10faca68-78c7-4568-8327-95a6dd23b018" xlink:to="loc_tgen_ChangeInControlSeveranceBenefitPlanPeriodInForceExtension_8130d350-edd0-4bca-ba90-0c88b2a05ecc" xlink:type="arc" order="7"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ChangeInControlSeveranceBenefitPlanNoticePeriodForCancellation_ea0e54df-f71f-47bd-ac46-8a1f9ea1597d" xlink:href="tgen-20241231.xsd#tgen_ChangeInControlSeveranceBenefitPlanNoticePeriodForCancellation"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LossContingenciesLineItems_10faca68-78c7-4568-8327-95a6dd23b018" xlink:to="loc_tgen_ChangeInControlSeveranceBenefitPlanNoticePeriodForCancellation_ea0e54df-f71f-47bd-ac46-8a1f9ea1597d" xlink:type="arc" order="8"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ChangeInControlSeveranceBenefitPlanThresholdPeriodForTerminationPriorToChangeInControl_4cff44bc-56b9-421d-aeeb-49baca1b92c8" xlink:href="tgen-20241231.xsd#tgen_ChangeInControlSeveranceBenefitPlanThresholdPeriodForTerminationPriorToChangeInControl"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LossContingenciesLineItems_10faca68-78c7-4568-8327-95a6dd23b018" xlink:to="loc_tgen_ChangeInControlSeveranceBenefitPlanThresholdPeriodForTerminationPriorToChangeInControl_4cff44bc-56b9-421d-aeeb-49baca1b92c8" xlink:type="arc" order="9"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ChangeInControlSeveranceBenefitPlanThresholdPeriodForTerminationAfterToChangeInControl_c9ed641a-02cc-4a43-9711-b3a2f55179d8" xlink:href="tgen-20241231.xsd#tgen_ChangeInControlSeveranceBenefitPlanThresholdPeriodForTerminationAfterToChangeInControl"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LossContingenciesLineItems_10faca68-78c7-4568-8327-95a6dd23b018" xlink:to="loc_tgen_ChangeInControlSeveranceBenefitPlanThresholdPeriodForTerminationAfterToChangeInControl_c9ed641a-02cc-4a43-9711-b3a2f55179d8" xlink:type="arc" order="10"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/LeasesNarrativeDetails" xlink:type="simple" xlink:href="tgen-20241231.xsd#LeasesNarrativeDetails"/>
  <link:definitionLink xlink:role="http://www.tecogen.com/role/LeasesNarrativeDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LessorLeaseDescriptionLineItems_2bebc780-6048-4650-98d7-d7927892f0e9" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LessorLeaseDescriptionLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LessorLeaseDescriptionTable_63e2e2a3-135f-47e5-8ac6-fec3f9ad9bc7" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LessorLeaseDescriptionTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_2bebc780-6048-4650-98d7-d7927892f0e9" xlink:to="loc_us-gaap_LessorLeaseDescriptionTable_63e2e2a3-135f-47e5-8ac6-fec3f9ad9bc7" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_7842e608-92e7-4554-9a3f-2fb26d4cf772" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentByTypeAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_LessorLeaseDescriptionTable_63e2e2a3-135f-47e5-8ac6-fec3f9ad9bc7" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_7842e608-92e7-4554-9a3f-2fb26d4cf772" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_7842e608-92e7-4554-9a3f-2fb26d4cf772_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_7842e608-92e7-4554-9a3f-2fb26d4cf772" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_7842e608-92e7-4554-9a3f-2fb26d4cf772_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_f5748f0d-48f7-4cd4-b464-7a1cd8cd86b8" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_7842e608-92e7-4554-9a3f-2fb26d4cf772" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_f5748f0d-48f7-4cd4-b464-7a1cd8cd86b8" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_OfficeSpaceAndWarehouseFacilitiesMember_d19be638-fc63-4429-96c1-6f8d5a6de6a1" xlink:href="tgen-20241231.xsd#tgen_OfficeSpaceAndWarehouseFacilitiesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_f5748f0d-48f7-4cd4-b464-7a1cd8cd86b8" xlink:to="loc_tgen_OfficeSpaceAndWarehouseFacilitiesMember_d19be638-fc63-4429-96c1-6f8d5a6de6a1" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_StatementScenarioAxis_281a4a44-bb40-49d7-8dce-bca6b8f72211" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_StatementScenarioAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_LessorLeaseDescriptionTable_63e2e2a3-135f-47e5-8ac6-fec3f9ad9bc7" xlink:to="loc_srt_StatementScenarioAxis_281a4a44-bb40-49d7-8dce-bca6b8f72211" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ScenarioUnspecifiedDomain_281a4a44-bb40-49d7-8dce-bca6b8f72211_default" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ScenarioUnspecifiedDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_StatementScenarioAxis_281a4a44-bb40-49d7-8dce-bca6b8f72211" xlink:to="loc_srt_ScenarioUnspecifiedDomain_281a4a44-bb40-49d7-8dce-bca6b8f72211_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ScenarioUnspecifiedDomain_0012094d-4f2a-4ec0-ac90-699abe3d446d" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ScenarioUnspecifiedDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_StatementScenarioAxis_281a4a44-bb40-49d7-8dce-bca6b8f72211" xlink:to="loc_srt_ScenarioUnspecifiedDomain_0012094d-4f2a-4ec0-ac90-699abe3d446d" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ScenarioForecastMember_32ffff80-b9e8-4efd-99cb-c126ed8b8b9a" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ScenarioForecastMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_ScenarioUnspecifiedDomain_0012094d-4f2a-4ec0-ac90-699abe3d446d" xlink:to="loc_srt_ScenarioForecastMember_32ffff80-b9e8-4efd-99cb-c126ed8b8b9a" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeAxis_14bbb687-b154-4dc3-b07d-4a7e16b88fb7" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_LessorLeaseDescriptionTable_63e2e2a3-135f-47e5-8ac6-fec3f9ad9bc7" xlink:to="loc_srt_RangeAxis_14bbb687-b154-4dc3-b07d-4a7e16b88fb7" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeMember_14bbb687-b154-4dc3-b07d-4a7e16b88fb7_default" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_RangeAxis_14bbb687-b154-4dc3-b07d-4a7e16b88fb7" xlink:to="loc_srt_RangeMember_14bbb687-b154-4dc3-b07d-4a7e16b88fb7_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeMember_dc88d489-26de-4ee9-9ab9-28732a4a7117" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_RangeAxis_14bbb687-b154-4dc3-b07d-4a7e16b88fb7" xlink:to="loc_srt_RangeMember_dc88d489-26de-4ee9-9ab9-28732a4a7117" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MinimumMember_8bf88311-884c-4986-87c3-97ca4eaef7dc" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MinimumMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RangeMember_dc88d489-26de-4ee9-9ab9-28732a4a7117" xlink:to="loc_srt_MinimumMember_8bf88311-884c-4986-87c3-97ca4eaef7dc" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MaximumMember_f5a39f9d-30f5-4bb1-a1b8-5032b484baf9" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MaximumMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RangeMember_dc88d489-26de-4ee9-9ab9-28732a4a7117" xlink:to="loc_srt_MaximumMember_f5a39f9d-30f5-4bb1-a1b8-5032b484baf9" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventTypeAxis_3869add2-4ced-46ad-8293-48cd0aeb0451" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsequentEventTypeAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_LessorLeaseDescriptionTable_63e2e2a3-135f-47e5-8ac6-fec3f9ad9bc7" xlink:to="loc_us-gaap_SubsequentEventTypeAxis_3869add2-4ced-46ad-8293-48cd0aeb0451" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventTypeDomain_3869add2-4ced-46ad-8293-48cd0aeb0451_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsequentEventTypeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_SubsequentEventTypeAxis_3869add2-4ced-46ad-8293-48cd0aeb0451" xlink:to="loc_us-gaap_SubsequentEventTypeDomain_3869add2-4ced-46ad-8293-48cd0aeb0451_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventTypeDomain_59050524-3ec9-49d8-a719-9905f87dd9c1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsequentEventTypeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_SubsequentEventTypeAxis_3869add2-4ced-46ad-8293-48cd0aeb0451" xlink:to="loc_us-gaap_SubsequentEventTypeDomain_59050524-3ec9-49d8-a719-9905f87dd9c1" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventMember_314c4e5d-9931-47cc-82fd-3d4a8ec93b3b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsequentEventMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_SubsequentEventTypeDomain_59050524-3ec9-49d8-a719-9905f87dd9c1" xlink:to="loc_us-gaap_SubsequentEventMember_314c4e5d-9931-47cc-82fd-3d4a8ec93b3b" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_LesseeOperatingLeaseNumberOfLeaseAgreements_f8efb19b-4108-42d7-a0f5-3a2f56e90a24" xlink:href="tgen-20241231.xsd#tgen_LesseeOperatingLeaseNumberOfLeaseAgreements"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_2bebc780-6048-4650-98d7-d7927892f0e9" xlink:to="loc_tgen_LesseeOperatingLeaseNumberOfLeaseAgreements_f8efb19b-4108-42d7-a0f5-3a2f56e90a24" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_LesseeOperatingLeaseNumberOfBuildings_e983473d-035c-4fed-82ca-8654828ff505" xlink:href="tgen-20241231.xsd#tgen_LesseeOperatingLeaseNumberOfBuildings"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_2bebc780-6048-4650-98d7-d7927892f0e9" xlink:to="loc_tgen_LesseeOperatingLeaseNumberOfBuildings_e983473d-035c-4fed-82ca-8654828ff505" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_LesseeOperatingLeaseSquareFeet_b1c182f8-040e-428a-81c8-aeb2a284105b" xlink:href="tgen-20241231.xsd#tgen_LesseeOperatingLeaseSquareFeet"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_2bebc780-6048-4650-98d7-d7927892f0e9" xlink:to="loc_tgen_LesseeOperatingLeaseSquareFeet_b1c182f8-040e-428a-81c8-aeb2a284105b" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseRemainingLeaseTerm_9cc2595a-9564-4e05-8ac5-7a36b1fdbc85" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseRemainingLeaseTerm"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_2bebc780-6048-4650-98d7-d7927892f0e9" xlink:to="loc_us-gaap_LesseeOperatingLeaseRemainingLeaseTerm_9cc2595a-9564-4e05-8ac5-7a36b1fdbc85" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_LesseeOperatingLeaseOptionToExtendNumberOfOptions_b0dfd766-0af5-4f92-a71f-4b75770ae244" xlink:href="tgen-20241231.xsd#tgen_LesseeOperatingLeaseOptionToExtendNumberOfOptions"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_2bebc780-6048-4650-98d7-d7927892f0e9" xlink:to="loc_tgen_LesseeOperatingLeaseOptionToExtendNumberOfOptions_b0dfd766-0af5-4f92-a71f-4b75770ae244" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ConstructionInProgressExpenditures_325de6be-1627-4025-b068-e9d55fd7a815" xlink:href="tgen-20241231.xsd#tgen_ConstructionInProgressExpenditures"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_2bebc780-6048-4650-98d7-d7927892f0e9" xlink:to="loc_tgen_ConstructionInProgressExpenditures_325de6be-1627-4025-b068-e9d55fd7a815" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseRenewalTerm_e0862cf9-d0f7-4cad-a109-541beb1a2274" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseRenewalTerm"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_2bebc780-6048-4650-98d7-d7927892f0e9" xlink:to="loc_us-gaap_LesseeOperatingLeaseRenewalTerm_e0862cf9-d0f7-4cad-a109-541beb1a2274" xlink:type="arc" order="6"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_LesseeOperatingLeaseOptionToExtendPeriod_3ae65e37-bfdf-459b-add0-da30eb7ad380" xlink:href="tgen-20241231.xsd#tgen_LesseeOperatingLeaseOptionToExtendPeriod"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_2bebc780-6048-4650-98d7-d7927892f0e9" xlink:to="loc_tgen_LesseeOperatingLeaseOptionToExtendPeriod_3ae65e37-bfdf-459b-add0-da30eb7ad380" xlink:type="arc" order="7"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_LesseeOperatingLeaseOptionToExtendMonthlyRent_39775e82-8539-4c00-8835-767a83f71990" xlink:href="tgen-20241231.xsd#tgen_LesseeOperatingLeaseOptionToExtendMonthlyRent"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_2bebc780-6048-4650-98d7-d7927892f0e9" xlink:to="loc_tgen_LesseeOperatingLeaseOptionToExtendMonthlyRent_39775e82-8539-4c00-8835-767a83f71990" xlink:type="arc" order="8"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseTermOfContract_2cefc585-b0e9-4912-b79e-275c4cacf083" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseTermOfContract"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_2bebc780-6048-4650-98d7-d7927892f0e9" xlink:to="loc_us-gaap_LesseeOperatingLeaseTermOfContract_2cefc585-b0e9-4912-b79e-275c4cacf083" xlink:type="arc" order="9"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseExpense_3b711b95-5cc0-4792-94af-90d38d77dcc9" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseExpense"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_2bebc780-6048-4650-98d7-d7927892f0e9" xlink:to="loc_us-gaap_OperatingLeaseExpense_3b711b95-5cc0-4792-94af-90d38d77dcc9" xlink:type="arc" order="10"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LeaseCost_6fbb3522-d451-43c7-b894-e3dac1375ab5" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LeaseCost"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_2bebc780-6048-4650-98d7-d7927892f0e9" xlink:to="loc_us-gaap_LeaseCost_6fbb3522-d451-43c7-b894-e3dac1375ab5" xlink:type="arc" order="11"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseCost_a794aad9-5970-4190-b638-1c6273e80596" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseCost"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_2bebc780-6048-4650-98d7-d7927892f0e9" xlink:to="loc_us-gaap_OperatingLeaseCost_a794aad9-5970-4190-b638-1c6273e80596" xlink:type="arc" order="12"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_FinanceLeaseExpense_b7d1d600-b6d2-4a71-9665-96a413d78d15" xlink:href="tgen-20241231.xsd#tgen_FinanceLeaseExpense"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_2bebc780-6048-4650-98d7-d7927892f0e9" xlink:to="loc_tgen_FinanceLeaseExpense_b7d1d600-b6d2-4a71-9665-96a413d78d15" xlink:type="arc" order="13"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinanceLeaseRightOfUseAssetAmortization_2687df10-83e9-4e33-9fa5-5adec02ad0d4" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FinanceLeaseRightOfUseAssetAmortization"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_2bebc780-6048-4650-98d7-d7927892f0e9" xlink:to="loc_us-gaap_FinanceLeaseRightOfUseAssetAmortization_2687df10-83e9-4e33-9fa5-5adec02ad0d4" xlink:type="arc" order="14"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/LeasesSupplementalBalanceSheetInformationDetails" xlink:type="simple" xlink:href="tgen-20241231.xsd#LeasesSupplementalBalanceSheetInformationDetails"/>
  <link:definitionLink xlink:role="http://www.tecogen.com/role/LeasesSupplementalBalanceSheetInformationDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeLeaseDescriptionLineItems_ee878094-d153-428d-b8ca-f530ab67426e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeLeaseDescriptionLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeLeaseDescriptionTable_dcc522f4-e93f-4d67-ab5c-3a8c516ba6d3" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeLeaseDescriptionTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_LesseeLeaseDescriptionLineItems_ee878094-d153-428d-b8ca-f530ab67426e" xlink:to="loc_us-gaap_LesseeLeaseDescriptionTable_dcc522f4-e93f-4d67-ab5c-3a8c516ba6d3" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_fc780c5e-d9e5-4c29-8a5c-6921cfbb1ce3" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentByTypeAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_LesseeLeaseDescriptionTable_dcc522f4-e93f-4d67-ab5c-3a8c516ba6d3" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_fc780c5e-d9e5-4c29-8a5c-6921cfbb1ce3" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_fc780c5e-d9e5-4c29-8a5c-6921cfbb1ce3_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_fc780c5e-d9e5-4c29-8a5c-6921cfbb1ce3" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_fc780c5e-d9e5-4c29-8a5c-6921cfbb1ce3_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_1ef147cf-f95e-49ce-9062-2351911830f9" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_fc780c5e-d9e5-4c29-8a5c-6921cfbb1ce3" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_1ef147cf-f95e-49ce-9062-2351911830f9" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_VehiclesMember_d9ddf35a-29b3-4c4b-bc77-d54ca67f0609" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_VehiclesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_1ef147cf-f95e-49ce-9062-2351911830f9" xlink:to="loc_us-gaap_VehiclesMember_d9ddf35a-29b3-4c4b-bc77-d54ca67f0609" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_BoilerMember_79592de6-6c77-42bb-9915-8a1c36fe1188" xlink:href="tgen-20241231.xsd#tgen_BoilerMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_1ef147cf-f95e-49ce-9062-2351911830f9" xlink:to="loc_tgen_BoilerMember_79592de6-6c77-42bb-9915-8a1c36fe1188" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_OperatingLeaseAssetsAndLiabilitiesLesseeAbstract_115eec22-6a4f-420f-8f76-1133e3183f53" xlink:href="tgen-20241231.xsd#tgen_OperatingLeaseAssetsAndLiabilitiesLesseeAbstract"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LesseeLeaseDescriptionLineItems_ee878094-d153-428d-b8ca-f530ab67426e" xlink:to="loc_tgen_OperatingLeaseAssetsAndLiabilitiesLesseeAbstract_115eec22-6a4f-420f-8f76-1133e3183f53" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseRightOfUseAsset_d81362dd-67f6-476f-827e-e094a10e5943" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseRightOfUseAsset"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_tgen_OperatingLeaseAssetsAndLiabilitiesLesseeAbstract_115eec22-6a4f-420f-8f76-1133e3183f53" xlink:to="loc_us-gaap_OperatingLeaseRightOfUseAsset_d81362dd-67f6-476f-827e-e094a10e5943" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseLiabilityCurrent_25f2647f-6dbd-4d49-bf16-c2c8d86891f8" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseLiabilityCurrent"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_tgen_OperatingLeaseAssetsAndLiabilitiesLesseeAbstract_115eec22-6a4f-420f-8f76-1133e3183f53" xlink:to="loc_us-gaap_OperatingLeaseLiabilityCurrent_25f2647f-6dbd-4d49-bf16-c2c8d86891f8" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseLiabilityNoncurrent_9d4073b3-c34b-4a77-9d71-d9710a822107" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_tgen_OperatingLeaseAssetsAndLiabilitiesLesseeAbstract_115eec22-6a4f-420f-8f76-1133e3183f53" xlink:to="loc_us-gaap_OperatingLeaseLiabilityNoncurrent_9d4073b3-c34b-4a77-9d71-d9710a822107" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseLiability_bbcd90b0-4ff5-4e6f-92c1-1e1ac6eb2e23" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseLiability"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_tgen_OperatingLeaseAssetsAndLiabilitiesLesseeAbstract_115eec22-6a4f-420f-8f76-1133e3183f53" xlink:to="loc_us-gaap_OperatingLeaseLiability_bbcd90b0-4ff5-4e6f-92c1-1e1ac6eb2e23" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinanceLeaseRightOfUseAsset_d495ffd4-e90b-42c0-a245-f6984a63998d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FinanceLeaseRightOfUseAsset"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LesseeLeaseDescriptionLineItems_ee878094-d153-428d-b8ca-f530ab67426e" xlink:to="loc_us-gaap_FinanceLeaseRightOfUseAsset_d495ffd4-e90b-42c0-a245-f6984a63998d" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinanceLeaseLiabilityCurrent_18e0d8de-0513-4366-9107-961de453ecc6" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FinanceLeaseLiabilityCurrent"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LesseeLeaseDescriptionLineItems_ee878094-d153-428d-b8ca-f530ab67426e" xlink:to="loc_us-gaap_FinanceLeaseLiabilityCurrent_18e0d8de-0513-4366-9107-961de453ecc6" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinanceLeaseLiabilityNoncurrent_d62fba54-1a17-4545-9c8a-a44e0f1c0e99" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FinanceLeaseLiabilityNoncurrent"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LesseeLeaseDescriptionLineItems_ee878094-d153-428d-b8ca-f530ab67426e" xlink:to="loc_us-gaap_FinanceLeaseLiabilityNoncurrent_d62fba54-1a17-4545-9c8a-a44e0f1c0e99" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinanceLeaseLiability_46e7123b-2a5d-4326-a1e7-34ab60a66bd9" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FinanceLeaseLiability"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LesseeLeaseDescriptionLineItems_ee878094-d153-428d-b8ca-f530ab67426e" xlink:to="loc_us-gaap_FinanceLeaseLiability_46e7123b-2a5d-4326-a1e7-34ab60a66bd9" xlink:type="arc" order="4"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/StockholdersequityStockBasedCompensationDetails" xlink:type="simple" xlink:href="tgen-20241231.xsd#StockholdersequityStockBasedCompensationDetails"/>
  <link:definitionLink xlink:role="http://www.tecogen.com/role/StockholdersequityStockBasedCompensationDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_d0b0fafc-5d65-4222-8c4e-b14d6ec9446e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_d7b6cac7-3055-49df-9ad3-d6c5586a689c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_d0b0fafc-5d65-4222-8c4e-b14d6ec9446e" xlink:to="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_d7b6cac7-3055-49df-9ad3-d6c5586a689c" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ConsolidatedEntitiesAxis_983d9bd3-13cf-42ef-8c3b-8ab22a62cf2c" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ConsolidatedEntitiesAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_d7b6cac7-3055-49df-9ad3-d6c5586a689c" xlink:to="loc_srt_ConsolidatedEntitiesAxis_983d9bd3-13cf-42ef-8c3b-8ab22a62cf2c" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ConsolidatedEntitiesDomain_983d9bd3-13cf-42ef-8c3b-8ab22a62cf2c_default" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ConsolidatedEntitiesDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_ConsolidatedEntitiesAxis_983d9bd3-13cf-42ef-8c3b-8ab22a62cf2c" xlink:to="loc_srt_ConsolidatedEntitiesDomain_983d9bd3-13cf-42ef-8c3b-8ab22a62cf2c_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ConsolidatedEntitiesDomain_70ff9604-5384-4fdd-bc60-b993000bf46f" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ConsolidatedEntitiesDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_ConsolidatedEntitiesAxis_983d9bd3-13cf-42ef-8c3b-8ab22a62cf2c" xlink:to="loc_srt_ConsolidatedEntitiesDomain_70ff9604-5384-4fdd-bc60-b993000bf46f" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ParentCompanyMember_d105ebc2-27ef-4660-9547-b8cad387e663" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ParentCompanyMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_ConsolidatedEntitiesDomain_70ff9604-5384-4fdd-bc60-b993000bf46f" xlink:to="loc_srt_ParentCompanyMember_d105ebc2-27ef-4660-9547-b8cad387e663" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PlanNameAxis_fb7043e7-c209-4526-b056-5c082cd7886c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PlanNameAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_d7b6cac7-3055-49df-9ad3-d6c5586a689c" xlink:to="loc_us-gaap_PlanNameAxis_fb7043e7-c209-4526-b056-5c082cd7886c" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PlanNameDomain_fb7043e7-c209-4526-b056-5c082cd7886c_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PlanNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_PlanNameAxis_fb7043e7-c209-4526-b056-5c082cd7886c" xlink:to="loc_us-gaap_PlanNameDomain_fb7043e7-c209-4526-b056-5c082cd7886c_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PlanNameDomain_d430e1de-484a-4ea7-b6cd-12eb31838997" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PlanNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_PlanNameAxis_fb7043e7-c209-4526-b056-5c082cd7886c" xlink:to="loc_us-gaap_PlanNameDomain_d430e1de-484a-4ea7-b6cd-12eb31838997" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AmendnedStockOptionAndIncentivePlan2006Member_32f3b89c-0c28-4760-94ae-dca15542993a" xlink:href="tgen-20241231.xsd#tgen_AmendnedStockOptionAndIncentivePlan2006Member"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PlanNameDomain_d430e1de-484a-4ea7-b6cd-12eb31838997" xlink:to="loc_tgen_AmendnedStockOptionAndIncentivePlan2006Member_32f3b89c-0c28-4760-94ae-dca15542993a" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_A2022StockIncentivePlanMember_2e57c703-aa93-4260-9387-b5c129c4525e" xlink:href="tgen-20241231.xsd#tgen_A2022StockIncentivePlanMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PlanNameDomain_d430e1de-484a-4ea7-b6cd-12eb31838997" xlink:to="loc_tgen_A2022StockIncentivePlanMember_2e57c703-aa93-4260-9387-b5c129c4525e" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AwardTypeAxis_66c5d044-0f2b-4f6b-b5e4-81135b58085a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AwardTypeAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_d7b6cac7-3055-49df-9ad3-d6c5586a689c" xlink:to="loc_us-gaap_AwardTypeAxis_66c5d044-0f2b-4f6b-b5e4-81135b58085a" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_66c5d044-0f2b-4f6b-b5e4-81135b58085a_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_AwardTypeAxis_66c5d044-0f2b-4f6b-b5e4-81135b58085a" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_66c5d044-0f2b-4f6b-b5e4-81135b58085a_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_bc5835d8-bf6f-4ca6-8d16-e7a79e73b7be" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_AwardTypeAxis_66c5d044-0f2b-4f6b-b5e4-81135b58085a" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_bc5835d8-bf6f-4ca6-8d16-e7a79e73b7be" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeStockOptionMember_bb2708e2-d605-480e-8a79-f4fd1d7a38c9" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeStockOptionMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_bc5835d8-bf6f-4ca6-8d16-e7a79e73b7be" xlink:to="loc_us-gaap_EmployeeStockOptionMember_bb2708e2-d605-480e-8a79-f4fd1d7a38c9" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_TitleOfIndividualAxis_ddd7c0e2-66f3-4e06-b828-a367f89fa143" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_TitleOfIndividualAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_d7b6cac7-3055-49df-9ad3-d6c5586a689c" xlink:to="loc_srt_TitleOfIndividualAxis_ddd7c0e2-66f3-4e06-b828-a367f89fa143" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_TitleOfIndividualWithRelationshipToEntityDomain_ddd7c0e2-66f3-4e06-b828-a367f89fa143_default" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_TitleOfIndividualWithRelationshipToEntityDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_TitleOfIndividualAxis_ddd7c0e2-66f3-4e06-b828-a367f89fa143" xlink:to="loc_srt_TitleOfIndividualWithRelationshipToEntityDomain_ddd7c0e2-66f3-4e06-b828-a367f89fa143_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_TitleOfIndividualWithRelationshipToEntityDomain_b4838443-f653-43af-bcac-853d328fcd2a" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_TitleOfIndividualWithRelationshipToEntityDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_TitleOfIndividualAxis_ddd7c0e2-66f3-4e06-b828-a367f89fa143" xlink:to="loc_srt_TitleOfIndividualWithRelationshipToEntityDomain_b4838443-f653-43af-bcac-853d328fcd2a" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_DirectorMember_8cf99a27-e5eb-4d4c-ad01-927b975728ba" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_DirectorMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_TitleOfIndividualWithRelationshipToEntityDomain_b4838443-f653-43af-bcac-853d328fcd2a" xlink:to="loc_srt_DirectorMember_8cf99a27-e5eb-4d4c-ad01-927b975728ba" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeAxis_e1e6476f-87c9-40e0-8c6d-e5757dc241d6" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_d7b6cac7-3055-49df-9ad3-d6c5586a689c" xlink:to="loc_srt_RangeAxis_e1e6476f-87c9-40e0-8c6d-e5757dc241d6" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeMember_e1e6476f-87c9-40e0-8c6d-e5757dc241d6_default" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_RangeAxis_e1e6476f-87c9-40e0-8c6d-e5757dc241d6" xlink:to="loc_srt_RangeMember_e1e6476f-87c9-40e0-8c6d-e5757dc241d6_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeMember_a62f1916-0ddc-43d7-b2dc-9bd77ec874e2" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_RangeAxis_e1e6476f-87c9-40e0-8c6d-e5757dc241d6" xlink:to="loc_srt_RangeMember_a62f1916-0ddc-43d7-b2dc-9bd77ec874e2" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MinimumMember_99582ffb-d437-4eaa-8570-f0bd02d67720" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MinimumMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RangeMember_a62f1916-0ddc-43d7-b2dc-9bd77ec874e2" xlink:to="loc_srt_MinimumMember_99582ffb-d437-4eaa-8570-f0bd02d67720" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MaximumMember_1dd768b6-e9df-4f1f-9a2b-880a9b787612" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MaximumMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RangeMember_a62f1916-0ddc-43d7-b2dc-9bd77ec874e2" xlink:to="loc_srt_MaximumMember_1dd768b6-e9df-4f1f-9a2b-880a9b787612" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockCapitalSharesReservedForFutureIssuance_e591fa04-2351-4776-8d45-7787117f337f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockCapitalSharesReservedForFutureIssuance"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_d0b0fafc-5d65-4222-8c4e-b14d6ec9446e" xlink:to="loc_us-gaap_CommonStockCapitalSharesReservedForFutureIssuance_e591fa04-2351-4776-8d45-7787117f337f" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant_f9fa2fa8-7ad3-4e12-8329-2f65c8c365d7" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_d0b0fafc-5d65-4222-8c4e-b14d6ec9446e" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant_f9fa2fa8-7ad3-4e12-8329-2f65c8c365d7" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross_992b0eca-baa0-40a1-8b1d-f792f292ce2f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_d0b0fafc-5d65-4222-8c4e-b14d6ec9446e" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross_992b0eca-baa0-40a1-8b1d-f792f292ce2f" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod_53855633-0dc7-4049-91d3-28f3e70f7606" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_d0b0fafc-5d65-4222-8c4e-b14d6ec9446e" xlink:to="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod_53855633-0dc7-4049-91d3-28f3e70f7606" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantedInPeriodExercisePrice_0d59a2be-630d-4d12-8407-be2770972996" xlink:href="tgen-20241231.xsd#tgen_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantedInPeriodExercisePrice"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_d0b0fafc-5d65-4222-8c4e-b14d6ec9446e" xlink:to="loc_tgen_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantedInPeriodExercisePrice_0d59a2be-630d-4d12-8407-be2770972996" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_5c91178e-fb45-4a51-b27a-2667d13cef80" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_d0b0fafc-5d65-4222-8c4e-b14d6ec9446e" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_5c91178e-fb45-4a51-b27a-2667d13cef80" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansGrantedExercisePriceRangeLowerRangeLimit_b82740d4-31d1-4b20-906f-ec16c13c4007" xlink:href="tgen-20241231.xsd#tgen_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansGrantedExercisePriceRangeLowerRangeLimit"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_d0b0fafc-5d65-4222-8c4e-b14d6ec9446e" xlink:to="loc_tgen_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansGrantedExercisePriceRangeLowerRangeLimit_b82740d4-31d1-4b20-906f-ec16c13c4007" xlink:type="arc" order="6"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansGrantedExercisePriceRangeUpperRangeLimit_84d98f00-34a0-470c-a10b-662141c74af8" xlink:href="tgen-20241231.xsd#tgen_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansGrantedExercisePriceRangeUpperRangeLimit"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_d0b0fafc-5d65-4222-8c4e-b14d6ec9446e" xlink:to="loc_tgen_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansGrantedExercisePriceRangeUpperRangeLimit_84d98f00-34a0-470c-a10b-662141c74af8" xlink:type="arc" order="7"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1_e9f3ae37-b99c-426b-afef-875a48190090" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_d0b0fafc-5d65-4222-8c4e-b14d6ec9446e" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1_e9f3ae37-b99c-426b-afef-875a48190090" xlink:type="arc" order="8"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1_87f06d9d-c278-498c-bb8d-cd68c5b54d8a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_d0b0fafc-5d65-4222-8c4e-b14d6ec9446e" xlink:to="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1_87f06d9d-c278-498c-bb8d-cd68c5b54d8a" xlink:type="arc" order="9"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_547ca845-d72b-43f8-adab-4fe8fb7a3840" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_d0b0fafc-5d65-4222-8c4e-b14d6ec9446e" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_547ca845-d72b-43f8-adab-4fe8fb7a3840" xlink:type="arc" order="10"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_803dbfc3-63aa-45ba-804d-b5d02a9bd7cc" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_d0b0fafc-5d65-4222-8c4e-b14d6ec9446e" xlink:to="loc_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_803dbfc3-63aa-45ba-804d-b5d02a9bd7cc" xlink:type="arc" order="11"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfOptionsExercisedInPeriod_13eff386-8a0b-4ad4-bbb9-fc3884022073" xlink:href="tgen-20241231.xsd#tgen_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfOptionsExercisedInPeriod"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_d0b0fafc-5d65-4222-8c4e-b14d6ec9446e" xlink:to="loc_tgen_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfOptionsExercisedInPeriod_13eff386-8a0b-4ad4-bbb9-fc3884022073" xlink:type="arc" order="12"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ShareBasedCompensationArrangementbyShareBasedPaymentAwardHistoricalForfeitureRate_5488d674-dedb-4489-8b10-bdd614e23ba3" xlink:href="tgen-20241231.xsd#tgen_ShareBasedCompensationArrangementbyShareBasedPaymentAwardHistoricalForfeitureRate"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_d0b0fafc-5d65-4222-8c4e-b14d6ec9446e" xlink:to="loc_tgen_ShareBasedCompensationArrangementbyShareBasedPaymentAwardHistoricalForfeitureRate_5488d674-dedb-4489-8b10-bdd614e23ba3" xlink:type="arc" order="13"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfPubliclyTradedCompaniesUsedInExpectedVolatilityRateCalculation_388b9e5a-c1c2-448f-beea-6ea3a59b4fc6" xlink:href="tgen-20241231.xsd#tgen_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfPubliclyTradedCompaniesUsedInExpectedVolatilityRateCalculation"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_d0b0fafc-5d65-4222-8c4e-b14d6ec9446e" xlink:to="loc_tgen_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfPubliclyTradedCompaniesUsedInExpectedVolatilityRateCalculation_388b9e5a-c1c2-448f-beea-6ea3a59b4fc6" xlink:type="arc" order="14"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AllocatedShareBasedCompensationExpense_e879085a-ddde-4087-8183-a409d4ca8e7f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AllocatedShareBasedCompensationExpense"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_d0b0fafc-5d65-4222-8c4e-b14d6ec9446e" xlink:to="loc_us-gaap_AllocatedShareBasedCompensationExpense_e879085a-ddde-4087-8183-a409d4ca8e7f" xlink:type="arc" order="15"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense_f8609bf2-65a2-4c94-a832-b8606d09ba9a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_d0b0fafc-5d65-4222-8c4e-b14d6ec9446e" xlink:to="loc_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense_f8609bf2-65a2-4c94-a832-b8606d09ba9a" xlink:type="arc" order="16"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized_ff222b50-619a-4a33-ad1f-5b1501f7a15d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_d0b0fafc-5d65-4222-8c4e-b14d6ec9446e" xlink:to="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized_ff222b50-619a-4a33-ad1f-5b1501f7a15d" xlink:type="arc" order="17"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1_21193f7a-4f2b-4a96-b84a-ba518277c522" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_d0b0fafc-5d65-4222-8c4e-b14d6ec9446e" xlink:to="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1_21193f7a-4f2b-4a96-b84a-ba518277c522" xlink:type="arc" order="18"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/StockholdersequityStockOptionActivityDetails" xlink:type="simple" xlink:href="tgen-20241231.xsd#StockholdersequityStockOptionActivityDetails"/>
  <link:definitionLink xlink:role="http://www.tecogen.com/role/StockholdersequityStockOptionActivityDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6c8e164b-7d5f-4975-8ee8-56d77612c575" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_0f769749-7cf5-4273-9cc4-be185d5af4d1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6c8e164b-7d5f-4975-8ee8-56d77612c575" xlink:to="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_0f769749-7cf5-4273-9cc4-be185d5af4d1" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AwardTypeAxis_968be914-9fc8-4d9b-aa29-29c37d7a79f1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AwardTypeAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_0f769749-7cf5-4273-9cc4-be185d5af4d1" xlink:to="loc_us-gaap_AwardTypeAxis_968be914-9fc8-4d9b-aa29-29c37d7a79f1" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_968be914-9fc8-4d9b-aa29-29c37d7a79f1_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_AwardTypeAxis_968be914-9fc8-4d9b-aa29-29c37d7a79f1" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_968be914-9fc8-4d9b-aa29-29c37d7a79f1_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_f8f54a69-9709-454d-a60d-c1593e2c1cf5" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_AwardTypeAxis_968be914-9fc8-4d9b-aa29-29c37d7a79f1" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_f8f54a69-9709-454d-a60d-c1593e2c1cf5" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeStockOptionMember_ee623c52-dc1f-4732-8647-1b3fa528a9d0" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeStockOptionMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_f8f54a69-9709-454d-a60d-c1593e2c1cf5" xlink:to="loc_us-gaap_EmployeeStockOptionMember_ee623c52-dc1f-4732-8647-1b3fa528a9d0" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ConsolidatedEntitiesAxis_fd88b187-fd79-4544-af93-e1d9824becf2" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ConsolidatedEntitiesAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_0f769749-7cf5-4273-9cc4-be185d5af4d1" xlink:to="loc_srt_ConsolidatedEntitiesAxis_fd88b187-fd79-4544-af93-e1d9824becf2" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ConsolidatedEntitiesDomain_fd88b187-fd79-4544-af93-e1d9824becf2_default" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ConsolidatedEntitiesDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_ConsolidatedEntitiesAxis_fd88b187-fd79-4544-af93-e1d9824becf2" xlink:to="loc_srt_ConsolidatedEntitiesDomain_fd88b187-fd79-4544-af93-e1d9824becf2_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ConsolidatedEntitiesDomain_fa256bd1-f60a-4787-86bf-824340aafeee" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ConsolidatedEntitiesDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_ConsolidatedEntitiesAxis_fd88b187-fd79-4544-af93-e1d9824becf2" xlink:to="loc_srt_ConsolidatedEntitiesDomain_fa256bd1-f60a-4787-86bf-824340aafeee" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ParentCompanyMember_3bf3a3e3-42d8-4626-a01f-58b7955839c5" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ParentCompanyMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_ConsolidatedEntitiesDomain_fa256bd1-f60a-4787-86bf-824340aafeee" xlink:to="loc_srt_ParentCompanyMember_3bf3a3e3-42d8-4626-a01f-58b7955839c5" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward_0790933c-c742-4e5b-ae2b-1c6810b7414d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6c8e164b-7d5f-4975-8ee8-56d77612c575" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward_0790933c-c742-4e5b-ae2b-1c6810b7414d" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_a09b3974-49eb-44bd-841a-878759777557" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward_0790933c-c742-4e5b-ae2b-1c6810b7414d" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_a09b3974-49eb-44bd-841a-878759777557" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross_e0e5e4c8-77ce-4523-9493-c042c24c0d78" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward_0790933c-c742-4e5b-ae2b-1c6810b7414d" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross_e0e5e4c8-77ce-4523-9493-c042c24c0d78" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsCancellationsAndForfeituresInPeriod_cceb1985-66ed-4cc5-ab73-2f12f39d15b1" xlink:href="tgen-20241231.xsd#tgen_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsCancellationsAndForfeituresInPeriod"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward_0790933c-c742-4e5b-ae2b-1c6810b7414d" xlink:to="loc_tgen_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsCancellationsAndForfeituresInPeriod_cceb1985-66ed-4cc5-ab73-2f12f39d15b1" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_7fcd6edf-f026-4a97-a156-954a5d3e5f72" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_b173cf0f-5402-43ad-824a-33b3f02e5dca" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6c8e164b-7d5f-4975-8ee8-56d77612c575" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_b173cf0f-5402-43ad-824a-33b3f02e5dca" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber_b6e48ca5-536e-484a-bfef-fbc52ce888e3" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6c8e164b-7d5f-4975-8ee8-56d77612c575" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber_b6e48ca5-536e-484a-bfef-fbc52ce888e3" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward_1f72056e-5e50-4511-8228-3447d512aabd" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6c8e164b-7d5f-4975-8ee8-56d77612c575" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward_1f72056e-5e50-4511-8228-3447d512aabd" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_55f04545-3aee-4214-93f4-ea559f89d1ef" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward_1f72056e-5e50-4511-8228-3447d512aabd" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_55f04545-3aee-4214-93f4-ea559f89d1ef" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice_a3e24506-5145-4d58-9e2f-cdd8c6222a5a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward_1f72056e-5e50-4511-8228-3447d512aabd" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice_a3e24506-5145-4d58-9e2f-cdd8c6222a5a" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice_431f6d36-8f5d-42f8-a8d0-d3bef24215db" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward_1f72056e-5e50-4511-8228-3447d512aabd" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice_431f6d36-8f5d-42f8-a8d0-d3bef24215db" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsCancellationsAndForfeituresInPeriodWeightedAverageExercisePrice_0d111973-6d40-4ccd-972e-3e49117abc11" xlink:href="tgen-20241231.xsd#tgen_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsCancellationsAndForfeituresInPeriodWeightedAverageExercisePrice"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward_1f72056e-5e50-4511-8228-3447d512aabd" xlink:to="loc_tgen_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsCancellationsAndForfeituresInPeriodWeightedAverageExercisePrice_0d111973-6d40-4ccd-972e-3e49117abc11" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_fdbfa0e1-79f6-40ee-a969-cac66822c606" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice_4b9bcb35-9d8d-4ab5-a8ef-7e486ae89d13" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward_1f72056e-5e50-4511-8228-3447d512aabd" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice_4b9bcb35-9d8d-4ab5-a8ef-7e486ae89d13" xlink:type="arc" order="6"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice_b5f7ff7b-4d32-4695-b689-61654bf7e90f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward_1f72056e-5e50-4511-8228-3447d512aabd" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice_b5f7ff7b-4d32-4695-b689-61654bf7e90f" xlink:type="arc" order="7"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAdditionalDisclosuresAbstract_9eaead35-c15c-4a26-8123-bc8ef18823df" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAdditionalDisclosuresAbstract"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6c8e164b-7d5f-4975-8ee8-56d77612c575" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAdditionalDisclosuresAbstract_9eaead35-c15c-4a26-8123-bc8ef18823df" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2_73662c26-d049-46ab-b860-c6453443837b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAdditionalDisclosuresAbstract_9eaead35-c15c-4a26-8123-bc8ef18823df" xlink:to="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2_73662c26-d049-46ab-b860-c6453443837b" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue_692ac1b5-ded1-463d-b5db-9228de361044" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAdditionalDisclosuresAbstract_9eaead35-c15c-4a26-8123-bc8ef18823df" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue_692ac1b5-ded1-463d-b5db-9228de361044" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue_a968f96a-75fc-4482-ae04-19135f5309c0" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAdditionalDisclosuresAbstract_9eaead35-c15c-4a26-8123-bc8ef18823df" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue_a968f96a-75fc-4482-ae04-19135f5309c0" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1_47c79cf5-d46c-4141-8a60-ed02016b1f8d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAdditionalDisclosuresAbstract_9eaead35-c15c-4a26-8123-bc8ef18823df" xlink:to="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1_47c79cf5-d46c-4141-8a60-ed02016b1f8d" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue_6c624aa6-b4d6-4351-85e3-2a4ec77a3326" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAdditionalDisclosuresAbstract_9eaead35-c15c-4a26-8123-bc8ef18823df" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue_6c624aa6-b4d6-4351-85e3-2a4ec77a3326" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ExercisePricePerShareAbstract_a21ae250-ea5a-40e7-80e6-bb222b4dc14a" xlink:href="tgen-20241231.xsd#tgen_ExercisePricePerShareAbstract"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6c8e164b-7d5f-4975-8ee8-56d77612c575" xlink:to="loc_tgen_ExercisePricePerShareAbstract_a21ae250-ea5a-40e7-80e6-bb222b4dc14a" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit_94ed4354-a696-409b-8158-e0f25ac9a734" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_tgen_ExercisePricePerShareAbstract_a21ae250-ea5a-40e7-80e6-bb222b4dc14a" xlink:to="loc_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit_94ed4354-a696-409b-8158-e0f25ac9a734" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit_7353d135-4f04-4d12-87bf-7fb91a4d32e1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_tgen_ExercisePricePerShareAbstract_a21ae250-ea5a-40e7-80e6-bb222b4dc14a" xlink:to="loc_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit_7353d135-4f04-4d12-87bf-7fb91a4d32e1" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansGrantedExercisePriceRangeLowerRangeLimit_21065cc4-b5fe-40e7-9cfd-5d7fcab087a5" xlink:href="tgen-20241231.xsd#tgen_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansGrantedExercisePriceRangeLowerRangeLimit"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_tgen_ExercisePricePerShareAbstract_a21ae250-ea5a-40e7-80e6-bb222b4dc14a" xlink:to="loc_tgen_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansGrantedExercisePriceRangeLowerRangeLimit_21065cc4-b5fe-40e7-9cfd-5d7fcab087a5" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansGrantedExercisePriceRangeUpperRangeLimit_b6ca5d40-cb46-4ab9-a9b3-7b3929ef3e4f" xlink:href="tgen-20241231.xsd#tgen_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansGrantedExercisePriceRangeUpperRangeLimit"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_tgen_ExercisePricePerShareAbstract_a21ae250-ea5a-40e7-80e6-bb222b4dc14a" xlink:to="loc_tgen_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansGrantedExercisePriceRangeUpperRangeLimit_b6ca5d40-cb46-4ab9-a9b3-7b3929ef3e4f" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ShareBasedPaymentArrangementOptionExercisesInPeriodExercisePricePerShare_dd153027-d429-40ec-9624-024fe5171b67" xlink:href="tgen-20241231.xsd#tgen_ShareBasedPaymentArrangementOptionExercisesInPeriodExercisePricePerShare"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_tgen_ExercisePricePerShareAbstract_a21ae250-ea5a-40e7-80e6-bb222b4dc14a" xlink:to="loc_tgen_ShareBasedPaymentArrangementOptionExercisesInPeriodExercisePricePerShare_dd153027-d429-40ec-9624-024fe5171b67" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansCancelledAndForfeitedExercisePriceRangeLowerRangeLimit_d8b6b9cd-d27d-4750-a786-0965ac61818a" xlink:href="tgen-20241231.xsd#tgen_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansCancelledAndForfeitedExercisePriceRangeLowerRangeLimit"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_tgen_ExercisePricePerShareAbstract_a21ae250-ea5a-40e7-80e6-bb222b4dc14a" xlink:to="loc_tgen_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansCancelledAndForfeitedExercisePriceRangeLowerRangeLimit_d8b6b9cd-d27d-4750-a786-0965ac61818a" xlink:type="arc" order="6"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansCancelledAndForfeitedExercisePriceRangeUpperRangeLimit_2bf90dbd-9a01-490d-9022-14c696494d1d" xlink:href="tgen-20241231.xsd#tgen_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansCancelledAndForfeitedExercisePriceRangeUpperRangeLimit"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_tgen_ExercisePricePerShareAbstract_a21ae250-ea5a-40e7-80e6-bb222b4dc14a" xlink:to="loc_tgen_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansCancelledAndForfeitedExercisePriceRangeUpperRangeLimit_2bf90dbd-9a01-490d-9022-14c696494d1d" xlink:type="arc" order="7"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/StockholdersequityWeightedAverageAssumptionsDetails" xlink:type="simple" xlink:href="tgen-20241231.xsd#StockholdersequityWeightedAverageAssumptionsDetails"/>
  <link:definitionLink xlink:role="http://www.tecogen.com/role/StockholdersequityWeightedAverageAssumptionsDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a4274df0-b524-491e-82eb-668617b9bded" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_753d0021-d900-4ce7-a9e1-7a85a46029b3" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a4274df0-b524-491e-82eb-668617b9bded" xlink:to="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_753d0021-d900-4ce7-a9e1-7a85a46029b3" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ConsolidatedEntitiesAxis_649029b0-c17c-400b-9a5f-e88a4d90cfbc" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ConsolidatedEntitiesAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_753d0021-d900-4ce7-a9e1-7a85a46029b3" xlink:to="loc_srt_ConsolidatedEntitiesAxis_649029b0-c17c-400b-9a5f-e88a4d90cfbc" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ConsolidatedEntitiesDomain_649029b0-c17c-400b-9a5f-e88a4d90cfbc_default" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ConsolidatedEntitiesDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_ConsolidatedEntitiesAxis_649029b0-c17c-400b-9a5f-e88a4d90cfbc" xlink:to="loc_srt_ConsolidatedEntitiesDomain_649029b0-c17c-400b-9a5f-e88a4d90cfbc_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ConsolidatedEntitiesDomain_e20c476b-bf6f-4df5-92bb-df6f24933210" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ConsolidatedEntitiesDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_ConsolidatedEntitiesAxis_649029b0-c17c-400b-9a5f-e88a4d90cfbc" xlink:to="loc_srt_ConsolidatedEntitiesDomain_e20c476b-bf6f-4df5-92bb-df6f24933210" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ParentCompanyMember_96c8edcf-c30d-423e-99ee-f651f5c6626a" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ParentCompanyMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_ConsolidatedEntitiesDomain_e20c476b-bf6f-4df5-92bb-df6f24933210" xlink:to="loc_srt_ParentCompanyMember_96c8edcf-c30d-423e-99ee-f651f5c6626a" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AwardTypeAxis_3668624e-674c-4255-aae9-92de1f01c473" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AwardTypeAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_753d0021-d900-4ce7-a9e1-7a85a46029b3" xlink:to="loc_us-gaap_AwardTypeAxis_3668624e-674c-4255-aae9-92de1f01c473" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_3668624e-674c-4255-aae9-92de1f01c473_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_AwardTypeAxis_3668624e-674c-4255-aae9-92de1f01c473" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_3668624e-674c-4255-aae9-92de1f01c473_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_02431dd2-67bb-437c-8a54-e9dfdc09cf6a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_AwardTypeAxis_3668624e-674c-4255-aae9-92de1f01c473" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_02431dd2-67bb-437c-8a54-e9dfdc09cf6a" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeStockOptionMember_b0b49050-ad26-45da-af03-6be4a38b00b4" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeStockOptionMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_02431dd2-67bb-437c-8a54-e9dfdc09cf6a" xlink:to="loc_us-gaap_EmployeeStockOptionMember_b0b49050-ad26-45da-af03-6be4a38b00b4" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1_a3937067-e7a1-48ae-a525-f3648948c2ff" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a4274df0-b524-491e-82eb-668617b9bded" xlink:to="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1_a3937067-e7a1-48ae-a525-f3648948c2ff" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate_03b91622-442e-4a6c-a7d4-ad6fac338bef" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a4274df0-b524-491e-82eb-668617b9bded" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate_03b91622-442e-4a6c-a7d4-ad6fac338bef" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate_5ece1005-4ea4-4ff8-97b2-3f8afd210487" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a4274df0-b524-491e-82eb-668617b9bded" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate_5ece1005-4ea4-4ff8-97b2-3f8afd210487" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate_d688b4ab-12d5-44c5-9ce9-9c54bc98ef3a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a4274df0-b524-491e-82eb-668617b9bded" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate_d688b4ab-12d5-44c5-9ce9-9c54bc98ef3a" xlink:type="arc" order="3"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/FairValueMeasurementsScheduleofAssetReportedinConsolidatedBalanceSheetMeasuredatFairValueonRecurringBasisDetails" xlink:type="simple" xlink:href="tgen-20241231.xsd#FairValueMeasurementsScheduleofAssetReportedinConsolidatedBalanceSheetMeasuredatFairValueonRecurringBasisDetails"/>
  <link:definitionLink xlink:role="http://www.tecogen.com/role/FairValueMeasurementsScheduleofAssetReportedinConsolidatedBalanceSheetMeasuredatFairValueonRecurringBasisDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_9767d71d-82d9-497e-99cc-6133512957fc" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_cd0944a2-9498-431d-9ee8-dd6bae907b1f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_9767d71d-82d9-497e-99cc-6133512957fc" xlink:to="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_cd0944a2-9498-431d-9ee8-dd6bae907b1f" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_LegalEntityAxis_e2147de9-b99d-4ed5-be5d-1022b6dd8e84" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_LegalEntityAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_cd0944a2-9498-431d-9ee8-dd6bae907b1f" xlink:to="loc_dei_LegalEntityAxis_e2147de9-b99d-4ed5-be5d-1022b6dd8e84" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityDomain_e2147de9-b99d-4ed5-be5d-1022b6dd8e84_default" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_dei_LegalEntityAxis_e2147de9-b99d-4ed5-be5d-1022b6dd8e84" xlink:to="loc_dei_EntityDomain_e2147de9-b99d-4ed5-be5d-1022b6dd8e84_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityDomain_4e3716c1-3ae2-4f01-9219-b26b360b8fab" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_dei_LegalEntityAxis_e2147de9-b99d-4ed5-be5d-1022b6dd8e84" xlink:to="loc_dei_EntityDomain_4e3716c1-3ae2-4f01-9219-b26b360b8fab" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_EurositePowerIncMember_f78eb9e7-c99a-46a4-b971-6c1945ac9097" xlink:href="tgen-20241231.xsd#tgen_EurositePowerIncMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_dei_EntityDomain_4e3716c1-3ae2-4f01-9219-b26b360b8fab" xlink:to="loc_tgen_EurositePowerIncMember_f78eb9e7-c99a-46a4-b971-6c1945ac9097" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueByMeasurementBasisAxis_66a8731e-b5d9-436f-9c22-6a9d6910fd72" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueByMeasurementBasisAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_cd0944a2-9498-431d-9ee8-dd6bae907b1f" xlink:to="loc_us-gaap_FairValueByMeasurementBasisAxis_66a8731e-b5d9-436f-9c22-6a9d6910fd72" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PortionAtFairValueFairValueDisclosureMember_66a8731e-b5d9-436f-9c22-6a9d6910fd72_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PortionAtFairValueFairValueDisclosureMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_FairValueByMeasurementBasisAxis_66a8731e-b5d9-436f-9c22-6a9d6910fd72" xlink:to="loc_us-gaap_PortionAtFairValueFairValueDisclosureMember_66a8731e-b5d9-436f-9c22-6a9d6910fd72_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueDisclosureItemAmountsDomain_7a79c864-feac-46c9-a0b1-a3f01a00dc6a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueDisclosureItemAmountsDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_FairValueByMeasurementBasisAxis_66a8731e-b5d9-436f-9c22-6a9d6910fd72" xlink:to="loc_us-gaap_FairValueDisclosureItemAmountsDomain_7a79c864-feac-46c9-a0b1-a3f01a00dc6a" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PortionAtFairValueFairValueDisclosureMember_4eed0195-ce96-40cc-be42-d8d8e9245a2a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PortionAtFairValueFairValueDisclosureMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FairValueDisclosureItemAmountsDomain_7a79c864-feac-46c9-a0b1-a3f01a00dc6a" xlink:to="loc_us-gaap_PortionAtFairValueFairValueDisclosureMember_4eed0195-ce96-40cc-be42-d8d8e9245a2a" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EstimateOfFairValueFairValueDisclosureMember_757a2e20-bdc1-470d-8c54-7dc8f43bbd19" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EstimateOfFairValueFairValueDisclosureMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PortionAtFairValueFairValueDisclosureMember_4eed0195-ce96-40cc-be42-d8d8e9245a2a" xlink:to="loc_us-gaap_EstimateOfFairValueFairValueDisclosureMember_757a2e20-bdc1-470d-8c54-7dc8f43bbd19" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueByMeasurementFrequencyAxis_e6f84d27-88f5-4c3f-9512-ce8ca5e5ad1d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueByMeasurementFrequencyAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_cd0944a2-9498-431d-9ee8-dd6bae907b1f" xlink:to="loc_us-gaap_FairValueByMeasurementFrequencyAxis_e6f84d27-88f5-4c3f-9512-ce8ca5e5ad1d" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueMeasurementFrequencyDomain_e6f84d27-88f5-4c3f-9512-ce8ca5e5ad1d_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueMeasurementFrequencyDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_FairValueByMeasurementFrequencyAxis_e6f84d27-88f5-4c3f-9512-ce8ca5e5ad1d" xlink:to="loc_us-gaap_FairValueMeasurementFrequencyDomain_e6f84d27-88f5-4c3f-9512-ce8ca5e5ad1d_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueMeasurementFrequencyDomain_f5acb75b-8138-4452-aa55-d375332725b1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueMeasurementFrequencyDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_FairValueByMeasurementFrequencyAxis_e6f84d27-88f5-4c3f-9512-ce8ca5e5ad1d" xlink:to="loc_us-gaap_FairValueMeasurementFrequencyDomain_f5acb75b-8138-4452-aa55-d375332725b1" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueMeasurementsRecurringMember_4369d774-3073-4d23-b430-74924538104d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueMeasurementsRecurringMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FairValueMeasurementFrequencyDomain_f5acb75b-8138-4452-aa55-d375332725b1" xlink:to="loc_us-gaap_FairValueMeasurementsRecurringMember_4369d774-3073-4d23-b430-74924538104d" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueByFairValueHierarchyLevelAxis_34098a62-b7c8-40e4-9878-b6bc4cb60187" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueByFairValueHierarchyLevelAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_cd0944a2-9498-431d-9ee8-dd6bae907b1f" xlink:to="loc_us-gaap_FairValueByFairValueHierarchyLevelAxis_34098a62-b7c8-40e4-9878-b6bc4cb60187" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_34098a62-b7c8-40e4-9878-b6bc4cb60187_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueMeasurementsFairValueHierarchyDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_FairValueByFairValueHierarchyLevelAxis_34098a62-b7c8-40e4-9878-b6bc4cb60187" xlink:to="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_34098a62-b7c8-40e4-9878-b6bc4cb60187_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_8654a7c7-7508-410a-af1a-6d585ebf4efb" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueMeasurementsFairValueHierarchyDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_FairValueByFairValueHierarchyLevelAxis_34098a62-b7c8-40e4-9878-b6bc4cb60187" xlink:to="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_8654a7c7-7508-410a-af1a-6d585ebf4efb" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueInputsLevel1Member_e84f4143-442f-4956-8036-706b441680d4" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueInputsLevel1Member"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_8654a7c7-7508-410a-af1a-6d585ebf4efb" xlink:to="loc_us-gaap_FairValueInputsLevel1Member_e84f4143-442f-4956-8036-706b441680d4" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueInputsLevel2Member_581eb13d-48e1-4b4c-9f65-6a18d44805a8" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueInputsLevel2Member"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_8654a7c7-7508-410a-af1a-6d585ebf4efb" xlink:to="loc_us-gaap_FairValueInputsLevel2Member_581eb13d-48e1-4b4c-9f65-6a18d44805a8" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueInputsLevel3Member_bb8c178a-db95-450c-bb60-13b206eca2ad" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueInputsLevel3Member"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_8654a7c7-7508-410a-af1a-6d585ebf4efb" xlink:to="loc_us-gaap_FairValueInputsLevel3Member_bb8c178a-db95-450c-bb60-13b206eca2ad" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueByLiabilityClassAxis_62d50b89-a8f1-424c-9274-79d03f11e09f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueByLiabilityClassAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_cd0944a2-9498-431d-9ee8-dd6bae907b1f" xlink:to="loc_us-gaap_FairValueByLiabilityClassAxis_62d50b89-a8f1-424c-9274-79d03f11e09f" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationByLiabilityClassDomain_62d50b89-a8f1-424c-9274-79d03f11e09f_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationByLiabilityClassDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_FairValueByLiabilityClassAxis_62d50b89-a8f1-424c-9274-79d03f11e09f" xlink:to="loc_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationByLiabilityClassDomain_62d50b89-a8f1-424c-9274-79d03f11e09f_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationByLiabilityClassDomain_65921677-8571-4d8e-a173-e1334b457445" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationByLiabilityClassDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_FairValueByLiabilityClassAxis_62d50b89-a8f1-424c-9274-79d03f11e09f" xlink:to="loc_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationByLiabilityClassDomain_65921677-8571-4d8e-a173-e1334b457445" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ContingentConsiderationCurrentMember_9d954c17-bc59-4dc3-97f1-4eebab249536" xlink:href="tgen-20241231.xsd#tgen_ContingentConsiderationCurrentMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationByLiabilityClassDomain_65921677-8571-4d8e-a173-e1334b457445" xlink:to="loc_tgen_ContingentConsiderationCurrentMember_9d954c17-bc59-4dc3-97f1-4eebab249536" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ContingentConsiderationNoncurrentMember_ec10f9ee-825f-4651-9886-6ac55034eaec" xlink:href="tgen-20241231.xsd#tgen_ContingentConsiderationNoncurrentMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationByLiabilityClassDomain_65921677-8571-4d8e-a173-e1334b457445" xlink:to="loc_tgen_ContingentConsiderationNoncurrentMember_ec10f9ee-825f-4651-9886-6ac55034eaec" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesDebtSecurities_c4f222f7-33ac-4967-be3e-950db3c97319" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AvailableForSaleSecuritiesDebtSecurities"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_9767d71d-82d9-497e-99cc-6133512957fc" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesDebtSecurities_c4f222f7-33ac-4967-be3e-950db3c97319" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax_736aef45-b589-4ecf-9e5b-93b407ee4c13" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_9767d71d-82d9-497e-99cc-6133512957fc" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax_736aef45-b589-4ecf-9e5b-93b407ee4c13" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetsFairValueDisclosure_5f683ef4-ae88-4c73-b345-794d86029f27" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetsFairValueDisclosure"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_9767d71d-82d9-497e-99cc-6133512957fc" xlink:to="loc_us-gaap_AssetsFairValueDisclosure_5f683ef4-ae88-4c73-b345-794d86029f27" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetAcquisitionContingentConsiderationLiabilityCurrent_a8cb1354-bcd2-48fd-94fe-57f474e7a27a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetAcquisitionContingentConsiderationLiabilityCurrent"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_9767d71d-82d9-497e-99cc-6133512957fc" xlink:to="loc_us-gaap_AssetAcquisitionContingentConsiderationLiabilityCurrent_a8cb1354-bcd2-48fd-94fe-57f474e7a27a" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetAcquisitionContingentConsiderationLiabilityNoncurrent_0b72ef04-1582-4638-a316-52364bd5f38a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetAcquisitionContingentConsiderationLiabilityNoncurrent"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_9767d71d-82d9-497e-99cc-6133512957fc" xlink:to="loc_us-gaap_AssetAcquisitionContingentConsiderationLiabilityNoncurrent_0b72ef04-1582-4638-a316-52364bd5f38a" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LiabilitiesFairValueDisclosure_4d01e712-602f-47c3-a7a0-17c7db0fa5ab" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LiabilitiesFairValueDisclosure"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_9767d71d-82d9-497e-99cc-6133512957fc" xlink:to="loc_us-gaap_LiabilitiesFairValueDisclosure_4d01e712-602f-47c3-a7a0-17c7db0fa5ab" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings_29a4a83f-746b-4d21-b2ee-c2a1ad34cc0a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_9767d71d-82d9-497e-99cc-6133512957fc" xlink:to="loc_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings_29a4a83f-746b-4d21-b2ee-c2a1ad34cc0a" xlink:type="arc" order="6"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/FairValueMeasuresandDisclosuresScheduleofChangesinLevel2AssetsDetails" xlink:type="simple" xlink:href="tgen-20241231.xsd#FairValueMeasuresandDisclosuresScheduleofChangesinLevel2AssetsDetails"/>
  <link:definitionLink xlink:role="http://www.tecogen.com/role/FairValueMeasuresandDisclosuresScheduleofChangesinLevel2AssetsDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems_47c10d1f-9e8a-4b7c-bd7c-40b7548c8e17" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationTable_0fe086ee-4599-4d1f-a202-1f7dfa60f1be" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems_47c10d1f-9e8a-4b7c-bd7c-40b7548c8e17" xlink:to="loc_us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationTable_0fe086ee-4599-4d1f-a202-1f7dfa60f1be" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueByMeasurementBasisAxis_265948ba-9f5e-431b-be8c-74d514fa6db8" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueByMeasurementBasisAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationTable_0fe086ee-4599-4d1f-a202-1f7dfa60f1be" xlink:to="loc_us-gaap_FairValueByMeasurementBasisAxis_265948ba-9f5e-431b-be8c-74d514fa6db8" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PortionAtFairValueFairValueDisclosureMember_265948ba-9f5e-431b-be8c-74d514fa6db8_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PortionAtFairValueFairValueDisclosureMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_FairValueByMeasurementBasisAxis_265948ba-9f5e-431b-be8c-74d514fa6db8" xlink:to="loc_us-gaap_PortionAtFairValueFairValueDisclosureMember_265948ba-9f5e-431b-be8c-74d514fa6db8_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueDisclosureItemAmountsDomain_910d639f-097a-4edd-a004-1c42023105e2" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueDisclosureItemAmountsDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_FairValueByMeasurementBasisAxis_265948ba-9f5e-431b-be8c-74d514fa6db8" xlink:to="loc_us-gaap_FairValueDisclosureItemAmountsDomain_910d639f-097a-4edd-a004-1c42023105e2" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PortionAtFairValueFairValueDisclosureMember_4b0d1262-ab32-4383-8fa3-5c1336ed3497" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PortionAtFairValueFairValueDisclosureMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FairValueDisclosureItemAmountsDomain_910d639f-097a-4edd-a004-1c42023105e2" xlink:to="loc_us-gaap_PortionAtFairValueFairValueDisclosureMember_4b0d1262-ab32-4383-8fa3-5c1336ed3497" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EstimateOfFairValueFairValueDisclosureMember_4bb42225-f613-4def-9e6d-6076e70a8884" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EstimateOfFairValueFairValueDisclosureMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PortionAtFairValueFairValueDisclosureMember_4b0d1262-ab32-4383-8fa3-5c1336ed3497" xlink:to="loc_us-gaap_EstimateOfFairValueFairValueDisclosureMember_4bb42225-f613-4def-9e6d-6076e70a8884" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueByMeasurementFrequencyAxis_2b46212e-2b8b-4a31-8e4b-f24ad49cb7e7" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueByMeasurementFrequencyAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationTable_0fe086ee-4599-4d1f-a202-1f7dfa60f1be" xlink:to="loc_us-gaap_FairValueByMeasurementFrequencyAxis_2b46212e-2b8b-4a31-8e4b-f24ad49cb7e7" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueMeasurementFrequencyDomain_2b46212e-2b8b-4a31-8e4b-f24ad49cb7e7_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueMeasurementFrequencyDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_FairValueByMeasurementFrequencyAxis_2b46212e-2b8b-4a31-8e4b-f24ad49cb7e7" xlink:to="loc_us-gaap_FairValueMeasurementFrequencyDomain_2b46212e-2b8b-4a31-8e4b-f24ad49cb7e7_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueMeasurementFrequencyDomain_7418379c-9bf1-4c1e-8a2a-27a561e7590b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueMeasurementFrequencyDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_FairValueByMeasurementFrequencyAxis_2b46212e-2b8b-4a31-8e4b-f24ad49cb7e7" xlink:to="loc_us-gaap_FairValueMeasurementFrequencyDomain_7418379c-9bf1-4c1e-8a2a-27a561e7590b" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueMeasurementsRecurringMember_f4ac25ee-7c16-4be7-9c2a-57a9dd58dda3" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueMeasurementsRecurringMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FairValueMeasurementFrequencyDomain_7418379c-9bf1-4c1e-8a2a-27a561e7590b" xlink:to="loc_us-gaap_FairValueMeasurementsRecurringMember_f4ac25ee-7c16-4be7-9c2a-57a9dd58dda3" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward_c4fa5a93-11fa-41f5-ab0f-f302be8095be" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems_47c10d1f-9e8a-4b7c-bd7c-40b7548c8e17" xlink:to="loc_us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward_c4fa5a93-11fa-41f5-ab0f-f302be8095be" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetsFairValueDisclosure_bf231875-df83-4cac-9c66-02b1993240a6" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetsFairValueDisclosure"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward_c4fa5a93-11fa-41f5-ab0f-f302be8095be" xlink:to="loc_us-gaap_AssetsFairValueDisclosure_bf231875-df83-4cac-9c66-02b1993240a6" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSales_fa27c3a2-e51a-44bd-87fc-708b8718122e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSales"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward_c4fa5a93-11fa-41f5-ab0f-f302be8095be" xlink:to="loc_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSales_fa27c3a2-e51a-44bd-87fc-708b8718122e" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInEarnings1_3a8617ef-a55c-4580-9881-580f74d0f83d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInEarnings1"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward_c4fa5a93-11fa-41f5-ab0f-f302be8095be" xlink:to="loc_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInEarnings1_3a8617ef-a55c-4580-9881-580f74d0f83d" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetsFairValueDisclosure_f7ad3b72-21e3-44a5-9a66-e0a1fe138866" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetsFairValueDisclosure"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/FairValueMeasurementsNarrativeDetails" xlink:type="simple" xlink:href="tgen-20241231.xsd#FairValueMeasurementsNarrativeDetails"/>
  <link:definitionLink xlink:role="http://www.tecogen.com/role/FairValueMeasurementsNarrativeDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_461d2fc3-f13c-45e7-a1fd-3756752dd849" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_b7d0c821-9e39-406b-8749-3e599f53b0c7" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_461d2fc3-f13c-45e7-a1fd-3756752dd849" xlink:to="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_b7d0c821-9e39-406b-8749-3e599f53b0c7" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetAcquisitionAxis_b500686f-955f-4b18-8aaf-7ed6668e188c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetAcquisitionAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_b7d0c821-9e39-406b-8749-3e599f53b0c7" xlink:to="loc_us-gaap_AssetAcquisitionAxis_b500686f-955f-4b18-8aaf-7ed6668e188c" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetAcquisitionDomain_b500686f-955f-4b18-8aaf-7ed6668e188c_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetAcquisitionDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_AssetAcquisitionAxis_b500686f-955f-4b18-8aaf-7ed6668e188c" xlink:to="loc_us-gaap_AssetAcquisitionDomain_b500686f-955f-4b18-8aaf-7ed6668e188c_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetAcquisitionDomain_3e25ba22-29db-433f-9f2f-d4209d86bd63" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetAcquisitionDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_AssetAcquisitionAxis_b500686f-955f-4b18-8aaf-7ed6668e188c" xlink:to="loc_us-gaap_AssetAcquisitionDomain_3e25ba22-29db-433f-9f2f-d4209d86bd63" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AegisEnergyServicesLLCMember_86ece65f-d641-49c3-86da-d5b54a2eefc1" xlink:href="tgen-20241231.xsd#tgen_AegisEnergyServicesLLCMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AssetAcquisitionDomain_3e25ba22-29db-433f-9f2f-d4209d86bd63" xlink:to="loc_tgen_AegisEnergyServicesLLCMember_86ece65f-d641-49c3-86da-d5b54a2eefc1" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MeasurementInputTypeAxis_c292c4f1-b82b-4832-88e8-f683d7e6e3d2" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_MeasurementInputTypeAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_b7d0c821-9e39-406b-8749-3e599f53b0c7" xlink:to="loc_us-gaap_MeasurementInputTypeAxis_c292c4f1-b82b-4832-88e8-f683d7e6e3d2" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MeasurementInputTypeDomain_c292c4f1-b82b-4832-88e8-f683d7e6e3d2_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_MeasurementInputTypeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_MeasurementInputTypeAxis_c292c4f1-b82b-4832-88e8-f683d7e6e3d2" xlink:to="loc_us-gaap_MeasurementInputTypeDomain_c292c4f1-b82b-4832-88e8-f683d7e6e3d2_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MeasurementInputTypeDomain_90c6dedc-7a60-419f-982a-71cb5464cdf3" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_MeasurementInputTypeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_MeasurementInputTypeAxis_c292c4f1-b82b-4832-88e8-f683d7e6e3d2" xlink:to="loc_us-gaap_MeasurementInputTypeDomain_90c6dedc-7a60-419f-982a-71cb5464cdf3" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MeasurementInputDiscountRateMember_0f99332d-d579-4a26-a0ed-eecfea4ba1a2" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_MeasurementInputDiscountRateMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_MeasurementInputTypeDomain_90c6dedc-7a60-419f-982a-71cb5464cdf3" xlink:to="loc_us-gaap_MeasurementInputDiscountRateMember_0f99332d-d579-4a26-a0ed-eecfea4ba1a2" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeAxis_bbd8764c-0d59-4965-a659-3570d7b4cb84" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_b7d0c821-9e39-406b-8749-3e599f53b0c7" xlink:to="loc_srt_RangeAxis_bbd8764c-0d59-4965-a659-3570d7b4cb84" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeMember_bbd8764c-0d59-4965-a659-3570d7b4cb84_default" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_RangeAxis_bbd8764c-0d59-4965-a659-3570d7b4cb84" xlink:to="loc_srt_RangeMember_bbd8764c-0d59-4965-a659-3570d7b4cb84_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeMember_dd9db76b-d1f6-4a2f-bde2-6a19641a72a9" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_RangeAxis_bbd8764c-0d59-4965-a659-3570d7b4cb84" xlink:to="loc_srt_RangeMember_dd9db76b-d1f6-4a2f-bde2-6a19641a72a9" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MinimumMember_7a386867-fb7e-4d49-a5a7-710bbcfdb926" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MinimumMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RangeMember_dd9db76b-d1f6-4a2f-bde2-6a19641a72a9" xlink:to="loc_srt_MinimumMember_7a386867-fb7e-4d49-a5a7-710bbcfdb926" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MaximumMember_7b35a9ac-47fc-48f5-acb2-6a5a0a6b972d" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MaximumMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RangeMember_dd9db76b-d1f6-4a2f-bde2-6a19641a72a9" xlink:to="loc_srt_MaximumMember_7b35a9ac-47fc-48f5-acb2-6a5a0a6b972d" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_IntangibleAssetsMeasurementInput_33f6b358-1600-483a-9274-85ef9765a35c" xlink:href="tgen-20241231.xsd#tgen_IntangibleAssetsMeasurementInput"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_461d2fc3-f13c-45e7-a1fd-3756752dd849" xlink:to="loc_tgen_IntangibleAssetsMeasurementInput_33f6b358-1600-483a-9274-85ef9765a35c" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_MaintenanceAgreementsApplicablePercentage_a819cc50-8127-4302-9712-0c2216e8b021" xlink:href="tgen-20241231.xsd#tgen_MaintenanceAgreementsApplicablePercentage"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_461d2fc3-f13c-45e7-a1fd-3756752dd849" xlink:to="loc_tgen_MaintenanceAgreementsApplicablePercentage_a819cc50-8127-4302-9712-0c2216e8b021" xlink:type="arc" order="1"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/SegmentsDetails" xlink:type="simple" xlink:href="tgen-20241231.xsd#SegmentsDetails"/>
  <link:definitionLink xlink:role="http://www.tecogen.com/role/SegmentsDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SegmentReportingInformationLineItems_4edb2239-356b-4112-802e-d9f1d589bb58" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SegmentReportingInformationLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable_184e1109-8738-42aa-8f6d-19a2db02eee0" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_SegmentReportingInformationLineItems_4edb2239-356b-4112-802e-d9f1d589bb58" xlink:to="loc_us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable_184e1109-8738-42aa-8f6d-19a2db02eee0" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ConsolidationItemsAxis_57f7c5b8-b278-4ea3-b295-363e3d41d1ce" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ConsolidationItemsAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable_184e1109-8738-42aa-8f6d-19a2db02eee0" xlink:to="loc_srt_ConsolidationItemsAxis_57f7c5b8-b278-4ea3-b295-363e3d41d1ce" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ConsolidationItemsDomain_57f7c5b8-b278-4ea3-b295-363e3d41d1ce_default" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ConsolidationItemsDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_ConsolidationItemsAxis_57f7c5b8-b278-4ea3-b295-363e3d41d1ce" xlink:to="loc_srt_ConsolidationItemsDomain_57f7c5b8-b278-4ea3-b295-363e3d41d1ce_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ConsolidationItemsDomain_0b542616-81a5-4f25-9c44-b2fd5fb621c3" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ConsolidationItemsDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_ConsolidationItemsAxis_57f7c5b8-b278-4ea3-b295-363e3d41d1ce" xlink:to="loc_srt_ConsolidationItemsDomain_0b542616-81a5-4f25-9c44-b2fd5fb621c3" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingSegmentsMember_2114ea97-c768-49b9-85e3-4325f47e4061" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingSegmentsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_ConsolidationItemsDomain_0b542616-81a5-4f25-9c44-b2fd5fb621c3" xlink:to="loc_us-gaap_OperatingSegmentsMember_2114ea97-c768-49b9-85e3-4325f47e4061" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IntersegmentEliminationMember_ce75556c-2708-4c1b-bf97-f311fada7f4f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IntersegmentEliminationMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_ConsolidationItemsDomain_0b542616-81a5-4f25-9c44-b2fd5fb621c3" xlink:to="loc_us-gaap_IntersegmentEliminationMember_ce75556c-2708-4c1b-bf97-f311fada7f4f" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementBusinessSegmentsAxis_2b0db2ac-331d-4a90-8d30-e01e3763737e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementBusinessSegmentsAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable_184e1109-8738-42aa-8f6d-19a2db02eee0" xlink:to="loc_us-gaap_StatementBusinessSegmentsAxis_2b0db2ac-331d-4a90-8d30-e01e3763737e" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SegmentDomain_2b0db2ac-331d-4a90-8d30-e01e3763737e_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SegmentDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_StatementBusinessSegmentsAxis_2b0db2ac-331d-4a90-8d30-e01e3763737e" xlink:to="loc_us-gaap_SegmentDomain_2b0db2ac-331d-4a90-8d30-e01e3763737e_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SegmentDomain_4ef90fd5-dba4-4066-9a8b-4519a6f26a17" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SegmentDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_StatementBusinessSegmentsAxis_2b0db2ac-331d-4a90-8d30-e01e3763737e" xlink:to="loc_us-gaap_SegmentDomain_4ef90fd5-dba4-4066-9a8b-4519a6f26a17" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ProductsandServicesMember_fe7f08d6-fc46-46ab-9282-08361a0a9d3d" xlink:href="tgen-20241231.xsd#tgen_ProductsandServicesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_SegmentDomain_4ef90fd5-dba4-4066-9a8b-4519a6f26a17" xlink:to="loc_tgen_ProductsandServicesMember_fe7f08d6-fc46-46ab-9282-08361a0a9d3d" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_EnergyProductionMember_55b1fcb5-7415-41b1-8bba-879964cd45e2" xlink:href="tgen-20241231.xsd#tgen_EnergyProductionMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_SegmentDomain_4ef90fd5-dba4-4066-9a8b-4519a6f26a17" xlink:to="loc_tgen_EnergyProductionMember_55b1fcb5-7415-41b1-8bba-879964cd45e2" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CorporateAndOtherMember_d65ad369-46f3-446e-ac4a-825a61a3fe28" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CorporateAndOtherMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_SegmentDomain_4ef90fd5-dba4-4066-9a8b-4519a6f26a17" xlink:to="loc_us-gaap_CorporateAndOtherMember_d65ad369-46f3-446e-ac4a-825a61a3fe28" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ProductsSegmentMember_b8e10ab4-ac8e-4264-b409-350c429539ad" xlink:href="tgen-20241231.xsd#tgen_ProductsSegmentMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_SegmentDomain_4ef90fd5-dba4-4066-9a8b-4519a6f26a17" xlink:to="loc_tgen_ProductsSegmentMember_b8e10ab4-ac8e-4264-b409-350c429539ad" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ServicesAndOtherSegmentMember_912414a8-4176-4fba-b153-6a06f885bf9d" xlink:href="tgen-20241231.xsd#tgen_ServicesAndOtherSegmentMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_SegmentDomain_4ef90fd5-dba4-4066-9a8b-4519a6f26a17" xlink:to="loc_tgen_ServicesAndOtherSegmentMember_912414a8-4176-4fba-b153-6a06f885bf9d" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NumberOfOperatingSegments_13847fad-71a8-4c3b-a4ad-e455004cb0d3" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NumberOfOperatingSegments"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_SegmentReportingInformationLineItems_4edb2239-356b-4112-802e-d9f1d589bb58" xlink:to="loc_us-gaap_NumberOfOperatingSegments_13847fad-71a8-4c3b-a4ad-e455004cb0d3" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_7859cb4a-d6e8-4d35-a4a6-7a45ae02b608" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_SegmentReportingInformationLineItems_4edb2239-356b-4112-802e-d9f1d589bb58" xlink:to="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_7859cb4a-d6e8-4d35-a4a6-7a45ae02b608" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CostOfGoodsAndServicesSold_2d02719e-8e06-4a78-a996-00ac12fd0dbc" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CostOfGoodsAndServicesSold"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_SegmentReportingInformationLineItems_4edb2239-356b-4112-802e-d9f1d589bb58" xlink:to="loc_us-gaap_CostOfGoodsAndServicesSold_2d02719e-8e06-4a78-a996-00ac12fd0dbc" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GrossProfit_b35f8c2c-48f0-438e-9486-831f70fe4482" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GrossProfit"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_SegmentReportingInformationLineItems_4edb2239-356b-4112-802e-d9f1d589bb58" xlink:to="loc_us-gaap_GrossProfit_b35f8c2c-48f0-438e-9486-831f70fe4482" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingExpenses_97d217e9-fd24-430d-b10c-2ed61849bb15" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingExpenses"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_SegmentReportingInformationLineItems_4edb2239-356b-4112-802e-d9f1d589bb58" xlink:to="loc_us-gaap_OperatingExpenses_97d217e9-fd24-430d-b10c-2ed61849bb15" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingIncomeLoss_4fb62776-d780-4db2-873f-2a54650c2219" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingIncomeLoss"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_SegmentReportingInformationLineItems_4edb2239-356b-4112-802e-d9f1d589bb58" xlink:to="loc_us-gaap_OperatingIncomeLoss_4fb62776-d780-4db2-873f-2a54650c2219" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Assets_9f58d520-6591-4da1-bbb3-791e6a8989ca" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Assets"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_SegmentReportingInformationLineItems_4edb2239-356b-4112-802e-d9f1d589bb58" xlink:to="loc_us-gaap_Assets_9f58d520-6591-4da1-bbb3-791e6a8989ca" xlink:type="arc" order="6"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/IncometaxesReconciliationofFederalStatutoryIncomeTaxProvisiontoCompanysActualProvisionDetails" xlink:type="simple" xlink:href="tgen-20241231.xsd#IncometaxesReconciliationofFederalStatutoryIncomeTaxProvisiontoCompanysActualProvisionDetails"/>
  <link:definitionLink xlink:role="http://www.tecogen.com/role/IncometaxesReconciliationofFederalStatutoryIncomeTaxProvisiontoCompanysActualProvisionDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_tgen_IncomeTaxDisclosureLineItems_7c3eaa17-974c-4a3a-bfd7-a4b63d3f14d8" xlink:href="tgen-20241231.xsd#tgen_IncomeTaxDisclosureLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_IncomeTaxDisclosureTable_bb91e8b3-d7f0-45c2-b3e9-89d36e552fd7" xlink:href="tgen-20241231.xsd#tgen_IncomeTaxDisclosureTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_tgen_IncomeTaxDisclosureLineItems_7c3eaa17-974c-4a3a-bfd7-a4b63d3f14d8" xlink:to="loc_tgen_IncomeTaxDisclosureTable_bb91e8b3-d7f0-45c2-b3e9-89d36e552fd7" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeStatementLocationAxis_7f61e6a8-2ec5-425c-bb42-a44e9b5b82d1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeStatementLocationAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_tgen_IncomeTaxDisclosureTable_bb91e8b3-d7f0-45c2-b3e9-89d36e552fd7" xlink:to="loc_us-gaap_IncomeStatementLocationAxis_7f61e6a8-2ec5-425c-bb42-a44e9b5b82d1" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeStatementLocationDomain_7f61e6a8-2ec5-425c-bb42-a44e9b5b82d1_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeStatementLocationDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_IncomeStatementLocationAxis_7f61e6a8-2ec5-425c-bb42-a44e9b5b82d1" xlink:to="loc_us-gaap_IncomeStatementLocationDomain_7f61e6a8-2ec5-425c-bb42-a44e9b5b82d1_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeStatementLocationDomain_f437dd8d-dbc5-44c8-aa20-88663e60b221" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeStatementLocationDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_IncomeStatementLocationAxis_7f61e6a8-2ec5-425c-bb42-a44e9b5b82d1" xlink:to="loc_us-gaap_IncomeStatementLocationDomain_f437dd8d-dbc5-44c8-aa20-88663e60b221" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_BenefitforIncomeTaxesMember_d4de1d1a-6526-4f5f-8933-03392a7d50ec" xlink:href="tgen-20241231.xsd#tgen_BenefitforIncomeTaxesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncomeStatementLocationDomain_f437dd8d-dbc5-44c8-aa20-88663e60b221" xlink:to="loc_tgen_BenefitforIncomeTaxesMember_d4de1d1a-6526-4f5f-8933-03392a7d50ec" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_b044b3c9-0784-4612-b8b4-653848754b4e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_tgen_IncomeTaxDisclosureLineItems_7c3eaa17-974c-4a3a-bfd7-a4b63d3f14d8" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_b044b3c9-0784-4612-b8b4-653848754b4e" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_0cab222c-d832-49c6-a7a5-a8590065cc12" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_tgen_IncomeTaxDisclosureLineItems_7c3eaa17-974c-4a3a-bfd7-a4b63d3f14d8" xlink:to="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_0cab222c-d832-49c6-a7a5-a8590065cc12" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate_30974b9e-eb52-4aee-9527-eba9e5852e2e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_tgen_IncomeTaxDisclosureLineItems_7c3eaa17-974c-4a3a-bfd7-a4b63d3f14d8" xlink:to="loc_us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate_30974b9e-eb52-4aee-9527-eba9e5852e2e" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxReconciliationNondeductibleExpenseImpairmentLosses_235b2273-9a75-4f7d-9c78-e902527c5e3b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxReconciliationNondeductibleExpenseImpairmentLosses"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_tgen_IncomeTaxDisclosureLineItems_7c3eaa17-974c-4a3a-bfd7-a4b63d3f14d8" xlink:to="loc_us-gaap_IncomeTaxReconciliationNondeductibleExpenseImpairmentLosses_235b2273-9a75-4f7d-9c78-e902527c5e3b" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxReconciliationNondeductibleExpenseAmortization_ccca6391-468f-46ab-a78f-5987e064fa5f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxReconciliationNondeductibleExpenseAmortization"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_tgen_IncomeTaxDisclosureLineItems_7c3eaa17-974c-4a3a-bfd7-a4b63d3f14d8" xlink:to="loc_us-gaap_IncomeTaxReconciliationNondeductibleExpenseAmortization_ccca6391-468f-46ab-a78f-5987e064fa5f" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost_2054bc3c-0cde-4564-a190-4334536fe99e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_tgen_IncomeTaxDisclosureLineItems_7c3eaa17-974c-4a3a-bfd7-a4b63d3f14d8" xlink:to="loc_us-gaap_IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost_2054bc3c-0cde-4564-a190-4334536fe99e" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxReconciliationNondeductibleExpenseOther_99d9f6a1-ff56-44b1-b5d4-1092ca4a1e0a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxReconciliationNondeductibleExpenseOther"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_tgen_IncomeTaxDisclosureLineItems_7c3eaa17-974c-4a3a-bfd7-a4b63d3f14d8" xlink:to="loc_us-gaap_IncomeTaxReconciliationNondeductibleExpenseOther_99d9f6a1-ff56-44b1-b5d4-1092ca4a1e0a" xlink:type="arc" order="6"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_EffectiveIncomeTaxRateReconciliationStateandLocalIncomeTaxesAmountCurrent_202b5cbd-2332-40c5-8197-4474374a6d66" xlink:href="tgen-20241231.xsd#tgen_EffectiveIncomeTaxRateReconciliationStateandLocalIncomeTaxesAmountCurrent"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_tgen_IncomeTaxDisclosureLineItems_7c3eaa17-974c-4a3a-bfd7-a4b63d3f14d8" xlink:to="loc_tgen_EffectiveIncomeTaxRateReconciliationStateandLocalIncomeTaxesAmountCurrent_202b5cbd-2332-40c5-8197-4474374a6d66" xlink:type="arc" order="7"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_EffectiveIncomeTaxRateReconciliationStateandLocalIncomeTaxesAmountDeferred_cc340fa4-9cfa-459c-ae52-90886dedb2b2" xlink:href="tgen-20241231.xsd#tgen_EffectiveIncomeTaxRateReconciliationStateandLocalIncomeTaxesAmountDeferred"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_tgen_IncomeTaxDisclosureLineItems_7c3eaa17-974c-4a3a-bfd7-a4b63d3f14d8" xlink:to="loc_tgen_EffectiveIncomeTaxRateReconciliationStateandLocalIncomeTaxesAmountDeferred_cc340fa4-9cfa-459c-ae52-90886dedb2b2" xlink:type="arc" order="8"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_EffectiveIncomeTaxRateReconciliationOperatingLossCarryforwardExpired_8f6c2dae-3483-43c6-ac0f-df6b59d940f5" xlink:href="tgen-20241231.xsd#tgen_EffectiveIncomeTaxRateReconciliationOperatingLossCarryforwardExpired"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_tgen_IncomeTaxDisclosureLineItems_7c3eaa17-974c-4a3a-bfd7-a4b63d3f14d8" xlink:to="loc_tgen_EffectiveIncomeTaxRateReconciliationOperatingLossCarryforwardExpired_8f6c2dae-3483-43c6-ac0f-df6b59d940f5" xlink:type="arc" order="9"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxReconciliationTaxCreditsResearch_7ebeb75c-d44a-4efb-89ad-4aaafd0714cb" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxReconciliationTaxCreditsResearch"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_tgen_IncomeTaxDisclosureLineItems_7c3eaa17-974c-4a3a-bfd7-a4b63d3f14d8" xlink:to="loc_us-gaap_IncomeTaxReconciliationTaxCreditsResearch_7ebeb75c-d44a-4efb-89ad-4aaafd0714cb" xlink:type="arc" order="10"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxReconciliationPriorYearIncomeTaxes_eb1f9f8a-de7b-47db-bbbb-81af508c5ed1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxReconciliationPriorYearIncomeTaxes"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_tgen_IncomeTaxDisclosureLineItems_7c3eaa17-974c-4a3a-bfd7-a4b63d3f14d8" xlink:to="loc_us-gaap_IncomeTaxReconciliationPriorYearIncomeTaxes_eb1f9f8a-de7b-47db-bbbb-81af508c5ed1" xlink:type="arc" order="11"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance_d1784e4d-1709-4cc2-b250-530969d8cef8" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_tgen_IncomeTaxDisclosureLineItems_7c3eaa17-974c-4a3a-bfd7-a4b63d3f14d8" xlink:to="loc_us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance_d1784e4d-1709-4cc2-b250-530969d8cef8" xlink:type="arc" order="12"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxReconciliationNondeductibleExpenseResearchAndDevelopment_71a83bf8-a685-4716-91d0-ed0e135f33db" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxReconciliationNondeductibleExpenseResearchAndDevelopment"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_tgen_IncomeTaxDisclosureLineItems_7c3eaa17-974c-4a3a-bfd7-a4b63d3f14d8" xlink:to="loc_us-gaap_IncomeTaxReconciliationNondeductibleExpenseResearchAndDevelopment_71a83bf8-a685-4716-91d0-ed0e135f33db" xlink:type="arc" order="13"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_IncomeTaxReconciliationUnbenefitedOperatingLosses_84c17081-f24a-4fd1-9f76-fdbe54792903" xlink:href="tgen-20241231.xsd#tgen_IncomeTaxReconciliationUnbenefitedOperatingLosses"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_tgen_IncomeTaxDisclosureLineItems_7c3eaa17-974c-4a3a-bfd7-a4b63d3f14d8" xlink:to="loc_tgen_IncomeTaxReconciliationUnbenefitedOperatingLosses_84c17081-f24a-4fd1-9f76-fdbe54792903" xlink:type="arc" order="14"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxExpenseBenefit_a07580bc-3bdd-4af7-98c5-feab794235e1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxExpenseBenefit"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_tgen_IncomeTaxDisclosureLineItems_7c3eaa17-974c-4a3a-bfd7-a4b63d3f14d8" xlink:to="loc_us-gaap_IncomeTaxExpenseBenefit_a07580bc-3bdd-4af7-98c5-feab794235e1" xlink:type="arc" order="15"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/IncometaxesNarrativeDetails" xlink:type="simple" xlink:href="tgen-20241231.xsd#IncometaxesNarrativeDetails"/>
  <link:definitionLink xlink:role="http://www.tecogen.com/role/IncometaxesNarrativeDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLossCarryforwardsLineItems_f9ab1764-e8ba-4483-ba8d-88eb4dce67f7" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLossCarryforwardsLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLossCarryforwardsTable_c42cbb5c-df3b-413a-865d-3e460521adad" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLossCarryforwardsTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_OperatingLossCarryforwardsLineItems_f9ab1764-e8ba-4483-ba8d-88eb4dce67f7" xlink:to="loc_us-gaap_OperatingLossCarryforwardsTable_c42cbb5c-df3b-413a-865d-3e460521adad" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_OwnershipAxis_42309622-e216-4fdd-9102-aa9377014829" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_OwnershipAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_OperatingLossCarryforwardsTable_c42cbb5c-df3b-413a-865d-3e460521adad" xlink:to="loc_srt_OwnershipAxis_42309622-e216-4fdd-9102-aa9377014829" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_OwnershipDomain_42309622-e216-4fdd-9102-aa9377014829_default" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_OwnershipDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_OwnershipAxis_42309622-e216-4fdd-9102-aa9377014829" xlink:to="loc_srt_OwnershipDomain_42309622-e216-4fdd-9102-aa9377014829_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_OwnershipDomain_394b334f-8231-4529-9483-b04ac14b87b7" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_OwnershipDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_OwnershipAxis_42309622-e216-4fdd-9102-aa9377014829" xlink:to="loc_srt_OwnershipDomain_394b334f-8231-4529-9483-b04ac14b87b7" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AmericanDgEnergyMember_df0c2bdc-6cf0-4a0e-b9b4-1fb9780caecd" xlink:href="tgen-20241231.xsd#tgen_AmericanDgEnergyMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_OwnershipDomain_394b334f-8231-4529-9483-b04ac14b87b7" xlink:to="loc_tgen_AmericanDgEnergyMember_df0c2bdc-6cf0-4a0e-b9b4-1fb9780caecd" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeStatementLocationAxis_cfc53502-7646-4e56-9100-50daabdaea1c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeStatementLocationAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_OperatingLossCarryforwardsTable_c42cbb5c-df3b-413a-865d-3e460521adad" xlink:to="loc_us-gaap_IncomeStatementLocationAxis_cfc53502-7646-4e56-9100-50daabdaea1c" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeStatementLocationDomain_cfc53502-7646-4e56-9100-50daabdaea1c_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeStatementLocationDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_IncomeStatementLocationAxis_cfc53502-7646-4e56-9100-50daabdaea1c" xlink:to="loc_us-gaap_IncomeStatementLocationDomain_cfc53502-7646-4e56-9100-50daabdaea1c_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeStatementLocationDomain_e8d2c8e1-a06a-4846-8ba4-33804605a661" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeStatementLocationDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_IncomeStatementLocationAxis_cfc53502-7646-4e56-9100-50daabdaea1c" xlink:to="loc_us-gaap_IncomeStatementLocationDomain_e8d2c8e1-a06a-4846-8ba4-33804605a661" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_BenefitforIncomeTaxesMember_6d07c93b-8aa0-43b7-926f-b8bc0964e61f" xlink:href="tgen-20241231.xsd#tgen_BenefitforIncomeTaxesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncomeStatementLocationDomain_e8d2c8e1-a06a-4846-8ba4-33804605a661" xlink:to="loc_tgen_BenefitforIncomeTaxesMember_6d07c93b-8aa0-43b7-926f-b8bc0964e61f" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxAuthorityAxis_78ec4c9a-cea4-4f62-bbc8-1e34dc2432fb" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxAuthorityAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_OperatingLossCarryforwardsTable_c42cbb5c-df3b-413a-865d-3e460521adad" xlink:to="loc_us-gaap_IncomeTaxAuthorityAxis_78ec4c9a-cea4-4f62-bbc8-1e34dc2432fb" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxAuthorityDomain_78ec4c9a-cea4-4f62-bbc8-1e34dc2432fb_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxAuthorityDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_IncomeTaxAuthorityAxis_78ec4c9a-cea4-4f62-bbc8-1e34dc2432fb" xlink:to="loc_us-gaap_IncomeTaxAuthorityDomain_78ec4c9a-cea4-4f62-bbc8-1e34dc2432fb_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxAuthorityDomain_0c65dada-9728-4337-b4f3-4d17a0ffe3c8" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxAuthorityDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_IncomeTaxAuthorityAxis_78ec4c9a-cea4-4f62-bbc8-1e34dc2432fb" xlink:to="loc_us-gaap_IncomeTaxAuthorityDomain_0c65dada-9728-4337-b4f3-4d17a0ffe3c8" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InternalRevenueServiceIRSMember_30d10c2b-e328-49e6-9734-14aa127ea3a7" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InternalRevenueServiceIRSMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncomeTaxAuthorityDomain_0c65dada-9728-4337-b4f3-4d17a0ffe3c8" xlink:to="loc_us-gaap_InternalRevenueServiceIRSMember_30d10c2b-e328-49e6-9734-14aa127ea3a7" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StateAndLocalJurisdictionMember_e1dc1c46-d8ee-4e14-859d-f413cd999c07" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StateAndLocalJurisdictionMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncomeTaxAuthorityDomain_0c65dada-9728-4337-b4f3-4d17a0ffe3c8" xlink:to="loc_us-gaap_StateAndLocalJurisdictionMember_e1dc1c46-d8ee-4e14-859d-f413cd999c07" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtInstrumentAxis_26445bcc-ee74-4255-b538-17c72fc9581a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_OperatingLossCarryforwardsTable_c42cbb5c-df3b-413a-865d-3e460521adad" xlink:to="loc_us-gaap_DebtInstrumentAxis_26445bcc-ee74-4255-b538-17c72fc9581a" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtInstrumentNameDomain_26445bcc-ee74-4255-b538-17c72fc9581a_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_DebtInstrumentAxis_26445bcc-ee74-4255-b538-17c72fc9581a" xlink:to="loc_us-gaap_DebtInstrumentNameDomain_26445bcc-ee74-4255-b538-17c72fc9581a_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtInstrumentNameDomain_42205817-6c83-4c50-9333-73a9f6a9adab" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_DebtInstrumentAxis_26445bcc-ee74-4255-b538-17c72fc9581a" xlink:to="loc_us-gaap_DebtInstrumentNameDomain_42205817-6c83-4c50-9333-73a9f6a9adab" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_PPPLoanProgramMember_02cb3705-dca8-48d8-8b15-08df89f8b40d" xlink:href="tgen-20241231.xsd#tgen_PPPLoanProgramMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DebtInstrumentNameDomain_42205817-6c83-4c50-9333-73a9f6a9adab" xlink:to="loc_tgen_PPPLoanProgramMember_02cb3705-dca8-48d8-8b15-08df89f8b40d" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LineOfCreditFacilityAxis_ed7d797f-a996-4e3e-83a4-e614d163855d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LineOfCreditFacilityAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_OperatingLossCarryforwardsTable_c42cbb5c-df3b-413a-865d-3e460521adad" xlink:to="loc_us-gaap_LineOfCreditFacilityAxis_ed7d797f-a996-4e3e-83a4-e614d163855d" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LineOfCreditFacilityLenderDomain_ed7d797f-a996-4e3e-83a4-e614d163855d_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LineOfCreditFacilityLenderDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_LineOfCreditFacilityAxis_ed7d797f-a996-4e3e-83a4-e614d163855d" xlink:to="loc_us-gaap_LineOfCreditFacilityLenderDomain_ed7d797f-a996-4e3e-83a4-e614d163855d_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LineOfCreditFacilityLenderDomain_25de42d0-a934-47e5-9177-16eb660663b8" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LineOfCreditFacilityLenderDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_LineOfCreditFacilityAxis_ed7d797f-a996-4e3e-83a4-e614d163855d" xlink:to="loc_us-gaap_LineOfCreditFacilityLenderDomain_25de42d0-a934-47e5-9177-16eb660663b8" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_WebsterBusinessCreditCorporationMember_1641e5d7-85c9-4958-9e88-75db06fe0fdf" xlink:href="tgen-20241231.xsd#tgen_WebsterBusinessCreditCorporationMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LineOfCreditFacilityLenderDomain_25de42d0-a934-47e5-9177-16eb660663b8" xlink:to="loc_tgen_WebsterBusinessCreditCorporationMember_1641e5d7-85c9-4958-9e88-75db06fe0fdf" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLossCarryforwards_8de1c610-00a8-49cb-ac56-513a7d11b24e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLossCarryforwards"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_OperatingLossCarryforwardsLineItems_f9ab1764-e8ba-4483-ba8d-88eb4dce67f7" xlink:to="loc_us-gaap_OperatingLossCarryforwards_8de1c610-00a8-49cb-ac56-513a7d11b24e" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_OperatingLossCarryforwardsExpired_b7bc2cc6-84db-4ea1-8e1b-14c7e9921968" xlink:href="tgen-20241231.xsd#tgen_OperatingLossCarryforwardsExpired"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_OperatingLossCarryforwardsLineItems_f9ab1764-e8ba-4483-ba8d-88eb4dce67f7" xlink:to="loc_tgen_OperatingLossCarryforwardsExpired_b7bc2cc6-84db-4ea1-8e1b-14c7e9921968" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_EffectiveIncomeTaxRateReconciliationOperatingLossCarryforwardExpired_a88592f4-b7ab-4660-9cc2-39c256723a51" xlink:href="tgen-20241231.xsd#tgen_EffectiveIncomeTaxRateReconciliationOperatingLossCarryforwardExpired"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_OperatingLossCarryforwardsLineItems_f9ab1764-e8ba-4483-ba8d-88eb4dce67f7" xlink:to="loc_tgen_EffectiveIncomeTaxRateReconciliationOperatingLossCarryforwardExpired_a88592f4-b7ab-4660-9cc2-39c256723a51" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsSubjectToExpiration_c25043e5-8635-4bb0-8040-85f2ca517edd" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsSubjectToExpiration"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_OperatingLossCarryforwardsLineItems_f9ab1764-e8ba-4483-ba8d-88eb4dce67f7" xlink:to="loc_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsSubjectToExpiration_c25043e5-8635-4bb0-8040-85f2ca517edd" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsNotSubjectToExpiration_1f7990b2-a8ff-4d4c-897e-a96e812f4d0f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsNotSubjectToExpiration"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_OperatingLossCarryforwardsLineItems_f9ab1764-e8ba-4483-ba8d-88eb4dce67f7" xlink:to="loc_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsNotSubjectToExpiration_1f7990b2-a8ff-4d4c-897e-a96e812f4d0f" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance_50af6964-34b0-4c69-a306-223f9d07c210" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_OperatingLossCarryforwardsLineItems_f9ab1764-e8ba-4483-ba8d-88eb4dce67f7" xlink:to="loc_us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance_50af6964-34b0-4c69-a306-223f9d07c210" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NotesPayableToBank_29858c59-b0a8-4bd2-b58a-2dbf35ca4fd0" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NotesPayableToBank"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_OperatingLossCarryforwardsLineItems_f9ab1764-e8ba-4483-ba8d-88eb4dce67f7" xlink:to="loc_us-gaap_NotesPayableToBank_29858c59-b0a8-4bd2-b58a-2dbf35ca4fd0" xlink:type="arc" order="6"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_DebtInstrumentPrincipalDecreaseForgiveness_12f92d74-e6d8-4f0c-8dec-16b042c5a102" xlink:href="tgen-20241231.xsd#tgen_DebtInstrumentPrincipalDecreaseForgiveness"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_OperatingLossCarryforwardsLineItems_f9ab1764-e8ba-4483-ba8d-88eb4dce67f7" xlink:to="loc_tgen_DebtInstrumentPrincipalDecreaseForgiveness_12f92d74-e6d8-4f0c-8dec-16b042c5a102" xlink:type="arc" order="7"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtInstrumentDecreaseForgiveness_6c367754-049b-47fb-bb31-4ebc246a455a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentDecreaseForgiveness"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_OperatingLossCarryforwardsLineItems_f9ab1764-e8ba-4483-ba8d-88eb4dce67f7" xlink:to="loc_us-gaap_DebtInstrumentDecreaseForgiveness_6c367754-049b-47fb-bb31-4ebc246a455a" xlink:type="arc" order="8"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_DebtInstrumentForgivenessAccruedInterest_501e1d47-7114-4271-a7c2-e24b191e300f" xlink:href="tgen-20241231.xsd#tgen_DebtInstrumentForgivenessAccruedInterest"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_OperatingLossCarryforwardsLineItems_f9ab1764-e8ba-4483-ba8d-88eb4dce67f7" xlink:to="loc_tgen_DebtInstrumentForgivenessAccruedInterest_501e1d47-7114-4271-a7c2-e24b191e300f" xlink:type="arc" order="9"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsidiaryOrEquityMethodInvesteeCumulativePercentageOwnershipAfterAllTransactions_e98a9279-df01-4783-8e05-4ff38873093a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsidiaryOrEquityMethodInvesteeCumulativePercentageOwnershipAfterAllTransactions"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_OperatingLossCarryforwardsLineItems_f9ab1764-e8ba-4483-ba8d-88eb4dce67f7" xlink:to="loc_us-gaap_SubsidiaryOrEquityMethodInvesteeCumulativePercentageOwnershipAfterAllTransactions_e98a9279-df01-4783-8e05-4ff38873093a" xlink:type="arc" order="10"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AcquisitionAnnualNOLLimitationAmount_66841d14-9f29-4fba-a9be-848b1da09da6" xlink:href="tgen-20241231.xsd#tgen_AcquisitionAnnualNOLLimitationAmount"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_OperatingLossCarryforwardsLineItems_f9ab1764-e8ba-4483-ba8d-88eb4dce67f7" xlink:to="loc_tgen_AcquisitionAnnualNOLLimitationAmount_66841d14-9f29-4fba-a9be-848b1da09da6" xlink:type="arc" order="11"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AcquisitionNetOperatingLossLimitationPeriod_01febf5c-691c-47a1-9557-2482e04a459f" xlink:href="tgen-20241231.xsd#tgen_AcquisitionNetOperatingLossLimitationPeriod"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_OperatingLossCarryforwardsLineItems_f9ab1764-e8ba-4483-ba8d-88eb4dce67f7" xlink:to="loc_tgen_AcquisitionNetOperatingLossLimitationPeriod_01febf5c-691c-47a1-9557-2482e04a459f" xlink:type="arc" order="12"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/SubsequentEventsDetails" xlink:type="simple" xlink:href="tgen-20241231.xsd#SubsequentEventsDetails"/>
  <link:definitionLink xlink:role="http://www.tecogen.com/role/SubsequentEventsDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventLineItems_4cc84077-1022-4172-8c65-92205467c5fa" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsequentEventLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventTable_ae73e9eb-7b9a-4c36-aab8-bef680cb26ad" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsequentEventTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_SubsequentEventLineItems_4cc84077-1022-4172-8c65-92205467c5fa" xlink:to="loc_us-gaap_SubsequentEventTable_ae73e9eb-7b9a-4c36-aab8-bef680cb26ad" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventTypeAxis_dfe971c6-00b7-4dd5-9e3d-e39357fb7c18" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsequentEventTypeAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_SubsequentEventTable_ae73e9eb-7b9a-4c36-aab8-bef680cb26ad" xlink:to="loc_us-gaap_SubsequentEventTypeAxis_dfe971c6-00b7-4dd5-9e3d-e39357fb7c18" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventTypeDomain_dfe971c6-00b7-4dd5-9e3d-e39357fb7c18_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsequentEventTypeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_SubsequentEventTypeAxis_dfe971c6-00b7-4dd5-9e3d-e39357fb7c18" xlink:to="loc_us-gaap_SubsequentEventTypeDomain_dfe971c6-00b7-4dd5-9e3d-e39357fb7c18_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventTypeDomain_57288b0f-7fd8-4062-b76c-d2772ed6f093" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsequentEventTypeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_SubsequentEventTypeAxis_dfe971c6-00b7-4dd5-9e3d-e39357fb7c18" xlink:to="loc_us-gaap_SubsequentEventTypeDomain_57288b0f-7fd8-4062-b76c-d2772ed6f093" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventMember_4b0b175e-402a-4406-b797-9bd985ca5ad4" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsequentEventMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_SubsequentEventTypeDomain_57288b0f-7fd8-4062-b76c-d2772ed6f093" xlink:to="loc_us-gaap_SubsequentEventMember_4b0b175e-402a-4406-b797-9bd985ca5ad4" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_LitigationCaseAxis_b9147c41-3268-4a12-a75c-1f6cb5b4e9d2" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_LitigationCaseAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_SubsequentEventTable_ae73e9eb-7b9a-4c36-aab8-bef680cb26ad" xlink:to="loc_srt_LitigationCaseAxis_b9147c41-3268-4a12-a75c-1f6cb5b4e9d2" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_LitigationCaseTypeDomain_b9147c41-3268-4a12-a75c-1f6cb5b4e9d2_default" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_LitigationCaseTypeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_LitigationCaseAxis_b9147c41-3268-4a12-a75c-1f6cb5b4e9d2" xlink:to="loc_srt_LitigationCaseTypeDomain_b9147c41-3268-4a12-a75c-1f6cb5b4e9d2_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_LitigationCaseTypeDomain_9194d42d-4a69-4da1-a974-baf267d3d2b2" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_LitigationCaseTypeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_LitigationCaseAxis_b9147c41-3268-4a12-a75c-1f6cb5b4e9d2" xlink:to="loc_srt_LitigationCaseTypeDomain_9194d42d-4a69-4da1-a974-baf267d3d2b2" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_TheCorporationOfTheTownOfMiltonMiltonEnergyGenerationSolutionsInc.AndMiltonHydroDistributionIncMember_8edfb9c6-5891-4454-a5a8-b67aea0f736d" xlink:href="tgen-20241231.xsd#tgen_TheCorporationOfTheTownOfMiltonMiltonEnergyGenerationSolutionsInc.AndMiltonHydroDistributionIncMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_LitigationCaseTypeDomain_9194d42d-4a69-4da1-a974-baf267d3d2b2" xlink:to="loc_tgen_TheCorporationOfTheTownOfMiltonMiltonEnergyGenerationSolutionsInc.AndMiltonHydroDistributionIncMember_8edfb9c6-5891-4454-a5a8-b67aea0f736d" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyTransactionAxis_e9ef4e83-cb72-4206-b221-ae647f875720" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RelatedPartyTransactionAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_SubsequentEventTable_ae73e9eb-7b9a-4c36-aab8-bef680cb26ad" xlink:to="loc_us-gaap_RelatedPartyTransactionAxis_e9ef4e83-cb72-4206-b221-ae647f875720" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyTransactionDomain_e9ef4e83-cb72-4206-b221-ae647f875720_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RelatedPartyTransactionDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_RelatedPartyTransactionAxis_e9ef4e83-cb72-4206-b221-ae647f875720" xlink:to="loc_us-gaap_RelatedPartyTransactionDomain_e9ef4e83-cb72-4206-b221-ae647f875720_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyTransactionDomain_56e0db88-b56d-4624-b551-12523965b167" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RelatedPartyTransactionDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_RelatedPartyTransactionAxis_e9ef4e83-cb72-4206-b221-ae647f875720" xlink:to="loc_us-gaap_RelatedPartyTransactionDomain_56e0db88-b56d-4624-b551-12523965b167" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AverageClosingSharePriceMember_57b6442f-c234-430c-8c76-be61d93558b9" xlink:href="tgen-20241231.xsd#tgen_AverageClosingSharePriceMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_RelatedPartyTransactionDomain_56e0db88-b56d-4624-b551-12523965b167" xlink:to="loc_tgen_AverageClosingSharePriceMember_57b6442f-c234-430c-8c76-be61d93558b9" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis_461d3c54-e6d3-418c-8f26-6c4c493d0c5e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RelatedPartyTransactionsByRelatedPartyAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_SubsequentEventTable_ae73e9eb-7b9a-4c36-aab8-bef680cb26ad" xlink:to="loc_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis_461d3c54-e6d3-418c-8f26-6c4c493d0c5e" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyDomain_461d3c54-e6d3-418c-8f26-6c4c493d0c5e_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RelatedPartyDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis_461d3c54-e6d3-418c-8f26-6c4c493d0c5e" xlink:to="loc_us-gaap_RelatedPartyDomain_461d3c54-e6d3-418c-8f26-6c4c493d0c5e_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyDomain_a1f6a859-c971-4e5e-8f9d-d07da09f5154" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RelatedPartyDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis_461d3c54-e6d3-418c-8f26-6c4c493d0c5e" xlink:to="loc_us-gaap_RelatedPartyDomain_a1f6a859-c971-4e5e-8f9d-d07da09f5154" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_DirectorMember_e6665629-5eb6-49f3-bac6-dea9f0cf1d05" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_DirectorMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_RelatedPartyDomain_a1f6a859-c971-4e5e-8f9d-d07da09f5154" xlink:to="loc_srt_DirectorMember_e6665629-5eb6-49f3-bac6-dea9f0cf1d05" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LossContingencyDamagesAwardedValue_7d347083-4b82-4d2c-bfa8-aefa95d2bdff" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LossContingencyDamagesAwardedValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_SubsequentEventLineItems_4cc84077-1022-4172-8c65-92205467c5fa" xlink:to="loc_us-gaap_LossContingencyDamagesAwardedValue_7d347083-4b82-4d2c-bfa8-aefa95d2bdff" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LossContingencyDamagesPaidValue_71c0c9ba-2739-4710-8b08-67b1e5e58055" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LossContingencyDamagesPaidValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_SubsequentEventLineItems_4cc84077-1022-4172-8c65-92205467c5fa" xlink:to="loc_us-gaap_LossContingencyDamagesPaidValue_71c0c9ba-2739-4710-8b08-67b1e5e58055" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_LitigationSettlementFeeExpenseBenefit_676bc263-adb8-456a-9f9f-53a5ac164911" xlink:href="tgen-20241231.xsd#tgen_LitigationSettlementFeeExpenseBenefit"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_SubsequentEventLineItems_4cc84077-1022-4172-8c65-92205467c5fa" xlink:to="loc_tgen_LitigationSettlementFeeExpenseBenefit_676bc263-adb8-456a-9f9f-53a5ac164911" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_SalesAndMarketingAgreementTerm_ab8c5d35-b395-4766-9dc7-e8da84e0738d" xlink:href="tgen-20241231.xsd#tgen_SalesAndMarketingAgreementTerm"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_SubsequentEventLineItems_4cc84077-1022-4172-8c65-92205467c5fa" xlink:to="loc_tgen_SalesAndMarketingAgreementTerm_ab8c5d35-b395-4766-9dc7-e8da84e0738d" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_RelatedPartyTransactionPeriod_2200964a-813c-403d-acab-5f94ef01ac62" xlink:href="tgen-20241231.xsd#tgen_RelatedPartyTransactionPeriod"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_SubsequentEventLineItems_4cc84077-1022-4172-8c65-92205467c5fa" xlink:to="loc_tgen_RelatedPartyTransactionPeriod_2200964a-813c-403d-acab-5f94ef01ac62" xlink:type="arc" order="4"/>
  </link:definitionLink>
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.LAB
<SEQUENCE>10
<FILENAME>tgen-20241231_lab.xml
<DESCRIPTION>XBRL TAXONOMY EXTENSION LABEL LINKBASE DOCUMENT
<TEXT>
<XBRL>
<?xml version="1.0" encoding="UTF-8"?>

<!--XBRL Document Created with the Workiva Platform-->
<!--Copyright 2025 Workiva-->
<!--r:27a45c8e-ccb7-4ee0-baf8-e027f6202253,g:a67c4460-f12d-456b-86fe-b4f9ec620b6c-->
<link:linkbase xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.xbrl.org/2003/linkbase http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd">
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedPeriodStartLabel" xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedPeriodStartLabel"/>
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/netLabel" xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/net-2009-12-16.xsd#netLabel"/>
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedNetLabel" xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedNetLabel"/>
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedTerseLabel"/>
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedPeriodEndLabel" xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedPeriodEndLabel"/>
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedLabel"/>
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedTotalLabel" xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedTotalLabel"/>
  <link:labelLink xlink:role="http://www.xbrl.org/2003/role/link" xlink:type="extended">
    <link:label id="lab_tgen_EnergyProductionAgreementsSiteDecommissioningCosts_97ba8c51-5758-4788-b190-f224206c4998_terseLabel_en-US" xlink:label="lab_tgen_EnergyProductionAgreementsSiteDecommissioningCosts" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Site decommissioning costs</link:label>
    <link:label id="lab_tgen_EnergyProductionAgreementsSiteDecommissioningCosts_label_en-US" xlink:label="lab_tgen_EnergyProductionAgreementsSiteDecommissioningCosts" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Energy Production Agreements, Site Decommissioning Costs</link:label>
    <link:label id="lab_tgen_EnergyProductionAgreementsSiteDecommissioningCosts_documentation_en-US" xlink:label="lab_tgen_EnergyProductionAgreementsSiteDecommissioningCosts" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Energy Production Agreements, Site Decommissioning Costs</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_EnergyProductionAgreementsSiteDecommissioningCosts" xlink:href="tgen-20241231.xsd#tgen_EnergyProductionAgreementsSiteDecommissioningCosts"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_EnergyProductionAgreementsSiteDecommissioningCosts" xlink:to="lab_tgen_EnergyProductionAgreementsSiteDecommissioningCosts" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_DefinedContributionPlanMaximumQuarterlyEmployerMatchingContributionPerParticipant_169d2a85-fd46-4a82-8feb-46f302eee1d9_terseLabel_en-US" xlink:label="lab_tgen_DefinedContributionPlanMaximumQuarterlyEmployerMatchingContributionPerParticipant" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Maximum quarterly employer matching contribution per participant</link:label>
    <link:label id="lab_tgen_DefinedContributionPlanMaximumQuarterlyEmployerMatchingContributionPerParticipant_label_en-US" xlink:label="lab_tgen_DefinedContributionPlanMaximumQuarterlyEmployerMatchingContributionPerParticipant" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Defined Contribution Plan, Maximum Quarterly Employer Matching Contribution Per Participant</link:label>
    <link:label id="lab_tgen_DefinedContributionPlanMaximumQuarterlyEmployerMatchingContributionPerParticipant_documentation_en-US" xlink:label="lab_tgen_DefinedContributionPlanMaximumQuarterlyEmployerMatchingContributionPerParticipant" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Defined Contribution Plan, Maximum Quarterly Employer Matching Contribution Per Participant</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_DefinedContributionPlanMaximumQuarterlyEmployerMatchingContributionPerParticipant" xlink:href="tgen-20241231.xsd#tgen_DefinedContributionPlanMaximumQuarterlyEmployerMatchingContributionPerParticipant"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_DefinedContributionPlanMaximumQuarterlyEmployerMatchingContributionPerParticipant" xlink:to="lab_tgen_DefinedContributionPlanMaximumQuarterlyEmployerMatchingContributionPerParticipant" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_AssetAcquisitionConsiderationTransferredNonCashAccountsPayable_6fe808cb-ee1c-4178-9156-896e83529a1b_terseLabel_en-US" xlink:label="lab_tgen_AssetAcquisitionConsiderationTransferredNonCashAccountsPayable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Accounts payable assumed</link:label>
    <link:label id="lab_tgen_AssetAcquisitionConsiderationTransferredNonCashAccountsPayable_label_en-US" xlink:label="lab_tgen_AssetAcquisitionConsiderationTransferredNonCashAccountsPayable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Asset Acquisition, Consideration Transferred, Non-Cash, Accounts Payable</link:label>
    <link:label id="lab_tgen_AssetAcquisitionConsiderationTransferredNonCashAccountsPayable_documentation_en-US" xlink:label="lab_tgen_AssetAcquisitionConsiderationTransferredNonCashAccountsPayable" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Asset Acquisition, Consideration Transferred, Non-Cash, Accounts Payable</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AssetAcquisitionConsiderationTransferredNonCashAccountsPayable" xlink:href="tgen-20241231.xsd#tgen_AssetAcquisitionConsiderationTransferredNonCashAccountsPayable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_AssetAcquisitionConsiderationTransferredNonCashAccountsPayable" xlink:to="lab_tgen_AssetAcquisitionConsiderationTransferredNonCashAccountsPayable" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansGrantedExercisePriceRangeUpperRangeLimit_7d99588b-c8f8-4413-9943-972b074dbe53_verboseLabel_en-US" xlink:label="lab_tgen_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansGrantedExercisePriceRangeUpperRangeLimit" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Options granted, exercise price range, upper limit (usd per share)</link:label>
    <link:label id="lab_tgen_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansGrantedExercisePriceRangeUpperRangeLimit_0fcc4e48-5f64-48d8-9916-1b7879b2e352_terseLabel_en-US" xlink:label="lab_tgen_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansGrantedExercisePriceRangeUpperRangeLimit" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Granted, Exercise Price Upper Range Limit (usd per share)</link:label>
    <link:label id="lab_tgen_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansGrantedExercisePriceRangeUpperRangeLimit_label_en-US" xlink:label="lab_tgen_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansGrantedExercisePriceRangeUpperRangeLimit" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share Based Compensation Shares Authorized Under Stock Option Plans, Granted, Exercise Price Range, Upper Range Limit</link:label>
    <link:label id="lab_tgen_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansGrantedExercisePriceRangeUpperRangeLimit_documentation_en-US" xlink:label="lab_tgen_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansGrantedExercisePriceRangeUpperRangeLimit" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Upper range of Exercise price per share of stock options granted during the period.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansGrantedExercisePriceRangeUpperRangeLimit" xlink:href="tgen-20241231.xsd#tgen_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansGrantedExercisePriceRangeUpperRangeLimit"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansGrantedExercisePriceRangeUpperRangeLimit" xlink:to="lab_tgen_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansGrantedExercisePriceRangeUpperRangeLimit" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_c09184f0-67ea-4348-be0c-7521474af516_terseLabel_en-US" xlink:label="lab_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Adjustments to reconcile net loss to net cash used in operating activities:</link:label>
    <link:label id="lab_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_label_en-US" xlink:label="lab_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Adjustments to Reconcile Net Income (Loss) to Cash Provided by (Used in) Operating Activities [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="lab_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate_9f61770c-a090-4304-b7ff-0d077ab050c8_verboseLabel_en-US" xlink:label="lab_us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Expected tax at 21%</link:label>
    <link:label id="lab_us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate_label_en-US" xlink:label="lab_us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Effective Income Tax Rate Reconciliation at Federal Statutory Income Tax Rate, Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate" xlink:to="lab_us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_CoverAbstract_label_en-US" xlink:label="lab_dei_CoverAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Cover [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_CoverAbstract" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_CoverAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_CoverAbstract" xlink:to="lab_dei_CoverAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive_c12f7d8b-4a7b-441d-8e9b-11bc41cedf13_terseLabel_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Thereafter</link:label>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive_label_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Lessee, Operating Lease, Liability, to be Paid, after Year Five</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" xlink:to="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect_e64a345e-a582-4591-b41b-d8036091a079_totalLabel_en-US" xlink:label="lab_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Change in cash and cash equivalents</link:label>
    <link:label id="lab_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect_049aee76-801d-4cb2-b885-5d0e6325e4e4_terseLabel_en-US" xlink:label="lab_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Decrease in cash and cash equivalents</link:label>
    <link:label id="lab_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect_label_en-US" xlink:label="lab_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Cash, Cash Equivalents, Restricted Cash, and Restricted Cash Equivalents, Period Increase (Decrease), Including Exchange Rate Effect</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:to="lab_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_InProcessResearchAndDevelopmentMember_70ae2229-bfd6-400f-9659-52ea7077dd87_verboseLabel_en-US" xlink:label="lab_us-gaap_InProcessResearchAndDevelopmentMember" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">In process R&amp;D</link:label>
    <link:label id="lab_us-gaap_InProcessResearchAndDevelopmentMember_label_en-US" xlink:label="lab_us-gaap_InProcessResearchAndDevelopmentMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">In Process Research and Development [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InProcessResearchAndDevelopmentMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InProcessResearchAndDevelopmentMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_InProcessResearchAndDevelopmentMember" xlink:to="lab_us-gaap_InProcessResearchAndDevelopmentMember" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_OperatingLossCarryforwardsExpired_9792cae8-fc0b-4058-b632-fdb7000a5ab8_terseLabel_en-US" xlink:label="lab_tgen_OperatingLossCarryforwardsExpired" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Operating loss carryforwards, expired</link:label>
    <link:label id="lab_tgen_OperatingLossCarryforwardsExpired_label_en-US" xlink:label="lab_tgen_OperatingLossCarryforwardsExpired" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Operating Loss Carryforwards, Expired</link:label>
    <link:label id="lab_tgen_OperatingLossCarryforwardsExpired_documentation_en-US" xlink:label="lab_tgen_OperatingLossCarryforwardsExpired" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Operating Loss Carryforwards, Expired</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_OperatingLossCarryforwardsExpired" xlink:href="tgen-20241231.xsd#tgen_OperatingLossCarryforwardsExpired"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_OperatingLossCarryforwardsExpired" xlink:to="lab_tgen_OperatingLossCarryforwardsExpired" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_MeasurementInputDiscountRateMember_490e259a-4be1-449c-961f-0598cd502c1e_terseLabel_en-US" xlink:label="lab_us-gaap_MeasurementInputDiscountRateMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Measurement Input, Discount Rate</link:label>
    <link:label id="lab_us-gaap_MeasurementInputDiscountRateMember_label_en-US" xlink:label="lab_us-gaap_MeasurementInputDiscountRateMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Measurement Input, Discount Rate [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MeasurementInputDiscountRateMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_MeasurementInputDiscountRateMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_MeasurementInputDiscountRateMember" xlink:to="lab_us-gaap_MeasurementInputDiscountRateMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock_d22b4d75-8999-4364-8c87-128d230c22ea_terseLabel_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Future Minimum Lease Commitments</link:label>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock_label_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Lessee, Operating Lease, Liability, to be Paid, Maturity [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock" xlink:to="lab_us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DeferredTaxAssetsInventory_3e226fb2-b5c4-4933-b103-4427a3e5cc8b_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsInventory" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Inventory</link:label>
    <link:label id="lab_us-gaap_DeferredTaxAssetsInventory_label_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsInventory" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred Tax Assets, Inventory</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsInventory" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsInventory"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxAssetsInventory" xlink:to="lab_us-gaap_DeferredTaxAssetsInventory" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncomeTaxAuthorityDomain_57154b66-4219-4ace-9f2c-fc4326f90aa3_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeTaxAuthorityDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Income Tax Jurisdiction [Domain]</link:label>
    <link:label id="lab_us-gaap_IncomeTaxAuthorityDomain_label_en-US" xlink:label="lab_us-gaap_IncomeTaxAuthorityDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Income Tax Jurisdiction [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxAuthorityDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxAuthorityDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeTaxAuthorityDomain" xlink:to="lab_us-gaap_IncomeTaxAuthorityDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_NonNeosMember_terseLabel_en-US" xlink:label="lab_ecd_NonNeosMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Non-NEOs</link:label>
    <link:label id="lab_ecd_NonNeosMember_label_en-US" xlink:label="lab_ecd_NonNeosMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Non-NEOs [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_NonNeosMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_NonNeosMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_NonNeosMember" xlink:to="lab_ecd_NonNeosMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense_79551eb3-0210-45e2-b022-a4471cc00782_terseLabel_en-US" xlink:label="lab_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Tax benefit related to stock-based compensation expense</link:label>
    <link:label id="lab_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense_label_en-US" xlink:label="lab_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Payment Arrangement, Expense, Tax Benefit</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense" xlink:to="lab_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_EarlR.LewisIIIMember_ebd3875a-0d84-4b15-88a6-31372f119efb_terseLabel_en-US" xlink:label="lab_tgen_EarlR.LewisIIIMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Earl R. Lewis, III</link:label>
    <link:label id="lab_tgen_EarlR.LewisIIIMember_label_en-US" xlink:label="lab_tgen_EarlR.LewisIIIMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Earl R. Lewis, III [Member]</link:label>
    <link:label id="lab_tgen_EarlR.LewisIIIMember_documentation_en-US" xlink:label="lab_tgen_EarlR.LewisIIIMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Earl R. Lewis, III</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_EarlR.LewisIIIMember" xlink:href="tgen-20241231.xsd#tgen_EarlR.LewisIIIMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_EarlR.LewisIIIMember" xlink:to="lab_tgen_EarlR.LewisIIIMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy_aa72290b-1540-4f0a-870d-e103a18d2146_terseLabel_en-US" xlink:label="lab_us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Goodwill</link:label>
    <link:label id="lab_us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy_label_en-US" xlink:label="lab_us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Goodwill and Intangible Assets, Goodwill, Policy [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy" xlink:to="lab_us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_PercentageOfOwnedJointVenture_0a5cd1e8-9599-4855-bcd2-aa4289be3e74_terseLabel_en-US" xlink:label="lab_tgen_PercentageOfOwnedJointVenture" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Joint venture, percent owned</link:label>
    <link:label id="lab_tgen_PercentageOfOwnedJointVenture_label_en-US" xlink:label="lab_tgen_PercentageOfOwnedJointVenture" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Percentage Of Owned Joint Venture</link:label>
    <link:label id="lab_tgen_PercentageOfOwnedJointVenture_documentation_en-US" xlink:label="lab_tgen_PercentageOfOwnedJointVenture" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Percentage Of Owned Joint Venture.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_PercentageOfOwnedJointVenture" xlink:href="tgen-20241231.xsd#tgen_PercentageOfOwnedJointVenture"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_PercentageOfOwnedJointVenture" xlink:to="lab_tgen_PercentageOfOwnedJointVenture" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_IncomeTaxDisclosureTable_e7788f77-56e2-467e-97f6-84b26b46c58e_terseLabel_en-US" xlink:label="lab_tgen_IncomeTaxDisclosureTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Income Tax Disclosure [Table]</link:label>
    <link:label id="lab_tgen_IncomeTaxDisclosureTable_label_en-US" xlink:label="lab_tgen_IncomeTaxDisclosureTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Income Tax Disclosure [Table]</link:label>
    <link:label id="lab_tgen_IncomeTaxDisclosureTable_documentation_en-US" xlink:label="lab_tgen_IncomeTaxDisclosureTable" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Income Tax Disclosure [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_IncomeTaxDisclosureTable" xlink:href="tgen-20241231.xsd#tgen_IncomeTaxDisclosureTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_IncomeTaxDisclosureTable" xlink:to="lab_tgen_IncomeTaxDisclosureTable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent_6db5fb76-9048-4b6b-b61d-e567d2673013_terseLabel_en-US" xlink:label="lab_us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Allowance for doubtful accounts</link:label>
    <link:label id="lab_us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent_label_en-US" xlink:label="lab_us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accounts Receivable, Allowance for Credit Loss, Current</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent" xlink:to="lab_us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_EnergyProductionMember_e6bc3c86-46c1-498a-b1fa-eafb8347ba15_terseLabel_en-US" xlink:label="lab_tgen_EnergyProductionMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Energy Production</link:label>
    <link:label id="lab_tgen_EnergyProductionMember_label_en-US" xlink:label="lab_tgen_EnergyProductionMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Energy Production [Member]</link:label>
    <link:label id="lab_tgen_EnergyProductionMember_documentation_en-US" xlink:label="lab_tgen_EnergyProductionMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Energy Production [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_EnergyProductionMember" xlink:href="tgen-20241231.xsd#tgen_EnergyProductionMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_EnergyProductionMember" xlink:to="lab_tgen_EnergyProductionMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_MinorityInterestDecreaseFromDistributionsToNoncontrollingInterestHolders_1b77dbbc-28ad-4466-a560-3b263dbf3f27_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_MinorityInterestDecreaseFromDistributionsToNoncontrollingInterestHolders" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Distributions to noncontrolling interest</link:label>
    <link:label id="lab_us-gaap_MinorityInterestDecreaseFromDistributionsToNoncontrollingInterestHolders_label_en-US" xlink:label="lab_us-gaap_MinorityInterestDecreaseFromDistributionsToNoncontrollingInterestHolders" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Noncontrolling Interest, Decrease from Distributions to Noncontrolling Interest Holders</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MinorityInterestDecreaseFromDistributionsToNoncontrollingInterestHolders" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_MinorityInterestDecreaseFromDistributionsToNoncontrollingInterestHolders"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_MinorityInterestDecreaseFromDistributionsToNoncontrollingInterestHolders" xlink:to="lab_us-gaap_MinorityInterestDecreaseFromDistributionsToNoncontrollingInterestHolders" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationTable_7de78fb0-0436-4739-8e0b-58f342617e2c_terseLabel_en-US" xlink:label="lab_us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Fair Value, Assets Measured on Recurring Basis, Unobservable Input Reconciliation [Table]</link:label>
    <link:label id="lab_us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationTable_label_en-US" xlink:label="lab_us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Fair Value, Assets Measured on Recurring Basis, Unobservable Input Reconciliation [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationTable" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationTable" xlink:to="lab_us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationTable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncreaseDecreaseInAccountsReceivable_22864db8-0d08-4dd7-865f-a5cf4832a533_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInAccountsReceivable" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Accounts receivable</link:label>
    <link:label id="lab_us-gaap_IncreaseDecreaseInAccountsReceivable_label_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInAccountsReceivable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Increase (Decrease) in Accounts Receivable</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInAccountsReceivable" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInAccountsReceivable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncreaseDecreaseInAccountsReceivable" xlink:to="lab_us-gaap_IncreaseDecreaseInAccountsReceivable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EarningsPerSharePolicyTextBlock_066bec10-427c-4d38-9f7f-179b1f51638d_terseLabel_en-US" xlink:label="lab_us-gaap_EarningsPerSharePolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Income (Loss) per Common Share</link:label>
    <link:label id="lab_us-gaap_EarningsPerSharePolicyTextBlock_label_en-US" xlink:label="lab_us-gaap_EarningsPerSharePolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Earnings Per Share, Policy [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EarningsPerSharePolicyTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EarningsPerSharePolicyTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EarningsPerSharePolicyTextBlock" xlink:to="lab_us-gaap_EarningsPerSharePolicyTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_InventoryPolicyTextBlock_456cd1e6-56c2-4210-93d5-fb4051f9dcf9_terseLabel_en-US" xlink:label="lab_us-gaap_InventoryPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Inventory</link:label>
    <link:label id="lab_us-gaap_InventoryPolicyTextBlock_label_en-US" xlink:label="lab_us-gaap_InventoryPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Inventory, Policy [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryPolicyTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InventoryPolicyTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_InventoryPolicyTextBlock" xlink:to="lab_us-gaap_InventoryPolicyTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_NonRule10b51ArrAdoptedFlag_terseLabel_en-US" xlink:label="lab_ecd_NonRule10b51ArrAdoptedFlag" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Non-Rule 10b5-1 Arrangement Adopted</link:label>
    <link:label id="lab_ecd_NonRule10b51ArrAdoptedFlag_label_en-US" xlink:label="lab_ecd_NonRule10b51ArrAdoptedFlag" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Non-Rule 10b5-1 Arrangement Adopted [Flag]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_NonRule10b51ArrAdoptedFlag" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_NonRule10b51ArrAdoptedFlag"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_NonRule10b51ArrAdoptedFlag" xlink:to="lab_ecd_NonRule10b51ArrAdoptedFlag" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_ConstructionInProgressExpenditures_cb065c28-1c0c-451e-8b6d-f15758afaaa2_terseLabel_en-US" xlink:label="lab_tgen_ConstructionInProgressExpenditures" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Construction in progress costs</link:label>
    <link:label id="lab_tgen_ConstructionInProgressExpenditures_label_en-US" xlink:label="lab_tgen_ConstructionInProgressExpenditures" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Construction In Progress Expenditures</link:label>
    <link:label id="lab_tgen_ConstructionInProgressExpenditures_documentation_en-US" xlink:label="lab_tgen_ConstructionInProgressExpenditures" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Construction In Progress Expenditures</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ConstructionInProgressExpenditures" xlink:href="tgen-20241231.xsd#tgen_ConstructionInProgressExpenditures"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_ConstructionInProgressExpenditures" xlink:to="lab_tgen_ConstructionInProgressExpenditures" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FairValueDisclosuresTextBlock_3f59b365-a9c5-46ac-b812-1e22d75f91bd_terseLabel_en-US" xlink:label="lab_us-gaap_FairValueDisclosuresTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Fair Value Measurements</link:label>
    <link:label id="lab_us-gaap_FairValueDisclosuresTextBlock_label_en-US" xlink:label="lab_us-gaap_FairValueDisclosuresTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Fair Value Disclosures [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueDisclosuresTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueDisclosuresTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueDisclosuresTextBlock" xlink:to="lab_us-gaap_FairValueDisclosuresTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ProceedsFromStockOptionsExercised_659fdc85-42ff-4f95-8da8-682801bb9b90_terseLabel_en-US" xlink:label="lab_us-gaap_ProceedsFromStockOptionsExercised" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Proceeds from exercise of stock options</link:label>
    <link:label id="lab_us-gaap_ProceedsFromStockOptionsExercised_label_en-US" xlink:label="lab_us-gaap_ProceedsFromStockOptionsExercised" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Proceeds from Stock Options Exercised</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProceedsFromStockOptionsExercised" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProceedsFromStockOptionsExercised"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ProceedsFromStockOptionsExercised" xlink:to="lab_us-gaap_ProceedsFromStockOptionsExercised" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AwardTmgDiscLineItems_label_en-US" xlink:label="lab_ecd_AwardTmgDiscLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Award Timing Disclosures [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardTmgDiscLineItems" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AwardTmgDiscLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AwardTmgDiscLineItems" xlink:to="lab_ecd_AwardTmgDiscLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_TurnkeyInstallationMember_bc3bb114-7d8a-4fba-8ab7-c7ba29439a0c_terseLabel_en-US" xlink:label="lab_tgen_TurnkeyInstallationMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Turnkey Installation [Member]</link:label>
    <link:label id="lab_tgen_TurnkeyInstallationMember_label_en-US" xlink:label="lab_tgen_TurnkeyInstallationMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Turnkey Installation [Member]</link:label>
    <link:label id="lab_tgen_TurnkeyInstallationMember_documentation_en-US" xlink:label="lab_tgen_TurnkeyInstallationMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Turnkey Installation [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_TurnkeyInstallationMember" xlink:href="tgen-20241231.xsd#tgen_TurnkeyInstallationMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_TurnkeyInstallationMember" xlink:to="lab_tgen_TurnkeyInstallationMember" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_LesseeOperatingLeaseOptionToExtendMonthlyRent_acf6a274-7ae8-4904-b080-a7ba3811114b_terseLabel_en-US" xlink:label="lab_tgen_LesseeOperatingLeaseOptionToExtendMonthlyRent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Option to extend lease, monthly rent</link:label>
    <link:label id="lab_tgen_LesseeOperatingLeaseOptionToExtendMonthlyRent_label_en-US" xlink:label="lab_tgen_LesseeOperatingLeaseOptionToExtendMonthlyRent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Lessee, Operating Lease, Option To Extend, Monthly Rent</link:label>
    <link:label id="lab_tgen_LesseeOperatingLeaseOptionToExtendMonthlyRent_documentation_en-US" xlink:label="lab_tgen_LesseeOperatingLeaseOptionToExtendMonthlyRent" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Lessee, Operating Lease, Option To Extend, Monthly Rent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_LesseeOperatingLeaseOptionToExtendMonthlyRent" xlink:href="tgen-20241231.xsd#tgen_LesseeOperatingLeaseOptionToExtendMonthlyRent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_LesseeOperatingLeaseOptionToExtendMonthlyRent" xlink:to="lab_tgen_LesseeOperatingLeaseOptionToExtendMonthlyRent" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_LongLivedAssetImpairmentMember_3fb689f1-f93e-4d14-82c9-c9fce3bb197d_terseLabel_en-US" xlink:label="lab_tgen_LongLivedAssetImpairmentMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Long-lived Asset Impairment</link:label>
    <link:label id="lab_tgen_LongLivedAssetImpairmentMember_label_en-US" xlink:label="lab_tgen_LongLivedAssetImpairmentMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Long-lived Asset Impairment [Member]</link:label>
    <link:label id="lab_tgen_LongLivedAssetImpairmentMember_documentation_en-US" xlink:label="lab_tgen_LongLivedAssetImpairmentMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Long-lived Asset Impairment</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_LongLivedAssetImpairmentMember" xlink:href="tgen-20241231.xsd#tgen_LongLivedAssetImpairmentMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_LongLivedAssetImpairmentMember" xlink:to="lab_tgen_LongLivedAssetImpairmentMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PortionAtFairValueFairValueDisclosureMember_f5e3728f-7496-4f41-9990-02ab79a08cc4_terseLabel_en-US" xlink:label="lab_us-gaap_PortionAtFairValueFairValueDisclosureMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Portion at Fair Value Measurement</link:label>
    <link:label id="lab_us-gaap_PortionAtFairValueFairValueDisclosureMember_label_en-US" xlink:label="lab_us-gaap_PortionAtFairValueFairValueDisclosureMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Portion at Fair Value Measurement [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PortionAtFairValueFairValueDisclosureMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PortionAtFairValueFairValueDisclosureMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PortionAtFairValueFairValueDisclosureMember" xlink:to="lab_us-gaap_PortionAtFairValueFairValueDisclosureMember" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_ContingentConsiderationNoncurrentMember_e36aaf85-872f-4e94-afe0-68b7d2566607_terseLabel_en-US" xlink:label="lab_tgen_ContingentConsiderationNoncurrentMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Contingent Consideration, Noncurrent</link:label>
    <link:label id="lab_tgen_ContingentConsiderationNoncurrentMember_label_en-US" xlink:label="lab_tgen_ContingentConsiderationNoncurrentMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Contingent Consideration, Noncurrent [Member]</link:label>
    <link:label id="lab_tgen_ContingentConsiderationNoncurrentMember_documentation_en-US" xlink:label="lab_tgen_ContingentConsiderationNoncurrentMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Contingent Consideration, Noncurrent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ContingentConsiderationNoncurrentMember" xlink:href="tgen-20241231.xsd#tgen_ContingentConsiderationNoncurrentMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_ContingentConsiderationNoncurrentMember" xlink:to="lab_tgen_ContingentConsiderationNoncurrentMember" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_EffectiveIncomeTaxRateReconciliationStateandLocalIncomeTaxesAmountDeferred_b4288f97-ca56-4616-84cb-adc0924f4642_terseLabel_en-US" xlink:label="lab_tgen_EffectiveIncomeTaxRateReconciliationStateandLocalIncomeTaxesAmountDeferred" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Deferred</link:label>
    <link:label id="lab_tgen_EffectiveIncomeTaxRateReconciliationStateandLocalIncomeTaxesAmountDeferred_label_en-US" xlink:label="lab_tgen_EffectiveIncomeTaxRateReconciliationStateandLocalIncomeTaxesAmountDeferred" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Effective Income Tax Rate Reconciliation, State and Local Income Taxes, Amount, Deferred</link:label>
    <link:label id="lab_tgen_EffectiveIncomeTaxRateReconciliationStateandLocalIncomeTaxesAmountDeferred_documentation_en-US" xlink:label="lab_tgen_EffectiveIncomeTaxRateReconciliationStateandLocalIncomeTaxesAmountDeferred" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Effective Income Tax Rate Reconciliation, State and Local Income Taxes, Amount, Deferred</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_EffectiveIncomeTaxRateReconciliationStateandLocalIncomeTaxesAmountDeferred" xlink:href="tgen-20241231.xsd#tgen_EffectiveIncomeTaxRateReconciliationStateandLocalIncomeTaxesAmountDeferred"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_EffectiveIncomeTaxRateReconciliationStateandLocalIncomeTaxesAmountDeferred" xlink:to="lab_tgen_EffectiveIncomeTaxRateReconciliationStateandLocalIncomeTaxesAmountDeferred" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_AssetAcquisitionConsiderationTransferredNonCash_9f9f4d76-9d51-4cd8-a3e7-41486e88b70f_terseLabel_en-US" xlink:label="lab_tgen_AssetAcquisitionConsiderationTransferredNonCash" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Total fair value of non-cash consideration</link:label>
    <link:label id="lab_tgen_AssetAcquisitionConsiderationTransferredNonCash_label_en-US" xlink:label="lab_tgen_AssetAcquisitionConsiderationTransferredNonCash" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Asset Acquisition, Consideration Transferred, Non-Cash</link:label>
    <link:label id="lab_tgen_AssetAcquisitionConsiderationTransferredNonCash_documentation_en-US" xlink:label="lab_tgen_AssetAcquisitionConsiderationTransferredNonCash" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Asset Acquisition, Consideration Transferred, Non-Cash</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AssetAcquisitionConsiderationTransferredNonCash" xlink:href="tgen-20241231.xsd#tgen_AssetAcquisitionConsiderationTransferredNonCash"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_AssetAcquisitionConsiderationTransferredNonCash" xlink:to="lab_tgen_AssetAcquisitionConsiderationTransferredNonCash" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SegmentReportingPolicyPolicyTextBlock_b229ccd5-4757-4c44-9840-d6d09f1ab155_terseLabel_en-US" xlink:label="lab_us-gaap_SegmentReportingPolicyPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Segment Information</link:label>
    <link:label id="lab_us-gaap_SegmentReportingPolicyPolicyTextBlock_label_en-US" xlink:label="lab_us-gaap_SegmentReportingPolicyPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Segment Reporting, Policy [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SegmentReportingPolicyPolicyTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SegmentReportingPolicyPolicyTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SegmentReportingPolicyPolicyTextBlock" xlink:to="lab_us-gaap_SegmentReportingPolicyPolicyTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_SalesAndMarketingAgreementTerm_743f7e83-527c-4727-8b6a-3ce35cd61e48_terseLabel_en-US" xlink:label="lab_tgen_SalesAndMarketingAgreementTerm" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Sales and marketing agreement, term</link:label>
    <link:label id="lab_tgen_SalesAndMarketingAgreementTerm_label_en-US" xlink:label="lab_tgen_SalesAndMarketingAgreementTerm" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Sales And Marketing Agreement, Term</link:label>
    <link:label id="lab_tgen_SalesAndMarketingAgreementTerm_documentation_en-US" xlink:label="lab_tgen_SalesAndMarketingAgreementTerm" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Sales And Marketing Agreement, Term</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_SalesAndMarketingAgreementTerm" xlink:href="tgen-20241231.xsd#tgen_SalesAndMarketingAgreementTerm"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_SalesAndMarketingAgreementTerm" xlink:to="lab_tgen_SalesAndMarketingAgreementTerm" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DeferredTaxAssetsTaxCreditCarryforwards_1588bb18-4dc8-45d7-a546-666495644166_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsTaxCreditCarryforwards" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">R&amp;D and ITC credit carryforwards</link:label>
    <link:label id="lab_us-gaap_DeferredTaxAssetsTaxCreditCarryforwards_label_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsTaxCreditCarryforwards" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred Tax Assets, Tax Credit Carryforwards</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsTaxCreditCarryforwards" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsTaxCreditCarryforwards"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxAssetsTaxCreditCarryforwards" xlink:to="lab_us-gaap_DeferredTaxAssetsTaxCreditCarryforwards" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PlanNameDomain_e096385d-0f7c-4df8-a39b-2a6be31f80f6_terseLabel_en-US" xlink:label="lab_us-gaap_PlanNameDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Plan Name [Domain]</link:label>
    <link:label id="lab_us-gaap_PlanNameDomain_label_en-US" xlink:label="lab_us-gaap_PlanNameDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Plan Name [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PlanNameDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PlanNameDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PlanNameDomain" xlink:to="lab_us-gaap_PlanNameDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment_628b8d38-e35d-4cf3-8e26-11da9ee1076c_terseLabel_en-US" xlink:label="lab_us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Stock options</link:label>
    <link:label id="lab_us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment_label_en-US" xlink:label="lab_us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Weighted Average Number of Shares Outstanding, Diluted, Adjustment</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment" xlink:to="lab_us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_IncomeTaxDisclosureLineItems_1e2a5fbd-18c8-4afe-9492-64bc34abfc1a_terseLabel_en-US" xlink:label="lab_tgen_IncomeTaxDisclosureLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Income Tax Disclosure [Line Items]</link:label>
    <link:label id="lab_tgen_IncomeTaxDisclosureLineItems_label_en-US" xlink:label="lab_tgen_IncomeTaxDisclosureLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Income Tax Disclosure [Line Items]</link:label>
    <link:label id="lab_tgen_IncomeTaxDisclosureLineItems_documentation_en-US" xlink:label="lab_tgen_IncomeTaxDisclosureLineItems" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">[Line Items] for Income Tax Disclosure [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_IncomeTaxDisclosureLineItems" xlink:href="tgen-20241231.xsd#tgen_IncomeTaxDisclosureLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_IncomeTaxDisclosureLineItems" xlink:to="lab_tgen_IncomeTaxDisclosureLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OtherAssetsNoncurrent_41f56af1-fd02-4296-81be-44770d3b2bc3_terseLabel_en-US" xlink:label="lab_us-gaap_OtherAssetsNoncurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Other assets</link:label>
    <link:label id="lab_us-gaap_OtherAssetsNoncurrent_label_en-US" xlink:label="lab_us-gaap_OtherAssetsNoncurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Other Assets, Noncurrent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherAssetsNoncurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherAssetsNoncurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherAssetsNoncurrent" xlink:to="lab_us-gaap_OtherAssetsNoncurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LeasesAbstract_5fff499e-38c2-4b2d-9453-49d38f474928_terseLabel_en-US" xlink:label="lab_us-gaap_LeasesAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Leases [Abstract]</link:label>
    <link:label id="lab_us-gaap_LeasesAbstract_label_en-US" xlink:label="lab_us-gaap_LeasesAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Leases [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LeasesAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LeasesAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LeasesAbstract" xlink:to="lab_us-gaap_LeasesAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_FinanceLeasePrincipalPaymentsAndOtherCosts_3acbb52e-41ef-4068-9f7d-76e1a84903bb_terseLabel_en-US" xlink:label="lab_tgen_FinanceLeasePrincipalPaymentsAndOtherCosts" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Cash paid for amounts included in the measurement of finance lease liabilities</link:label>
    <link:label id="lab_tgen_FinanceLeasePrincipalPaymentsAndOtherCosts_label_en-US" xlink:label="lab_tgen_FinanceLeasePrincipalPaymentsAndOtherCosts" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Finance Lease, Principal Payments And Other Costs</link:label>
    <link:label id="lab_tgen_FinanceLeasePrincipalPaymentsAndOtherCosts_documentation_en-US" xlink:label="lab_tgen_FinanceLeasePrincipalPaymentsAndOtherCosts" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Finance Lease, Principal Payments And Other Costs</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_FinanceLeasePrincipalPaymentsAndOtherCosts" xlink:href="tgen-20241231.xsd#tgen_FinanceLeasePrincipalPaymentsAndOtherCosts"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_FinanceLeasePrincipalPaymentsAndOtherCosts" xlink:to="lab_tgen_FinanceLeasePrincipalPaymentsAndOtherCosts" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AntidilutiveSecuritiesNameDomain_fe609309-651c-4c21-a350-7efe8cee7c22_terseLabel_en-US" xlink:label="lab_us-gaap_AntidilutiveSecuritiesNameDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Antidilutive Securities, Name [Domain]</link:label>
    <link:label id="lab_us-gaap_AntidilutiveSecuritiesNameDomain_label_en-US" xlink:label="lab_us-gaap_AntidilutiveSecuritiesNameDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Antidilutive Securities, Name [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AntidilutiveSecuritiesNameDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AntidilutiveSecuritiesNameDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AntidilutiveSecuritiesNameDomain" xlink:to="lab_us-gaap_AntidilutiveSecuritiesNameDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_PaymentsToNoncontrollingInterestsInvestingActivities_bd50ca76-561a-4a3b-a2ae-a92de957b7fa_negatedTerseLabel_en-US" xlink:label="lab_tgen_PaymentsToNoncontrollingInterestsInvestingActivities" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Distributions to noncontrolling interest</link:label>
    <link:label id="lab_tgen_PaymentsToNoncontrollingInterestsInvestingActivities_label_en-US" xlink:label="lab_tgen_PaymentsToNoncontrollingInterestsInvestingActivities" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Payments to Noncontrolling Interests, Investing Activities</link:label>
    <link:label id="lab_tgen_PaymentsToNoncontrollingInterestsInvestingActivities_documentation_en-US" xlink:label="lab_tgen_PaymentsToNoncontrollingInterestsInvestingActivities" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Payments to Noncontrolling Interests, Investing Activities</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_PaymentsToNoncontrollingInterestsInvestingActivities" xlink:href="tgen-20241231.xsd#tgen_PaymentsToNoncontrollingInterestsInvestingActivities"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_PaymentsToNoncontrollingInterestsInvestingActivities" xlink:to="lab_tgen_PaymentsToNoncontrollingInterestsInvestingActivities" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncomeTaxReconciliationPriorYearIncomeTaxes_d11f5a4d-d875-4206-9a90-e9a236ff321e_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeTaxReconciliationPriorYearIncomeTaxes" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Deferred tax past year true-up's</link:label>
    <link:label id="lab_us-gaap_IncomeTaxReconciliationPriorYearIncomeTaxes_label_en-US" xlink:label="lab_us-gaap_IncomeTaxReconciliationPriorYearIncomeTaxes" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Effective Income Tax Rate Reconciliation, Prior Year Income Taxes, Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxReconciliationPriorYearIncomeTaxes" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxReconciliationPriorYearIncomeTaxes"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeTaxReconciliationPriorYearIncomeTaxes" xlink:to="lab_us-gaap_IncomeTaxReconciliationPriorYearIncomeTaxes" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OperatingSegmentsMember_6e4321fc-c7b4-4001-ab42-65e05faa4d00_terseLabel_en-US" xlink:label="lab_us-gaap_OperatingSegmentsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Operating Segments</link:label>
    <link:label id="lab_us-gaap_OperatingSegmentsMember_label_en-US" xlink:label="lab_us-gaap_OperatingSegmentsMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Operating Segments [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingSegmentsMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingSegmentsMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OperatingSegmentsMember" xlink:to="lab_us-gaap_OperatingSegmentsMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_NetCashProvidedByUsedInOperatingActivities_b1b1af89-3e0c-4b49-873b-269ff3e6cc86_totalLabel_en-US" xlink:label="lab_us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Net cash provided by (used in) operating activities</link:label>
    <link:label id="lab_us-gaap_NetCashProvidedByUsedInOperatingActivities_9b21cd92-2c4e-4edb-a98b-388900500116_terseLabel_en-US" xlink:label="lab_us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Cash used in operating activities</link:label>
    <link:label id="lab_us-gaap_NetCashProvidedByUsedInOperatingActivities_label_en-US" xlink:label="lab_us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Net Cash Provided by (Used in) Operating Activities</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivities"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="lab_us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_AuditInformationAbstract_label_en-US" xlink:label="lab_tgen_AuditInformationAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Audit Information [Abstract]</link:label>
    <link:label id="lab_tgen_AuditInformationAbstract_documentation_en-US" xlink:label="lab_tgen_AuditInformationAbstract" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Audit Information</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AuditInformationAbstract" xlink:href="tgen-20241231.xsd#tgen_AuditInformationAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_AuditInformationAbstract" xlink:to="lab_tgen_AuditInformationAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_cce680ab-cd9e-4319-a36a-b1b403b0828a_terseLabel_en-US" xlink:label="lab_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">CASH FLOWS FROM OPERATING ACTIVITIES:</link:label>
    <link:label id="lab_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_label_en-US" xlink:label="lab_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Net Cash Provided by (Used in) Operating Activities [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="lab_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DeferredTaxAssetsPropertyPlantAndEquipment_c16a84a0-154c-4d4f-8d1a-7c10b083ca47_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsPropertyPlantAndEquipment" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Property, plant and equipment</link:label>
    <link:label id="lab_us-gaap_DeferredTaxAssetsPropertyPlantAndEquipment_label_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsPropertyPlantAndEquipment" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred Tax Assets, Property, Plant and Equipment</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsPropertyPlantAndEquipment" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsPropertyPlantAndEquipment"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxAssetsPropertyPlantAndEquipment" xlink:to="lab_us-gaap_DeferredTaxAssetsPropertyPlantAndEquipment" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AwardTmgMethodTextBlock_terseLabel_en-US" xlink:label="lab_ecd_AwardTmgMethodTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Award Timing Method</link:label>
    <link:label id="lab_ecd_AwardTmgMethodTextBlock_label_en-US" xlink:label="lab_ecd_AwardTmgMethodTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Award Timing Method [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardTmgMethodTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AwardTmgMethodTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AwardTmgMethodTextBlock" xlink:to="lab_ecd_AwardTmgMethodTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_TradingArrByIndTable_terseLabel_en-US" xlink:label="lab_ecd_TradingArrByIndTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Trading Arrangements, by Individual</link:label>
    <link:label id="lab_ecd_TradingArrByIndTable_label_en-US" xlink:label="lab_ecd_TradingArrByIndTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Trading Arrangements, by Individual [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TradingArrByIndTable" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_TradingArrByIndTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_TradingArrByIndTable" xlink:to="lab_ecd_TradingArrByIndTable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncomeTaxReconciliationNondeductibleExpenseAmortization_61df9786-b50b-473b-b976-0be2960901a6_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeTaxReconciliationNondeductibleExpenseAmortization" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Intangible amortization</link:label>
    <link:label id="lab_us-gaap_IncomeTaxReconciliationNondeductibleExpenseAmortization_label_en-US" xlink:label="lab_us-gaap_IncomeTaxReconciliationNondeductibleExpenseAmortization" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Effective Income Tax Rate Reconciliation, Nondeductible Expense, Amortization, Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxReconciliationNondeductibleExpenseAmortization" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxReconciliationNondeductibleExpenseAmortization"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeTaxReconciliationNondeductibleExpenseAmortization" xlink:to="lab_us-gaap_IncomeTaxReconciliationNondeductibleExpenseAmortization" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AcquiredFiniteLivedIntangibleAssetsLineItems_87ab6056-fc87-493b-b7f9-4252ab75e6b1_terseLabel_en-US" xlink:label="lab_us-gaap_AcquiredFiniteLivedIntangibleAssetsLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Acquired Finite-Lived Intangible Assets [Line Items]</link:label>
    <link:label id="lab_us-gaap_AcquiredFiniteLivedIntangibleAssetsLineItems_label_en-US" xlink:label="lab_us-gaap_AcquiredFiniteLivedIntangibleAssetsLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Acquired Finite-Lived Intangible Assets [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AcquiredFiniteLivedIntangibleAssetsLineItems" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AcquiredFiniteLivedIntangibleAssetsLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AcquiredFiniteLivedIntangibleAssetsLineItems" xlink:to="lab_us-gaap_AcquiredFiniteLivedIntangibleAssetsLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FairValueByMeasurementFrequencyAxis_01526126-21c8-4255-ae2f-c04dbe1ace55_terseLabel_en-US" xlink:label="lab_us-gaap_FairValueByMeasurementFrequencyAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Measurement Frequency [Axis]</link:label>
    <link:label id="lab_us-gaap_FairValueByMeasurementFrequencyAxis_label_en-US" xlink:label="lab_us-gaap_FairValueByMeasurementFrequencyAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Measurement Frequency [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueByMeasurementFrequencyAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueByMeasurementFrequencyAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueByMeasurementFrequencyAxis" xlink:to="lab_us-gaap_FairValueByMeasurementFrequencyAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsCancellationsAndForfeituresInPeriod_476c626b-e8d6-4d7a-82fd-234c7b4dee25_negatedTerseLabel_en-US" xlink:label="lab_tgen_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsCancellationsAndForfeituresInPeriod" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Canceled and forfeited (shares)</link:label>
    <link:label id="lab_tgen_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsCancellationsAndForfeituresInPeriod_label_en-US" xlink:label="lab_tgen_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsCancellationsAndForfeituresInPeriod" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-based Compensation Arrangement by Share-based Payment Award, Options, Cancellations and Forfeitures in Period</link:label>
    <link:label id="lab_tgen_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsCancellationsAndForfeituresInPeriod_documentation_en-US" xlink:label="lab_tgen_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsCancellationsAndForfeituresInPeriod" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Share-based Compensation Arrangement by Share-based Payment Award, Options, Cancellations and Forfeitures in Period</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsCancellationsAndForfeituresInPeriod" xlink:href="tgen-20241231.xsd#tgen_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsCancellationsAndForfeituresInPeriod"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsCancellationsAndForfeituresInPeriod" xlink:to="lab_tgen_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsCancellationsAndForfeituresInPeriod" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntityCommonStockSharesOutstanding_1fc95108-21bf-445d-be10-4e61599f7ef4_terseLabel_en-US" xlink:label="lab_dei_EntityCommonStockSharesOutstanding" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Entity Common Stock, Shares Outstanding</link:label>
    <link:label id="lab_dei_EntityCommonStockSharesOutstanding_label_en-US" xlink:label="lab_dei_EntityCommonStockSharesOutstanding" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Common Stock, Shares Outstanding</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityCommonStockSharesOutstanding" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityCommonStockSharesOutstanding"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityCommonStockSharesOutstanding" xlink:to="lab_dei_EntityCommonStockSharesOutstanding" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FinanceLeaseWeightedAverageRemainingLeaseTerm1_710aa771-cb78-4a9a-bd1b-a29bd1c43a48_terseLabel_en-US" xlink:label="lab_us-gaap_FinanceLeaseWeightedAverageRemainingLeaseTerm1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Weighted-average remaining lease term - finance leases</link:label>
    <link:label id="lab_us-gaap_FinanceLeaseWeightedAverageRemainingLeaseTerm1_label_en-US" xlink:label="lab_us-gaap_FinanceLeaseWeightedAverageRemainingLeaseTerm1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Finance Lease, Weighted Average Remaining Lease Term</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinanceLeaseWeightedAverageRemainingLeaseTerm1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FinanceLeaseWeightedAverageRemainingLeaseTerm1"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FinanceLeaseWeightedAverageRemainingLeaseTerm1" xlink:to="lab_us-gaap_FinanceLeaseWeightedAverageRemainingLeaseTerm1" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_InsiderTradingPoliciesProcLineItems_label_en-US" xlink:label="lab_ecd_InsiderTradingPoliciesProcLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Insider Trading Policies and Procedures [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_InsiderTradingPoliciesProcLineItems" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_InsiderTradingPoliciesProcLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_InsiderTradingPoliciesProcLineItems" xlink:to="lab_ecd_InsiderTradingPoliciesProcLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_srt_RestatementAdjustmentMember_477b08e3-bf5e-48e9-87b1-cb91bc2dc569_terseLabel_en-US" xlink:label="lab_srt_RestatementAdjustmentMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Revision of Prior Period, Adjustment</link:label>
    <link:label id="lab_srt_RestatementAdjustmentMember_label_en-US" xlink:label="lab_srt_RestatementAdjustmentMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Revision of Prior Period, Adjustment [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RestatementAdjustmentMember" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RestatementAdjustmentMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_RestatementAdjustmentMember" xlink:to="lab_srt_RestatementAdjustmentMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_UseOfEstimates_75e03f00-7923-484e-9284-bc5a895ab353_terseLabel_en-US" xlink:label="lab_us-gaap_UseOfEstimates" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Use of Estimates</link:label>
    <link:label id="lab_us-gaap_UseOfEstimates_label_en-US" xlink:label="lab_us-gaap_UseOfEstimates" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Use of Estimates, Policy [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UseOfEstimates" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_UseOfEstimates"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_UseOfEstimates" xlink:to="lab_us-gaap_UseOfEstimates" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_FiniteLivedIntangibleLiabilityDomain_e82c4e44-7acc-47a2-8b90-e9592d8d59bf_terseLabel_en-US" xlink:label="lab_tgen_FiniteLivedIntangibleLiabilityDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Finite-Lived Intangible Liability [Domain]</link:label>
    <link:label id="lab_tgen_FiniteLivedIntangibleLiabilityDomain_label_en-US" xlink:label="lab_tgen_FiniteLivedIntangibleLiabilityDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Finite-Lived Intangible Liability [Domain]</link:label>
    <link:label id="lab_tgen_FiniteLivedIntangibleLiabilityDomain_documentation_en-US" xlink:label="lab_tgen_FiniteLivedIntangibleLiabilityDomain" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">[Domain] for Finite-Lived Intangible Liability [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_FiniteLivedIntangibleLiabilityDomain" xlink:href="tgen-20241231.xsd#tgen_FiniteLivedIntangibleLiabilityDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_FiniteLivedIntangibleLiabilityDomain" xlink:to="lab_tgen_FiniteLivedIntangibleLiabilityDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AdjToCompAmt_terseLabel_en-US" xlink:label="lab_ecd_AdjToCompAmt" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Adjustment to Compensation, Amount</link:label>
    <link:label id="lab_ecd_AdjToCompAmt_label_en-US" xlink:label="lab_ecd_AdjToCompAmt" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Adjustment to Compensation Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AdjToCompAmt" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AdjToCompAmt"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AdjToCompAmt" xlink:to="lab_ecd_AdjToCompAmt" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_OutstandingRecoveryCompAmt_terseLabel_en-US" xlink:label="lab_ecd_OutstandingRecoveryCompAmt" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Compensation Amount</link:label>
    <link:label id="lab_ecd_OutstandingRecoveryCompAmt_label_en-US" xlink:label="lab_ecd_OutstandingRecoveryCompAmt" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Outstanding Recovery Compensation Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_OutstandingRecoveryCompAmt" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_OutstandingRecoveryCompAmt"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_OutstandingRecoveryCompAmt" xlink:to="lab_ecd_OutstandingRecoveryCompAmt" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AggtChngPnsnValInSummryCompstnTblForAplblYrMember_terseLabel_en-US" xlink:label="lab_ecd_AggtChngPnsnValInSummryCompstnTblForAplblYrMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Aggregate Change in Present Value of Accumulated Benefit for All Pension Plans Reported in Summary Compensation Table</link:label>
    <link:label id="lab_ecd_AggtChngPnsnValInSummryCompstnTblForAplblYrMember_label_en-US" xlink:label="lab_ecd_AggtChngPnsnValInSummryCompstnTblForAplblYrMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Aggregate Change in Present Value of Accumulated Benefit for All Pension Plans Reported in Summary Compensation Table [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AggtChngPnsnValInSummryCompstnTblForAplblYrMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AggtChngPnsnValInSummryCompstnTblForAplblYrMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AggtChngPnsnValInSummryCompstnTblForAplblYrMember" xlink:to="lab_ecd_AggtChngPnsnValInSummryCompstnTblForAplblYrMember" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntitySmallBusiness_91b27509-d78a-4cbf-ad31-0df20a03b130_terseLabel_en-US" xlink:label="lab_dei_EntitySmallBusiness" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Entity Small Business</link:label>
    <link:label id="lab_dei_EntitySmallBusiness_label_en-US" xlink:label="lab_dei_EntitySmallBusiness" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Small Business</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntitySmallBusiness" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntitySmallBusiness"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntitySmallBusiness" xlink:to="lab_dei_EntitySmallBusiness" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_CoSelectedMeasureAmt_terseLabel_en-US" xlink:label="lab_ecd_CoSelectedMeasureAmt" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Company Selected Measure Amount</link:label>
    <link:label id="lab_ecd_CoSelectedMeasureAmt_label_en-US" xlink:label="lab_ecd_CoSelectedMeasureAmt" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Company Selected Measure Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_CoSelectedMeasureAmt" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_CoSelectedMeasureAmt"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_CoSelectedMeasureAmt" xlink:to="lab_ecd_CoSelectedMeasureAmt" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantedInPeriodExercisePrice_49d0758a-b40c-4122-88a6-ac09c1a1493a_terseLabel_en-US" xlink:label="lab_tgen_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantedInPeriodExercisePrice" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Exercise price per share, granted (usd per share)</link:label>
    <link:label id="lab_tgen_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantedInPeriodExercisePrice_label_en-US" xlink:label="lab_tgen_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantedInPeriodExercisePrice" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-based Compensation Arrangement by Share-based Payment Award, Options, Granted in Period, Exercise Price</link:label>
    <link:label id="lab_tgen_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantedInPeriodExercisePrice_documentation_en-US" xlink:label="lab_tgen_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantedInPeriodExercisePrice" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Share-based Compensation Arrangement by Share-based Payment Award, Options, Granted in Period, Exercise Price</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantedInPeriodExercisePrice" xlink:href="tgen-20241231.xsd#tgen_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantedInPeriodExercisePrice"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantedInPeriodExercisePrice" xlink:to="lab_tgen_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantedInPeriodExercisePrice" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_OperatingLeaseAssetsAndLiabilitiesLesseeAbstract_8b83220a-66a3-4867-b0e2-ba5a9e4b11b7_terseLabel_en-US" xlink:label="lab_tgen_OperatingLeaseAssetsAndLiabilitiesLesseeAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Operating leases</link:label>
    <link:label id="lab_tgen_OperatingLeaseAssetsAndLiabilitiesLesseeAbstract_label_en-US" xlink:label="lab_tgen_OperatingLeaseAssetsAndLiabilitiesLesseeAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Operating Lease, Assets And Liabilities, Lessee [Abstract]</link:label>
    <link:label id="lab_tgen_OperatingLeaseAssetsAndLiabilitiesLesseeAbstract_documentation_en-US" xlink:label="lab_tgen_OperatingLeaseAssetsAndLiabilitiesLesseeAbstract" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Operating Lease, Assets And Liabilities, Lessee</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_OperatingLeaseAssetsAndLiabilitiesLesseeAbstract" xlink:href="tgen-20241231.xsd#tgen_OperatingLeaseAssetsAndLiabilitiesLesseeAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_OperatingLeaseAssetsAndLiabilitiesLesseeAbstract" xlink:to="lab_tgen_OperatingLeaseAssetsAndLiabilitiesLesseeAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_TabularListTableTextBlock_terseLabel_en-US" xlink:label="lab_ecd_TabularListTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Tabular List, Table</link:label>
    <link:label id="lab_ecd_TabularListTableTextBlock_label_en-US" xlink:label="lab_ecd_TabularListTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Tabular List [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TabularListTableTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_TabularListTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_TabularListTableTextBlock" xlink:to="lab_ecd_TabularListTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FairValueInputsLevel3Member_2cfe5429-a520-4372-a024-bdc2aa23df6a_terseLabel_en-US" xlink:label="lab_us-gaap_FairValueInputsLevel3Member" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Level 3</link:label>
    <link:label id="lab_us-gaap_FairValueInputsLevel3Member_label_en-US" xlink:label="lab_us-gaap_FairValueInputsLevel3Member" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Fair Value, Inputs, Level 3 [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueInputsLevel3Member" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueInputsLevel3Member"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueInputsLevel3Member" xlink:to="lab_us-gaap_FairValueInputsLevel3Member" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_PeriodOfSeveranceBenefitsForKeyManagementEmployeesUnderThePlan_4a708e0a-b8ac-42b5-826e-85e8094ac3b1_terseLabel_en-US" xlink:label="lab_tgen_PeriodOfSeveranceBenefitsForKeyManagementEmployeesUnderThePlan" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Period of severance benefits for key management employees under the plan</link:label>
    <link:label id="lab_tgen_PeriodOfSeveranceBenefitsForKeyManagementEmployeesUnderThePlan_label_en-US" xlink:label="lab_tgen_PeriodOfSeveranceBenefitsForKeyManagementEmployeesUnderThePlan" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Period of Severance Benefits for Key Management Employees under the Plan</link:label>
    <link:label id="lab_tgen_PeriodOfSeveranceBenefitsForKeyManagementEmployeesUnderThePlan_documentation_en-US" xlink:label="lab_tgen_PeriodOfSeveranceBenefitsForKeyManagementEmployeesUnderThePlan" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Period of Severance Benefits for Key Management Employees under the Plan</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_PeriodOfSeveranceBenefitsForKeyManagementEmployeesUnderThePlan" xlink:href="tgen-20241231.xsd#tgen_PeriodOfSeveranceBenefitsForKeyManagementEmployeesUnderThePlan"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_PeriodOfSeveranceBenefitsForKeyManagementEmployeesUnderThePlan" xlink:to="lab_tgen_PeriodOfSeveranceBenefitsForKeyManagementEmployeesUnderThePlan" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_73f96639-98bc-46d8-8bf8-562f67699a3f_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Share-based Compensation Arrangement by Share-based Payment Award [Line Items]</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FinitelivedIntangibleAssetsAcquired1_b762a3bf-67a1-43d1-ac24-073cecfce3f7_terseLabel_en-US" xlink:label="lab_us-gaap_FinitelivedIntangibleAssetsAcquired1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Capitalized finited lived intangible assets</link:label>
    <link:label id="lab_us-gaap_FinitelivedIntangibleAssetsAcquired1_label_en-US" xlink:label="lab_us-gaap_FinitelivedIntangibleAssetsAcquired1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Finite-Lived Intangible Assets Acquired</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinitelivedIntangibleAssetsAcquired1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FinitelivedIntangibleAssetsAcquired1"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FinitelivedIntangibleAssetsAcquired1" xlink:to="lab_us-gaap_FinitelivedIntangibleAssetsAcquired1" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DebtInstrumentDecreaseForgiveness_22b46116-7419-4d23-8b59-bf00b3f6da6b_terseLabel_en-US" xlink:label="lab_us-gaap_DebtInstrumentDecreaseForgiveness" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Debt forgiveness, amount</link:label>
    <link:label id="lab_us-gaap_DebtInstrumentDecreaseForgiveness_label_en-US" xlink:label="lab_us-gaap_DebtInstrumentDecreaseForgiveness" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Debt Instrument, Decrease, Forgiveness</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtInstrumentDecreaseForgiveness" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentDecreaseForgiveness"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DebtInstrumentDecreaseForgiveness" xlink:to="lab_us-gaap_DebtInstrumentDecreaseForgiveness" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost_d8d6a321-a692-4bdf-8657-d80da8cd96f3_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Paycheck protection program loan forgiveness</link:label>
    <link:label id="lab_us-gaap_IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost_label_en-US" xlink:label="lab_us-gaap_IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Effective Income Tax Rate Reconciliation, Nondeductible Expense, Share-Based Payment Arrangement, Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost" xlink:to="lab_us-gaap_IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AccruedLiabilitiesCurrent_023bd45d-c9ab-4f35-901a-111c9548ef72_terseLabel_en-US" xlink:label="lab_us-gaap_AccruedLiabilitiesCurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Accrued expenses</link:label>
    <link:label id="lab_us-gaap_AccruedLiabilitiesCurrent_label_en-US" xlink:label="lab_us-gaap_AccruedLiabilitiesCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accrued Liabilities, Current</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccruedLiabilitiesCurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccruedLiabilitiesCurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccruedLiabilitiesCurrent" xlink:to="lab_us-gaap_AccruedLiabilitiesCurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LitigationReserve_a5445d12-686f-41d0-b72d-74cea72926d8_terseLabel_en-US" xlink:label="lab_us-gaap_LitigationReserve" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Reserve for anticipated damages</link:label>
    <link:label id="lab_us-gaap_LitigationReserve_label_en-US" xlink:label="lab_us-gaap_LitigationReserve" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Estimated Litigation Liability</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LitigationReserve" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LitigationReserve"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LitigationReserve" xlink:to="lab_us-gaap_LitigationReserve" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_September2024PromissoryNoteMember_6363d0b3-34be-48af-b776-39cf8fa78b5b_terseLabel_en-US" xlink:label="lab_tgen_September2024PromissoryNoteMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">September 2024 Promissory Note</link:label>
    <link:label id="lab_tgen_September2024PromissoryNoteMember_label_en-US" xlink:label="lab_tgen_September2024PromissoryNoteMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">September 2024 Promissory Note [Member]</link:label>
    <link:label id="lab_tgen_September2024PromissoryNoteMember_documentation_en-US" xlink:label="lab_tgen_September2024PromissoryNoteMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">September 2024 Promissory Note</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_September2024PromissoryNoteMember" xlink:href="tgen-20241231.xsd#tgen_September2024PromissoryNoteMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_September2024PromissoryNoteMember" xlink:to="lab_tgen_September2024PromissoryNoteMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_bf33aea3-67ad-4741-b0dc-76cbd68bf616_terseLabel_en-US" xlink:label="lab_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Anti-dilutive shares underlying stock options outstanding</link:label>
    <link:label id="lab_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_label_en-US" xlink:label="lab_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Antidilutive Securities Excluded from Computation of Earnings Per Share, Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:to="lab_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FinanceLeaseLiabilityUndiscountedExcessAmount_f76831f9-a6d1-4d30-bac7-26b1f6dab292_terseLabel_en-US" xlink:label="lab_us-gaap_FinanceLeaseLiabilityUndiscountedExcessAmount" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Less: imputed interest</link:label>
    <link:label id="lab_us-gaap_FinanceLeaseLiabilityUndiscountedExcessAmount_label_en-US" xlink:label="lab_us-gaap_FinanceLeaseLiabilityUndiscountedExcessAmount" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Finance Lease, Liability, Undiscounted Excess Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinanceLeaseLiabilityUndiscountedExcessAmount" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FinanceLeaseLiabilityUndiscountedExcessAmount"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FinanceLeaseLiabilityUndiscountedExcessAmount" xlink:to="lab_us-gaap_FinanceLeaseLiabilityUndiscountedExcessAmount" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ImpairmentOrDisposalOfLongLivedAssetsPolicyTextBlock_f0060a89-079a-4979-b17a-dcb5c3dc1f22_terseLabel_en-US" xlink:label="lab_us-gaap_ImpairmentOrDisposalOfLongLivedAssetsPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Impairment of Long-Lived Assets</link:label>
    <link:label id="lab_us-gaap_ImpairmentOrDisposalOfLongLivedAssetsPolicyTextBlock_label_en-US" xlink:label="lab_us-gaap_ImpairmentOrDisposalOfLongLivedAssetsPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Impairment or Disposal of Long-Lived Assets, Policy [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ImpairmentOrDisposalOfLongLivedAssetsPolicyTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ImpairmentOrDisposalOfLongLivedAssetsPolicyTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ImpairmentOrDisposalOfLongLivedAssetsPolicyTextBlock" xlink:to="lab_us-gaap_ImpairmentOrDisposalOfLongLivedAssetsPolicyTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AssetAcquisitionAxis_64c89ea7-d529-4849-9f4d-6b0722ff4cb9_terseLabel_en-US" xlink:label="lab_us-gaap_AssetAcquisitionAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Asset Acquisition [Axis]</link:label>
    <link:label id="lab_us-gaap_AssetAcquisitionAxis_label_en-US" xlink:label="lab_us-gaap_AssetAcquisitionAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Asset Acquisition [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetAcquisitionAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetAcquisitionAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AssetAcquisitionAxis" xlink:to="lab_us-gaap_AssetAcquisitionAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AssetAcquisitionConsiderationTransferredContingentConsideration_b99406fa-cfc0-45a8-8b12-5c0aa4f5fa6f_terseLabel_en-US" xlink:label="lab_us-gaap_AssetAcquisitionConsiderationTransferredContingentConsideration" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Contingent consideration</link:label>
    <link:label id="lab_us-gaap_AssetAcquisitionConsiderationTransferredContingentConsideration_label_en-US" xlink:label="lab_us-gaap_AssetAcquisitionConsiderationTransferredContingentConsideration" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Asset Acquisition, Consideration Transferred, Contingent Consideration</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetAcquisitionConsiderationTransferredContingentConsideration" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetAcquisitionConsiderationTransferredContingentConsideration"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AssetAcquisitionConsiderationTransferredContingentConsideration" xlink:to="lab_us-gaap_AssetAcquisitionConsiderationTransferredContingentConsideration" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward_f8f5d126-3827-4761-be2c-19f3a21026f4_terseLabel_en-US" xlink:label="lab_us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Fair Value, Assets Measured on Recurring Basis, Unobservable Input Reconciliation, Calculation [Roll Forward]</link:label>
    <link:label id="lab_us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward_label_en-US" xlink:label="lab_us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Fair Value, Assets Measured on Recurring Basis, Unobservable Input Reconciliation, Calculation [Roll Forward]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward" xlink:to="lab_us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_OperatingAndFinanceLeaseLiabilityToBePaidYearThree_8301feb8-dede-4b88-8601-a78cddf2a9ec_terseLabel_en-US" xlink:label="lab_tgen_OperatingAndFinanceLeaseLiabilityToBePaidYearThree" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">2027</link:label>
    <link:label id="lab_tgen_OperatingAndFinanceLeaseLiabilityToBePaidYearThree_label_en-US" xlink:label="lab_tgen_OperatingAndFinanceLeaseLiabilityToBePaidYearThree" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Operating and Finance Lease, Liability, to be Paid, Year Three</link:label>
    <link:label id="lab_tgen_OperatingAndFinanceLeaseLiabilityToBePaidYearThree_documentation_en-US" xlink:label="lab_tgen_OperatingAndFinanceLeaseLiabilityToBePaidYearThree" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Operating and Finance Lease, Liability, to be Paid, Year Three</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_OperatingAndFinanceLeaseLiabilityToBePaidYearThree" xlink:href="tgen-20241231.xsd#tgen_OperatingAndFinanceLeaseLiabilityToBePaidYearThree"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_OperatingAndFinanceLeaseLiabilityToBePaidYearThree" xlink:to="lab_tgen_OperatingAndFinanceLeaseLiabilityToBePaidYearThree" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_Goodwill_07b558ff-f9e7-4741-a6b1-5db7725fd957_terseLabel_en-US" xlink:label="lab_us-gaap_Goodwill" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Goodwill</link:label>
    <link:label id="lab_us-gaap_Goodwill_3dcf5f74-8bde-4e56-89b6-e94c1b30c5fa_periodStartLabel_en-US" xlink:label="lab_us-gaap_Goodwill" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xml:lang="en-US">Goodwill, beginning</link:label>
    <link:label id="lab_us-gaap_Goodwill_4bdfd371-788d-4a2a-9a1e-c838a69a8ea7_periodEndLabel_en-US" xlink:label="lab_us-gaap_Goodwill" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xml:lang="en-US">Goodwill, ending</link:label>
    <link:label id="lab_us-gaap_Goodwill_label_en-US" xlink:label="lab_us-gaap_Goodwill" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Goodwill</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Goodwill" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Goodwill"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_Goodwill" xlink:to="lab_us-gaap_Goodwill" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_LesseeOperatingLeaseSquareFeet_edcd130a-92f0-42ca-8338-f28901540070_terseLabel_en-US" xlink:label="lab_tgen_LesseeOperatingLeaseSquareFeet" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Square feet of lease</link:label>
    <link:label id="lab_tgen_LesseeOperatingLeaseSquareFeet_label_en-US" xlink:label="lab_tgen_LesseeOperatingLeaseSquareFeet" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Lessee, Operating Lease, Square Feet</link:label>
    <link:label id="lab_tgen_LesseeOperatingLeaseSquareFeet_documentation_en-US" xlink:label="lab_tgen_LesseeOperatingLeaseSquareFeet" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Lessee, Operating Lease, Square Feet</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_LesseeOperatingLeaseSquareFeet" xlink:href="tgen-20241231.xsd#tgen_LesseeOperatingLeaseSquareFeet"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_LesseeOperatingLeaseSquareFeet" xlink:to="lab_tgen_LesseeOperatingLeaseSquareFeet" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CashUninsuredAmount_50f0204a-7c12-4ecf-aa0c-1130d57ad077_terseLabel_en-US" xlink:label="lab_us-gaap_CashUninsuredAmount" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Cash, Uninsured Amount</link:label>
    <link:label id="lab_us-gaap_CashUninsuredAmount_label_en-US" xlink:label="lab_us-gaap_CashUninsuredAmount" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Cash, Uninsured Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashUninsuredAmount" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashUninsuredAmount"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CashUninsuredAmount" xlink:to="lab_us-gaap_CashUninsuredAmount" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_InventoryDisclosureTextBlock_0c1cf245-92d4-4033-8e45-668013acf344_terseLabel_en-US" xlink:label="lab_us-gaap_InventoryDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Inventory</link:label>
    <link:label id="lab_us-gaap_InventoryDisclosureTextBlock_label_en-US" xlink:label="lab_us-gaap_InventoryDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Inventory Disclosure [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryDisclosureTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InventoryDisclosureTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_InventoryDisclosureTextBlock" xlink:to="lab_us-gaap_InventoryDisclosureTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_AssetAcquisitionGoodwill_a2814615-1719-445a-87ab-b476102184d2_terseLabel_en-US" xlink:label="lab_tgen_AssetAcquisitionGoodwill" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Asset Acquisition, Goodwill</link:label>
    <link:label id="lab_tgen_AssetAcquisitionGoodwill_label_en-US" xlink:label="lab_tgen_AssetAcquisitionGoodwill" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Asset Acquisition, Goodwill</link:label>
    <link:label id="lab_tgen_AssetAcquisitionGoodwill_documentation_en-US" xlink:label="lab_tgen_AssetAcquisitionGoodwill" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Asset Acquisition, Goodwill</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AssetAcquisitionGoodwill" xlink:href="tgen-20241231.xsd#tgen_AssetAcquisitionGoodwill"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_AssetAcquisitionGoodwill" xlink:to="lab_tgen_AssetAcquisitionGoodwill" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CustomerContractsMember_8e5b242a-fa87-421b-8e91-3d22661a729f_terseLabel_en-US" xlink:label="lab_us-gaap_CustomerContractsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Customer contract</link:label>
    <link:label id="lab_us-gaap_CustomerContractsMember_label_en-US" xlink:label="lab_us-gaap_CustomerContractsMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Customer Contracts [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CustomerContractsMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CustomerContractsMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CustomerContractsMember" xlink:to="lab_us-gaap_CustomerContractsMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EmployeeStockOptionMember_5322ddab-09f1-451e-b2bf-29c12d0aa264_terseLabel_en-US" xlink:label="lab_us-gaap_EmployeeStockOptionMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Stock Options</link:label>
    <link:label id="lab_us-gaap_EmployeeStockOptionMember_label_en-US" xlink:label="lab_us-gaap_EmployeeStockOptionMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Payment Arrangement, Option [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeStockOptionMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeStockOptionMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EmployeeStockOptionMember" xlink:to="lab_us-gaap_EmployeeStockOptionMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_0dce0ce6-6a71-4a4a-9615-138f5ff1acc9_terseLabel_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">2025</link:label>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_label_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Lessee, Operating Lease, Liability, to be Paid, Year One</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:to="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable_e7d284f3-cc27-47c7-ab76-99da43eb4de9_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Antidilutive Security, Excluded EPS Calculation [Table]</link:label>
    <link:label id="lab_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable_label_en-US" xlink:label="lab_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Antidilutive Security, Excluded EPS Calculation [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable" xlink:to="lab_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FinanceLeaseWeightedAverageDiscountRatePercent_45322bdd-ef20-4e09-8e9f-efbc9b3c58fe_terseLabel_en-US" xlink:label="lab_us-gaap_FinanceLeaseWeightedAverageDiscountRatePercent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Weighted-average discount rate - finance leases</link:label>
    <link:label id="lab_us-gaap_FinanceLeaseWeightedAverageDiscountRatePercent_label_en-US" xlink:label="lab_us-gaap_FinanceLeaseWeightedAverageDiscountRatePercent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Finance Lease, Weighted Average Discount Rate, Percent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinanceLeaseWeightedAverageDiscountRatePercent" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FinanceLeaseWeightedAverageDiscountRatePercent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FinanceLeaseWeightedAverageDiscountRatePercent" xlink:to="lab_us-gaap_FinanceLeaseWeightedAverageDiscountRatePercent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FinanceLeaseLiabilityPaymentsDueNextTwelveMonths_ec7497eb-fe51-4920-9776-33e8815b89af_terseLabel_en-US" xlink:label="lab_us-gaap_FinanceLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">2025</link:label>
    <link:label id="lab_us-gaap_FinanceLeaseLiabilityPaymentsDueNextTwelveMonths_label_en-US" xlink:label="lab_us-gaap_FinanceLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Finance Lease, Liability, to be Paid, Year One</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinanceLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FinanceLeaseLiabilityPaymentsDueNextTwelveMonths"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FinanceLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:to="lab_us-gaap_FinanceLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AwardTypeAxis_242c2c16-947e-4f22-b365-bb5f2a593ba2_terseLabel_en-US" xlink:label="lab_us-gaap_AwardTypeAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Award Type [Axis]</link:label>
    <link:label id="lab_us-gaap_AwardTypeAxis_label_en-US" xlink:label="lab_us-gaap_AwardTypeAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Award Type [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AwardTypeAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AwardTypeAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AwardTypeAxis" xlink:to="lab_us-gaap_AwardTypeAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DeferredTaxLiabilities_1545ffdd-c33b-4393-ad8f-71d559b055cf_negatedTotalLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxLiabilities" xlink:role="http://www.xbrl.org/2009/role/negatedTotalLabel" xlink:type="resource" xml:lang="en-US">Deferred tax assets, net</link:label>
    <link:label id="lab_us-gaap_DeferredTaxLiabilities_label_en-US" xlink:label="lab_us-gaap_DeferredTaxLiabilities" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred Tax Liabilities, Net</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxLiabilities" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxLiabilities"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxLiabilities" xlink:to="lab_us-gaap_DeferredTaxLiabilities" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_PPPLoanProgramMember_5f82db4d-e692-4b3b-a9f6-bfef24aaf0c7_terseLabel_en-US" xlink:label="lab_tgen_PPPLoanProgramMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">PPP Loan Program</link:label>
    <link:label id="lab_tgen_PPPLoanProgramMember_label_en-US" xlink:label="lab_tgen_PPPLoanProgramMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">PPP Loan Program [Member]</link:label>
    <link:label id="lab_tgen_PPPLoanProgramMember_documentation_en-US" xlink:label="lab_tgen_PPPLoanProgramMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">PPP Loan Program</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_PPPLoanProgramMember" xlink:href="tgen-20241231.xsd#tgen_PPPLoanProgramMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_PPPLoanProgramMember" xlink:to="lab_tgen_PPPLoanProgramMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_InventoryWorkInProcessNetOfReserves_0a533d8b-af97-4a08-8bf0-b766183d549a_terseLabel_en-US" xlink:label="lab_us-gaap_InventoryWorkInProcessNetOfReserves" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Work-in-process</link:label>
    <link:label id="lab_us-gaap_InventoryWorkInProcessNetOfReserves_label_en-US" xlink:label="lab_us-gaap_InventoryWorkInProcessNetOfReserves" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Inventory, Work in Process, Net of Reserves</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryWorkInProcessNetOfReserves" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InventoryWorkInProcessNetOfReserves"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_InventoryWorkInProcessNetOfReserves" xlink:to="lab_us-gaap_InventoryWorkInProcessNetOfReserves" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentNet_5c13d476-2ad3-4d87-8a6e-46aa8e2a086d_terseLabel_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentNet" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Property, plant and equipment, net</link:label>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentNet_4a0c83fb-e948-4a8f-a94a-4d2af3fbdcef_totalLabel_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentNet" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Net property, plant and equipment</link:label>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentNet_label_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentNet" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Property, Plant and Equipment, Net</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentNet" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentNet"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentNet" xlink:to="lab_us-gaap_PropertyPlantAndEquipmentNet" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_IcfrAuditorAttestationFlag_35e63092-f803-46c7-a100-efae10fb9b3e_terseLabel_en-US" xlink:label="lab_dei_IcfrAuditorAttestationFlag" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">ICFR Auditor Attestation Flag</link:label>
    <link:label id="lab_dei_IcfrAuditorAttestationFlag_label_en-US" xlink:label="lab_dei_IcfrAuditorAttestationFlag" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">ICFR Auditor Attestation Flag</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_IcfrAuditorAttestationFlag" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_IcfrAuditorAttestationFlag"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_IcfrAuditorAttestationFlag" xlink:to="lab_dei_IcfrAuditorAttestationFlag" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_Liabilities_5a69cf0e-179b-4d24-a3e8-3ca3d90beb23_totalLabel_en-US" xlink:label="lab_us-gaap_Liabilities" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Total liabilities</link:label>
    <link:label id="lab_us-gaap_Liabilities_label_en-US" xlink:label="lab_us-gaap_Liabilities" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Liabilities</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Liabilities" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Liabilities"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_Liabilities" xlink:to="lab_us-gaap_Liabilities" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_MinorityInterest_2bfff038-3f6b-4383-a28a-ec7742cfee5c_netLabel_en-US" xlink:label="lab_us-gaap_MinorityInterest" xlink:role="http://www.xbrl.org/2009/role/netLabel" xlink:type="resource" xml:lang="en-US">Noncontrolling interest</link:label>
    <link:label id="lab_us-gaap_MinorityInterest_label_en-US" xlink:label="lab_us-gaap_MinorityInterest" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Equity, Attributable to Noncontrolling Interest</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MinorityInterest" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_MinorityInterest"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_MinorityInterest" xlink:to="lab_us-gaap_MinorityInterest" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_IntangibleAssetsMeasurementInput_5f5d7c84-2efe-47e5-8a4e-99fd523ecd33_terseLabel_en-US" xlink:label="lab_tgen_IntangibleAssetsMeasurementInput" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Intangible assets, measurement input</link:label>
    <link:label id="lab_tgen_IntangibleAssetsMeasurementInput_label_en-US" xlink:label="lab_tgen_IntangibleAssetsMeasurementInput" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Intangible Assets, Measurement Input</link:label>
    <link:label id="lab_tgen_IntangibleAssetsMeasurementInput_documentation_en-US" xlink:label="lab_tgen_IntangibleAssetsMeasurementInput" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Intangible Assets, Measurement Input</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_IntangibleAssetsMeasurementInput" xlink:href="tgen-20241231.xsd#tgen_IntangibleAssetsMeasurementInput"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_IntangibleAssetsMeasurementInput" xlink:to="lab_tgen_IntangibleAssetsMeasurementInput" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice_7ab2e392-70bf-4152-b14d-5eb8971fad9f_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Exercisable (usd per share)</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercisable, Weighted Average Exercise Price</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CommonStockParOrStatedValuePerShare_0f9ff763-06ac-45ec-9a3d-e0f407369cfa_terseLabel_en-US" xlink:label="lab_us-gaap_CommonStockParOrStatedValuePerShare" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Common stock, par value (usd per share)</link:label>
    <link:label id="lab_us-gaap_CommonStockParOrStatedValuePerShare_label_en-US" xlink:label="lab_us-gaap_CommonStockParOrStatedValuePerShare" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Common Stock, Par or Stated Value Per Share</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockParOrStatedValuePerShare" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockParOrStatedValuePerShare"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CommonStockParOrStatedValuePerShare" xlink:to="lab_us-gaap_CommonStockParOrStatedValuePerShare" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_da6985a5-b3a5-4448-a5dd-275f82419a1a_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Schedule of Share-based Compensation Arrangements by Share-based Payment Award [Table]</link:label>
    <link:label id="lab_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_label_en-US" xlink:label="lab_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Share-Based Compensation Arrangements by Share-Based Payment Award [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="lab_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_TrdArrExpirationDate_terseLabel_en-US" xlink:label="lab_ecd_TrdArrExpirationDate" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Expiration Date</link:label>
    <link:label id="lab_ecd_TrdArrExpirationDate_label_en-US" xlink:label="lab_ecd_TrdArrExpirationDate" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Trading Arrangement Expiration Date</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TrdArrExpirationDate" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_TrdArrExpirationDate"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_TrdArrExpirationDate" xlink:to="lab_ecd_TrdArrExpirationDate" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_9421c078-c9f5-4905-a1c9-d49147f2555a_terseLabel_en-US" xlink:label="lab_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">CASH FLOWS FROM INVESTING ACTIVITIES:</link:label>
    <link:label id="lab_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_label_en-US" xlink:label="lab_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Net Cash Provided by (Used in) Investing Activities [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:to="lab_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_ChangeInControlSeveranceBenefitPlanPeriodInForceExtension_0626b5a1-30fc-4dac-8fcb-cc5e48a991bd_terseLabel_en-US" xlink:label="lab_tgen_ChangeInControlSeveranceBenefitPlanPeriodInForceExtension" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Change in Control Severance Benefit Plan, extension period</link:label>
    <link:label id="lab_tgen_ChangeInControlSeveranceBenefitPlanPeriodInForceExtension_label_en-US" xlink:label="lab_tgen_ChangeInControlSeveranceBenefitPlanPeriodInForceExtension" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Change in Control Severance Benefit Plan, Period in Force, Extension</link:label>
    <link:label id="lab_tgen_ChangeInControlSeveranceBenefitPlanPeriodInForceExtension_documentation_en-US" xlink:label="lab_tgen_ChangeInControlSeveranceBenefitPlanPeriodInForceExtension" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Change in Control Severance Benefit Plan, Period in Force, Extension</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ChangeInControlSeveranceBenefitPlanPeriodInForceExtension" xlink:href="tgen-20241231.xsd#tgen_ChangeInControlSeveranceBenefitPlanPeriodInForceExtension"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_ChangeInControlSeveranceBenefitPlanPeriodInForceExtension" xlink:to="lab_tgen_ChangeInControlSeveranceBenefitPlanPeriodInForceExtension" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OperatingLeaseLiabilityCurrent_784453d6-d939-466f-8331-52af8295c53e_terseLabel_en-US" xlink:label="lab_us-gaap_OperatingLeaseLiabilityCurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Operating lease liability, current</link:label>
    <link:label id="lab_us-gaap_OperatingLeaseLiabilityCurrent_label_en-US" xlink:label="lab_us-gaap_OperatingLeaseLiabilityCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Operating Lease, Liability, Current</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseLiabilityCurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseLiabilityCurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OperatingLeaseLiabilityCurrent" xlink:to="lab_us-gaap_OperatingLeaseLiabilityCurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_TotalShareholderRtnAmt_terseLabel_en-US" xlink:label="lab_ecd_TotalShareholderRtnAmt" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Total Shareholder Return Amount</link:label>
    <link:label id="lab_ecd_TotalShareholderRtnAmt_label_en-US" xlink:label="lab_ecd_TotalShareholderRtnAmt" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Total Shareholder Return Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TotalShareholderRtnAmt" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_TotalShareholderRtnAmt"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_TotalShareholderRtnAmt" xlink:to="lab_ecd_TotalShareholderRtnAmt" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_EqtyAwrdsAdjFnTextBlock_terseLabel_en-US" xlink:label="lab_ecd_EqtyAwrdsAdjFnTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Equity Awards Adjustments, Footnote</link:label>
    <link:label id="lab_ecd_EqtyAwrdsAdjFnTextBlock_label_en-US" xlink:label="lab_ecd_EqtyAwrdsAdjFnTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Equity Awards Adjustments, Footnote [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_EqtyAwrdsAdjFnTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_EqtyAwrdsAdjFnTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_EqtyAwrdsAdjFnTextBlock" xlink:to="lab_ecd_EqtyAwrdsAdjFnTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DeferredTaxAssetsOperatingLossCarryforwards_bedb47d3-1a56-44fa-b398-d04851f8a2ca_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsOperatingLossCarryforwards" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Net operating loss carryforwards</link:label>
    <link:label id="lab_us-gaap_DeferredTaxAssetsOperatingLossCarryforwards_label_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsOperatingLossCarryforwards" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred Tax Assets, Operating Loss Carryforwards</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsOperatingLossCarryforwards" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsOperatingLossCarryforwards"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxAssetsOperatingLossCarryforwards" xlink:to="lab_us-gaap_DeferredTaxAssetsOperatingLossCarryforwards" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_A2022StockIncentivePlanMember_10a51e60-8150-43f3-9d36-dcdff06055c2_terseLabel_en-US" xlink:label="lab_tgen_A2022StockIncentivePlanMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">2022 Stock Incentive Plan</link:label>
    <link:label id="lab_tgen_A2022StockIncentivePlanMember_label_en-US" xlink:label="lab_tgen_A2022StockIncentivePlanMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">2022 Stock Incentive Plan [Member]</link:label>
    <link:label id="lab_tgen_A2022StockIncentivePlanMember_documentation_en-US" xlink:label="lab_tgen_A2022StockIncentivePlanMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">2022 Stock Incentive Plan</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_A2022StockIncentivePlanMember" xlink:href="tgen-20241231.xsd#tgen_A2022StockIncentivePlanMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_A2022StockIncentivePlanMember" xlink:to="lab_tgen_A2022StockIncentivePlanMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AssetAcquisitionContingentConsiderationLiabilityNoncurrent_3c4e3622-60f2-441f-8cb3-2b1484e3841f_terseLabel_en-US" xlink:label="lab_us-gaap_AssetAcquisitionContingentConsiderationLiabilityNoncurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Contingent contract consideration, long-term</link:label>
    <link:label id="lab_us-gaap_AssetAcquisitionContingentConsiderationLiabilityNoncurrent_label_en-US" xlink:label="lab_us-gaap_AssetAcquisitionContingentConsiderationLiabilityNoncurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Asset Acquisition, Contingent Consideration, Liability, Noncurrent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetAcquisitionContingentConsiderationLiabilityNoncurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetAcquisitionContingentConsiderationLiabilityNoncurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AssetAcquisitionContingentConsiderationLiabilityNoncurrent" xlink:to="lab_us-gaap_AssetAcquisitionContingentConsiderationLiabilityNoncurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SubsequentEventLineItems_cc4c2ecc-aabc-4588-89a8-f5776c99b4e9_terseLabel_en-US" xlink:label="lab_us-gaap_SubsequentEventLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Subsequent Event [Line Items]</link:label>
    <link:label id="lab_us-gaap_SubsequentEventLineItems_label_en-US" xlink:label="lab_us-gaap_SubsequentEventLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Subsequent Event [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventLineItems" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsequentEventLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SubsequentEventLineItems" xlink:to="lab_us-gaap_SubsequentEventLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_IncomeTaxReconciliationUnbenefitedOperatingLosses_639a5bfc-ac92-499f-ab9c-b79bd1dbf8e6_terseLabel_en-US" xlink:label="lab_tgen_IncomeTaxReconciliationUnbenefitedOperatingLosses" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Other</link:label>
    <link:label id="lab_tgen_IncomeTaxReconciliationUnbenefitedOperatingLosses_label_en-US" xlink:label="lab_tgen_IncomeTaxReconciliationUnbenefitedOperatingLosses" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Income Tax Reconciliation, Unbenefited Operating Losses</link:label>
    <link:label id="lab_tgen_IncomeTaxReconciliationUnbenefitedOperatingLosses_documentation_en-US" xlink:label="lab_tgen_IncomeTaxReconciliationUnbenefitedOperatingLosses" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Income Tax Reconciliation, Unbenefited Operating Losses</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_IncomeTaxReconciliationUnbenefitedOperatingLosses" xlink:href="tgen-20241231.xsd#tgen_IncomeTaxReconciliationUnbenefitedOperatingLosses"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_IncomeTaxReconciliationUnbenefitedOperatingLosses" xlink:to="lab_tgen_IncomeTaxReconciliationUnbenefitedOperatingLosses" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_NumberOfEmployeesAcquired_5751f2e4-5bbe-436f-a841-1243cf9c51e0_terseLabel_en-US" xlink:label="lab_tgen_NumberOfEmployeesAcquired" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Employees acquired</link:label>
    <link:label id="lab_tgen_NumberOfEmployeesAcquired_label_en-US" xlink:label="lab_tgen_NumberOfEmployeesAcquired" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Number of Employees Acquired</link:label>
    <link:label id="lab_tgen_NumberOfEmployeesAcquired_documentation_en-US" xlink:label="lab_tgen_NumberOfEmployeesAcquired" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Number of Employees Acquired</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_NumberOfEmployeesAcquired" xlink:href="tgen-20241231.xsd#tgen_NumberOfEmployeesAcquired"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_NumberOfEmployeesAcquired" xlink:to="lab_tgen_NumberOfEmployeesAcquired" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentGross_f7b1a728-25b8-4abd-9468-52eb15fc3974_terseLabel_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentGross" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Property and equipment, gross</link:label>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentGross_label_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentGross" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Property, Plant and Equipment, Gross</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentGross" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentGross"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentGross" xlink:to="lab_us-gaap_PropertyPlantAndEquipmentGross" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_56245de8-76f5-44a7-8d3c-6c3789410c89_terseLabel_en-US" xlink:label="lab_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Exercise of stock options (in shares)</link:label>
    <link:label id="lab_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_d54d2d25-ce0f-4adc-9b5f-f2245c876af1_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Exercise of stock options (in shares)</link:label>
    <link:label id="lab_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_label_en-US" xlink:label="lab_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercises in Period</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:to="lab_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_EnergyProductionAgreementsPercentageOfExcessCashFlowsAboveThreshold_9aa07b0b-a71d-4a06-930e-a18143ca0c32_terseLabel_en-US" xlink:label="lab_tgen_EnergyProductionAgreementsPercentageOfExcessCashFlowsAboveThreshold" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Percentage of excess cash flows above threshold</link:label>
    <link:label id="lab_tgen_EnergyProductionAgreementsPercentageOfExcessCashFlowsAboveThreshold_label_en-US" xlink:label="lab_tgen_EnergyProductionAgreementsPercentageOfExcessCashFlowsAboveThreshold" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Energy Production Agreements, Percentage Of Excess Cash Flows Above Threshold</link:label>
    <link:label id="lab_tgen_EnergyProductionAgreementsPercentageOfExcessCashFlowsAboveThreshold_documentation_en-US" xlink:label="lab_tgen_EnergyProductionAgreementsPercentageOfExcessCashFlowsAboveThreshold" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Energy Production Agreements, Percentage Of Excess Cash Flows Above Threshold</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_EnergyProductionAgreementsPercentageOfExcessCashFlowsAboveThreshold" xlink:href="tgen-20241231.xsd#tgen_EnergyProductionAgreementsPercentageOfExcessCashFlowsAboveThreshold"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_EnergyProductionAgreementsPercentageOfExcessCashFlowsAboveThreshold" xlink:to="lab_tgen_EnergyProductionAgreementsPercentageOfExcessCashFlowsAboveThreshold" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_NamedExecutiveOfficersFnTextBlock_terseLabel_en-US" xlink:label="lab_ecd_NamedExecutiveOfficersFnTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Named Executive Officers, Footnote</link:label>
    <link:label id="lab_ecd_NamedExecutiveOfficersFnTextBlock_label_en-US" xlink:label="lab_ecd_NamedExecutiveOfficersFnTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Named Executive Officers, Footnote [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_NamedExecutiveOfficersFnTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_NamedExecutiveOfficersFnTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_NamedExecutiveOfficersFnTextBlock" xlink:to="lab_ecd_NamedExecutiveOfficersFnTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward_68564dfa-2898-4fc7-9ea8-7f1afa9bcd11_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Weighted Average Exercise Price [Roll Forward]</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Weighted Average Exercise Price [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_AverageClosingSharePriceMember_6f8b6403-4c46-408a-8c61-bf9b46195628_terseLabel_en-US" xlink:label="lab_tgen_AverageClosingSharePriceMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Average Closing Share Price</link:label>
    <link:label id="lab_tgen_AverageClosingSharePriceMember_label_en-US" xlink:label="lab_tgen_AverageClosingSharePriceMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Average Closing Share Price [Member]</link:label>
    <link:label id="lab_tgen_AverageClosingSharePriceMember_documentation_en-US" xlink:label="lab_tgen_AverageClosingSharePriceMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Average Closing Share Price</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AverageClosingSharePriceMember" xlink:href="tgen-20241231.xsd#tgen_AverageClosingSharePriceMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_AverageClosingSharePriceMember" xlink:to="lab_tgen_AverageClosingSharePriceMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax_f6db695c-3801-42aa-946f-c8d167ad3726_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Unrealized gain on investment securities</link:label>
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax_7c414474-c3ab-4d4d-9a5e-c1256c42df90_terseLabel_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Unrealized gain (loss)</link:label>
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax_label_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">OCI, Debt Securities, Available-for-Sale, Gain (Loss), after Adjustment and Tax</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax" xlink:to="lab_us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_03d4f97b-b623-481b-8573-aa091caf3b00_terseLabel_en-US" xlink:label="lab_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Weighted average shares outstanding - diluted (in shares)</link:label>
    <link:label id="lab_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_d1b3790d-2e4e-498a-a235-e0d0c3575b6d_totalLabel_en-US" xlink:label="lab_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Weighted average shares outstanding - diluted (in shares)</link:label>
    <link:label id="lab_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_label_en-US" xlink:label="lab_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Weighted Average Number of Shares Outstanding, Diluted</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:to="lab_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_AssetAcquisitionNumberOfAdditionalMaintenanceContracts_e2dbfeb9-8276-4013-a09c-05fc993e2cf0_terseLabel_en-US" xlink:label="lab_tgen_AssetAcquisitionNumberOfAdditionalMaintenanceContracts" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Number of additional maintenance contracts</link:label>
    <link:label id="lab_tgen_AssetAcquisitionNumberOfAdditionalMaintenanceContracts_label_en-US" xlink:label="lab_tgen_AssetAcquisitionNumberOfAdditionalMaintenanceContracts" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Asset Acquisition, Number Of Additional Maintenance Contracts</link:label>
    <link:label id="lab_tgen_AssetAcquisitionNumberOfAdditionalMaintenanceContracts_documentation_en-US" xlink:label="lab_tgen_AssetAcquisitionNumberOfAdditionalMaintenanceContracts" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Asset Acquisition, Number Of Additional Maintenance Contracts</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AssetAcquisitionNumberOfAdditionalMaintenanceContracts" xlink:href="tgen-20241231.xsd#tgen_AssetAcquisitionNumberOfAdditionalMaintenanceContracts"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_AssetAcquisitionNumberOfAdditionalMaintenanceContracts" xlink:to="lab_tgen_AssetAcquisitionNumberOfAdditionalMaintenanceContracts" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_MnpiDiscTimedForCompValFlag_terseLabel_en-US" xlink:label="lab_ecd_MnpiDiscTimedForCompValFlag" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">MNPI Disclosure Timed for Compensation Value</link:label>
    <link:label id="lab_ecd_MnpiDiscTimedForCompValFlag_label_en-US" xlink:label="lab_ecd_MnpiDiscTimedForCompValFlag" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">MNPI Disclosure Timed for Compensation Value [Flag]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_MnpiDiscTimedForCompValFlag" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_MnpiDiscTimedForCompValFlag"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_MnpiDiscTimedForCompValFlag" xlink:to="lab_ecd_MnpiDiscTimedForCompValFlag" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_StockholdersEquity_bff1d332-1a65-4485-810b-32c8286b7b9e_totalLabel_en-US" xlink:label="lab_us-gaap_StockholdersEquity" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Equity, Attributable to Parent, Total</link:label>
    <link:label id="lab_us-gaap_StockholdersEquity_label_en-US" xlink:label="lab_us-gaap_StockholdersEquity" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Equity, Attributable to Parent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockholdersEquity" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockholdersEquity"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StockholdersEquity" xlink:to="lab_us-gaap_StockholdersEquity" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DeferredTaxAssetsGross_67368299-61cc-4aea-b2c3-c0b041254072_totalLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsGross" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Deferred tax assets</link:label>
    <link:label id="lab_us-gaap_DeferredTaxAssetsGross_label_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsGross" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred Tax Assets, Gross</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsGross" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsGross"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxAssetsGross" xlink:to="lab_us-gaap_DeferredTaxAssetsGross" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_FinanceLeaseExpense_ca130ed7-303a-467a-a73f-e6e90db9e13b_terseLabel_en-US" xlink:label="lab_tgen_FinanceLeaseExpense" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Finance lease, expense</link:label>
    <link:label id="lab_tgen_FinanceLeaseExpense_label_en-US" xlink:label="lab_tgen_FinanceLeaseExpense" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Finance Lease, Expense</link:label>
    <link:label id="lab_tgen_FinanceLeaseExpense_documentation_en-US" xlink:label="lab_tgen_FinanceLeaseExpense" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Finance Lease, Expense</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_FinanceLeaseExpense" xlink:href="tgen-20241231.xsd#tgen_FinanceLeaseExpense"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_FinanceLeaseExpense" xlink:to="lab_tgen_FinanceLeaseExpense" xlink:type="arc" order="1"/>
    <link:label id="lab_srt_LitigationCaseAxis_c76a31cd-0fae-40eb-9173-94ff79087939_terseLabel_en-US" xlink:label="lab_srt_LitigationCaseAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Litigation Case [Axis]</link:label>
    <link:label id="lab_srt_LitigationCaseAxis_label_en-US" xlink:label="lab_srt_LitigationCaseAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Litigation Case [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_srt_LitigationCaseAxis" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_LitigationCaseAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_LitigationCaseAxis" xlink:to="lab_srt_LitigationCaseAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_BusinessCombinationsAbstract_77736683-1185-435b-8eee-e97c58e373c2_terseLabel_en-US" xlink:label="lab_us-gaap_BusinessCombinationsAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Business Combinations [Abstract]</link:label>
    <link:label id="lab_us-gaap_BusinessCombinationsAbstract_label_en-US" xlink:label="lab_us-gaap_BusinessCombinationsAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Business Combinations [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationsAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationsAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessCombinationsAbstract" xlink:to="lab_us-gaap_BusinessCombinationsAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfGoodwillTextBlock_87d8ffab-1238-43e1-8602-ba282a31e332_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfGoodwillTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Schedule of Goodwill</link:label>
    <link:label id="lab_us-gaap_ScheduleOfGoodwillTextBlock_label_en-US" xlink:label="lab_us-gaap_ScheduleOfGoodwillTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Goodwill [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfGoodwillTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfGoodwillTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfGoodwillTextBlock" xlink:to="lab_us-gaap_ScheduleOfGoodwillTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ConcentrationRiskTypeDomain_8eb276db-ea3b-4e4f-9189-7ebe22e0ce9c_terseLabel_en-US" xlink:label="lab_us-gaap_ConcentrationRiskTypeDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Concentration Risk Type [Domain]</link:label>
    <link:label id="lab_us-gaap_ConcentrationRiskTypeDomain_label_en-US" xlink:label="lab_us-gaap_ConcentrationRiskTypeDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Concentration Risk Type [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskTypeDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskTypeDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ConcentrationRiskTypeDomain" xlink:to="lab_us-gaap_ConcentrationRiskTypeDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DefinedContributionPlanCostRecognized_a9b9b37b-4dc2-4369-9064-9a835cc445b7_terseLabel_en-US" xlink:label="lab_us-gaap_DefinedContributionPlanCostRecognized" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Contributions to plan</link:label>
    <link:label id="lab_us-gaap_DefinedContributionPlanCostRecognized_label_en-US" xlink:label="lab_us-gaap_DefinedContributionPlanCostRecognized" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Defined Contribution Plan, Cost</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DefinedContributionPlanCostRecognized" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DefinedContributionPlanCostRecognized"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DefinedContributionPlanCostRecognized" xlink:to="lab_us-gaap_DefinedContributionPlanCostRecognized" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ProductMember_fdb0ecf4-45ff-437e-af4b-3522fe066a51_terseLabel_en-US" xlink:label="lab_us-gaap_ProductMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Products</link:label>
    <link:label id="lab_us-gaap_ProductMember_label_en-US" xlink:label="lab_us-gaap_ProductMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Product [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProductMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProductMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ProductMember" xlink:to="lab_us-gaap_ProductMember" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_ChangeInControlSeveranceBenefitPlanThresholdPeriodForTerminationPriorToChangeInControl_12f862b1-05ea-49c6-9e32-fb5748c0b775_terseLabel_en-US" xlink:label="lab_tgen_ChangeInControlSeveranceBenefitPlanThresholdPeriodForTerminationPriorToChangeInControl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Change in Control Severance Benefit Plan, qualifying termination period prior to change in control</link:label>
    <link:label id="lab_tgen_ChangeInControlSeveranceBenefitPlanThresholdPeriodForTerminationPriorToChangeInControl_label_en-US" xlink:label="lab_tgen_ChangeInControlSeveranceBenefitPlanThresholdPeriodForTerminationPriorToChangeInControl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Change in Control Severance Benefit Plan, Threshold Period for Termination Prior to Change in Control</link:label>
    <link:label id="lab_tgen_ChangeInControlSeveranceBenefitPlanThresholdPeriodForTerminationPriorToChangeInControl_documentation_en-US" xlink:label="lab_tgen_ChangeInControlSeveranceBenefitPlanThresholdPeriodForTerminationPriorToChangeInControl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Change in Control Severance Benefit Plan, Threshold Period for Termination Prior to Change in Control</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ChangeInControlSeveranceBenefitPlanThresholdPeriodForTerminationPriorToChangeInControl" xlink:href="tgen-20241231.xsd#tgen_ChangeInControlSeveranceBenefitPlanThresholdPeriodForTerminationPriorToChangeInControl"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_ChangeInControlSeveranceBenefitPlanThresholdPeriodForTerminationPriorToChangeInControl" xlink:to="lab_tgen_ChangeInControlSeveranceBenefitPlanThresholdPeriodForTerminationPriorToChangeInControl" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_DocumentFiscalPeriodFocus_2cddc5d9-a2e6-4416-83da-3137c5eeb176_terseLabel_en-US" xlink:label="lab_dei_DocumentFiscalPeriodFocus" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Document Fiscal Period Focus</link:label>
    <link:label id="lab_dei_DocumentFiscalPeriodFocus_label_en-US" xlink:label="lab_dei_DocumentFiscalPeriodFocus" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Document Fiscal Period Focus</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_DocumentFiscalPeriodFocus" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentFiscalPeriodFocus"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_DocumentFiscalPeriodFocus" xlink:to="lab_dei_DocumentFiscalPeriodFocus" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AllExecutiveCategoriesMember_terseLabel_en-US" xlink:label="lab_ecd_AllExecutiveCategoriesMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">All Executive Categories</link:label>
    <link:label id="lab_ecd_AllExecutiveCategoriesMember_label_en-US" xlink:label="lab_ecd_AllExecutiveCategoriesMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">All Executive Categories [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AllExecutiveCategoriesMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AllExecutiveCategoriesMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AllExecutiveCategoriesMember" xlink:to="lab_ecd_AllExecutiveCategoriesMember" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_ChangedPeerGroupFnTextBlock_terseLabel_en-US" xlink:label="lab_ecd_ChangedPeerGroupFnTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Changed Peer Group, Footnote</link:label>
    <link:label id="lab_ecd_ChangedPeerGroupFnTextBlock_label_en-US" xlink:label="lab_ecd_ChangedPeerGroupFnTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Changed Peer Group, Footnote [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_ChangedPeerGroupFnTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_ChangedPeerGroupFnTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_ChangedPeerGroupFnTextBlock" xlink:to="lab_ecd_ChangedPeerGroupFnTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2_23aea103-2a69-4840-b062-02ea562c6957_terseLabel_en-US" xlink:label="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Outstanding, Weighted Average Remaining Life</link:label>
    <link:label id="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2_label_en-US" xlink:label="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Weighted Average Remaining Contractual Term</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" xlink:to="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_BusinessAcquisitionPurchasePriceAllocationGoodwillExpectedTaxDeductibleAmount_d6e13187-c103-4bfc-afb8-8e788bf5e267_terseLabel_en-US" xlink:label="lab_us-gaap_BusinessAcquisitionPurchasePriceAllocationGoodwillExpectedTaxDeductibleAmount" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Goodwill expected to be tax deductible</link:label>
    <link:label id="lab_us-gaap_BusinessAcquisitionPurchasePriceAllocationGoodwillExpectedTaxDeductibleAmount_label_en-US" xlink:label="lab_us-gaap_BusinessAcquisitionPurchasePriceAllocationGoodwillExpectedTaxDeductibleAmount" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Business Acquisition, Goodwill, Expected Tax Deductible Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionPurchasePriceAllocationGoodwillExpectedTaxDeductibleAmount" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionPurchasePriceAllocationGoodwillExpectedTaxDeductibleAmount"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessAcquisitionPurchasePriceAllocationGoodwillExpectedTaxDeductibleAmount" xlink:to="lab_us-gaap_BusinessAcquisitionPurchasePriceAllocationGoodwillExpectedTaxDeductibleAmount" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AssetsAbstract_158cebaa-5f74-44ba-9157-4e7026541f5a_terseLabel_en-US" xlink:label="lab_us-gaap_AssetsAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">ASSETS</link:label>
    <link:label id="lab_us-gaap_AssetsAbstract_label_en-US" xlink:label="lab_us-gaap_AssetsAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Assets [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetsAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetsAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AssetsAbstract" xlink:to="lab_us-gaap_AssetsAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_EurositePowerIncMember_819bad40-ef12-47d2-9c14-2c0327679245_terseLabel_en-US" xlink:label="lab_tgen_EurositePowerIncMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Eurosite Power Inc.</link:label>
    <link:label id="lab_tgen_EurositePowerIncMember_label_en-US" xlink:label="lab_tgen_EurositePowerIncMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Eurosite Power Inc [Member]</link:label>
    <link:label id="lab_tgen_EurositePowerIncMember_documentation_en-US" xlink:label="lab_tgen_EurositePowerIncMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">EuroSite Power Inc.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_EurositePowerIncMember" xlink:href="tgen-20241231.xsd#tgen_EurositePowerIncMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_EurositePowerIncMember" xlink:to="lab_tgen_EurositePowerIncMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate_279c6b5d-5da4-44af-828a-5d2549386242_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Fair Value Assumptions, Expected Dividend Rate</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Fair Value Assumptions, Expected Dividend Rate</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncomeTaxReconciliationNondeductibleExpenseResearchAndDevelopment_1bbea55a-d482-4eea-948d-1a8a5a7dfdd1_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeTaxReconciliationNondeductibleExpenseResearchAndDevelopment" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Capitalized research and development expenses</link:label>
    <link:label id="lab_us-gaap_IncomeTaxReconciliationNondeductibleExpenseResearchAndDevelopment_label_en-US" xlink:label="lab_us-gaap_IncomeTaxReconciliationNondeductibleExpenseResearchAndDevelopment" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Effective Income Tax Rate Reconciliation, Nondeductible Expense, Research and Development, Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxReconciliationNondeductibleExpenseResearchAndDevelopment" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxReconciliationNondeductibleExpenseResearchAndDevelopment"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeTaxReconciliationNondeductibleExpenseResearchAndDevelopment" xlink:to="lab_us-gaap_IncomeTaxReconciliationNondeductibleExpenseResearchAndDevelopment" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_DocumentType_dce6187e-b598-4bfb-82e1-5e22e7f0004f_terseLabel_en-US" xlink:label="lab_dei_DocumentType" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Document Type</link:label>
    <link:label id="lab_dei_DocumentType_label_en-US" xlink:label="lab_dei_DocumentType" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Document Type</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_DocumentType" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentType"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_DocumentType" xlink:to="lab_dei_DocumentType" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock_86b5af7e-f132-4d3e-8848-ab312a391b9a_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Schedule of Infomration by Reportable Segment</link:label>
    <link:label id="lab_us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock_label_en-US" xlink:label="lab_us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Segment Reporting Information, by Segment [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock" xlink:to="lab_us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ComputerSoftwareIntangibleAssetMember_a6f5f7be-cef1-4d71-a9db-6ce0811f4da6_terseLabel_en-US" xlink:label="lab_us-gaap_ComputerSoftwareIntangibleAssetMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Computer software</link:label>
    <link:label id="lab_us-gaap_ComputerSoftwareIntangibleAssetMember_label_en-US" xlink:label="lab_us-gaap_ComputerSoftwareIntangibleAssetMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Computer Software, Intangible Asset [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ComputerSoftwareIntangibleAssetMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ComputerSoftwareIntangibleAssetMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ComputerSoftwareIntangibleAssetMember" xlink:to="lab_us-gaap_ComputerSoftwareIntangibleAssetMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_BusinessCombinationContingentConsiderationLiabilityNoncurrent_581a2f3f-7fb2-4cc4-b905-01475e974d98_terseLabel_en-US" xlink:label="lab_us-gaap_BusinessCombinationContingentConsiderationLiabilityNoncurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Acquisition liabilities, net of current portion</link:label>
    <link:label id="lab_us-gaap_BusinessCombinationContingentConsiderationLiabilityNoncurrent_label_en-US" xlink:label="lab_us-gaap_BusinessCombinationContingentConsiderationLiabilityNoncurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Business Combination, Contingent Consideration, Liability, Noncurrent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationContingentConsiderationLiabilityNoncurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationContingentConsiderationLiabilityNoncurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessCombinationContingentConsiderationLiabilityNoncurrent" xlink:to="lab_us-gaap_BusinessCombinationContingentConsiderationLiabilityNoncurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OtherIncomeAndExpensesAbstract_39d1d409-eaae-4643-a76b-f7905271c695_terseLabel_en-US" xlink:label="lab_us-gaap_OtherIncomeAndExpensesAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Other income (expense)</link:label>
    <link:label id="lab_us-gaap_OtherIncomeAndExpensesAbstract_label_en-US" xlink:label="lab_us-gaap_OtherIncomeAndExpensesAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Other Income and Expenses [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherIncomeAndExpensesAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherIncomeAndExpensesAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherIncomeAndExpensesAbstract" xlink:to="lab_us-gaap_OtherIncomeAndExpensesAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock_13028c4a-15fe-46ce-b07a-846cdfb1da90_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Schedule of Estimated Future Amortization Expense</link:label>
    <link:label id="lab_us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock_label_en-US" xlink:label="lab_us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Finite-Lived Intangible Assets, Future Amortization Expense [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock" xlink:to="lab_us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SubsequentEventTable_db32d55b-7d9d-4a09-adc3-d36c45f7eb2c_terseLabel_en-US" xlink:label="lab_us-gaap_SubsequentEventTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Subsequent Event [Table]</link:label>
    <link:label id="lab_us-gaap_SubsequentEventTable_label_en-US" xlink:label="lab_us-gaap_SubsequentEventTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Subsequent Event [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventTable" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsequentEventTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SubsequentEventTable" xlink:to="lab_us-gaap_SubsequentEventTable" xlink:type="arc" order="1"/>
    <link:label id="lab_srt_MaximumMember_7d252cf9-28e1-4677-b4f7-0e4607732a54_terseLabel_en-US" xlink:label="lab_srt_MaximumMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Maximum</link:label>
    <link:label id="lab_srt_MaximumMember_label_en-US" xlink:label="lab_srt_MaximumMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Maximum [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MaximumMember" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MaximumMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_MaximumMember" xlink:to="lab_srt_MaximumMember" xlink:type="arc" order="1"/>
    <link:label id="lab_srt_ParentCompanyMember_d57ef567-5608-4a95-90b4-9c26e0cbd6fa_terseLabel_en-US" xlink:label="lab_srt_ParentCompanyMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Tecogen</link:label>
    <link:label id="lab_srt_ParentCompanyMember_label_en-US" xlink:label="lab_srt_ParentCompanyMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Parent Company [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ParentCompanyMember" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ParentCompanyMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_ParentCompanyMember" xlink:to="lab_srt_ParentCompanyMember" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_EquityValuationAssumptionDifferenceFnTextBlock_terseLabel_en-US" xlink:label="lab_ecd_EquityValuationAssumptionDifferenceFnTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Equity Valuation Assumption Difference, Footnote</link:label>
    <link:label id="lab_ecd_EquityValuationAssumptionDifferenceFnTextBlock_label_en-US" xlink:label="lab_ecd_EquityValuationAssumptionDifferenceFnTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Equity Valuation Assumption Difference, Footnote [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_EquityValuationAssumptionDifferenceFnTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_EquityValuationAssumptionDifferenceFnTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_EquityValuationAssumptionDifferenceFnTextBlock" xlink:to="lab_ecd_EquityValuationAssumptionDifferenceFnTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FurnitureAndFixturesMember_7899ef44-9b59-4cd1-a1aa-468f059b21cb_terseLabel_en-US" xlink:label="lab_us-gaap_FurnitureAndFixturesMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Furniture and Fixtures</link:label>
    <link:label id="lab_us-gaap_FurnitureAndFixturesMember_label_en-US" xlink:label="lab_us-gaap_FurnitureAndFixturesMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Furniture and Fixtures [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FurnitureAndFixturesMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FurnitureAndFixturesMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FurnitureAndFixturesMember" xlink:to="lab_us-gaap_FurnitureAndFixturesMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsNet_9be033f4-b0ca-477e-bd30-d5f40ff76672_terseLabel_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsNet" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Intangible assets, net</link:label>
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsNet_909fee67-ba7e-41ef-ba56-d6326cb5a82c_totalLabel_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsNet" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Total</link:label>
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsNet_label_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsNet" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Finite-Lived Intangible Assets, Net</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsNet" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsNet"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsNet" xlink:to="lab_us-gaap_FiniteLivedIntangibleAssetsNet" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_e3c068cf-ccdb-43db-aa71-7eeb014fe36a_terseLabel_en-US" xlink:label="lab_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Antidilutive Securities [Axis]</link:label>
    <link:label id="lab_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_label_en-US" xlink:label="lab_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Antidilutive Securities [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xlink:to="lab_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AccountsPayableCurrent_d9393870-7450-4855-a26a-15856a8eede2_terseLabel_en-US" xlink:label="lab_us-gaap_AccountsPayableCurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Accounts payable</link:label>
    <link:label id="lab_us-gaap_AccountsPayableCurrent_label_en-US" xlink:label="lab_us-gaap_AccountsPayableCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accounts Payable, Current</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountsPayableCurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountsPayableCurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccountsPayableCurrent" xlink:to="lab_us-gaap_AccountsPayableCurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_DeferredTaxAssetTaxDeferredExpenseReservesAndAccrualsAccruedLiabilitiesAndOther_92df0cc7-1380-4aab-bc07-9fe0c8b49f07_terseLabel_en-US" xlink:label="lab_tgen_DeferredTaxAssetTaxDeferredExpenseReservesAndAccrualsAccruedLiabilitiesAndOther" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Accrued expenses and other</link:label>
    <link:label id="lab_tgen_DeferredTaxAssetTaxDeferredExpenseReservesAndAccrualsAccruedLiabilitiesAndOther_label_en-US" xlink:label="lab_tgen_DeferredTaxAssetTaxDeferredExpenseReservesAndAccrualsAccruedLiabilitiesAndOther" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred Tax Asset, Tax Deferred Expense, Reserves And Accruals Accrued Liabilities And Other</link:label>
    <link:label id="lab_tgen_DeferredTaxAssetTaxDeferredExpenseReservesAndAccrualsAccruedLiabilitiesAndOther_documentation_en-US" xlink:label="lab_tgen_DeferredTaxAssetTaxDeferredExpenseReservesAndAccrualsAccruedLiabilitiesAndOther" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Deferred Tax Asset, Tax Deferred Expense, Reserves And Accruals Accrued Liabilities And Other</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_DeferredTaxAssetTaxDeferredExpenseReservesAndAccrualsAccruedLiabilitiesAndOther" xlink:href="tgen-20241231.xsd#tgen_DeferredTaxAssetTaxDeferredExpenseReservesAndAccrualsAccruedLiabilitiesAndOther"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_DeferredTaxAssetTaxDeferredExpenseReservesAndAccrualsAccruedLiabilitiesAndOther" xlink:to="lab_tgen_DeferredTaxAssetTaxDeferredExpenseReservesAndAccrualsAccruedLiabilitiesAndOther" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock_a585bb8f-7bbd-46b3-b819-2eab2382d085_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Summary of Weighted Average Assumptions Used in Black-Scholes Option Pricing</link:label>
    <link:label id="lab_us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock_label_en-US" xlink:label="lab_us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Share-Based Payment Award, Stock Options, Valuation Assumptions [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock" xlink:to="lab_us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LeaseCost_b012d14a-0391-4b1c-b47c-253e5e510353_terseLabel_en-US" xlink:label="lab_us-gaap_LeaseCost" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Lease cost</link:label>
    <link:label id="lab_us-gaap_LeaseCost_label_en-US" xlink:label="lab_us-gaap_LeaseCost" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Lease, Cost</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LeaseCost" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LeaseCost"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LeaseCost" xlink:to="lab_us-gaap_LeaseCost" xlink:type="arc" order="1"/>
    <link:label id="lab_srt_RangeAxis_e4ea7da7-29d5-49bc-ad6f-a21dcc5d500d_terseLabel_en-US" xlink:label="lab_srt_RangeAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Statistical Measurement [Axis]</link:label>
    <link:label id="lab_srt_RangeAxis_label_en-US" xlink:label="lab_srt_RangeAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Statistical Measurement [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeAxis" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_RangeAxis" xlink:to="lab_srt_RangeAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_NonRule10b51ArrTrmntdFlag_terseLabel_en-US" xlink:label="lab_ecd_NonRule10b51ArrTrmntdFlag" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Non-Rule 10b5-1 Arrangement Terminated</link:label>
    <link:label id="lab_ecd_NonRule10b51ArrTrmntdFlag_label_en-US" xlink:label="lab_ecd_NonRule10b51ArrTrmntdFlag" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Non-Rule 10b5-1 Arrangement Terminated [Flag]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_NonRule10b51ArrTrmntdFlag" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_NonRule10b51ArrTrmntdFlag"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_NonRule10b51ArrTrmntdFlag" xlink:to="lab_ecd_NonRule10b51ArrTrmntdFlag" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_DebtInstrumentPrincipalDecreaseForgiveness_410b9cda-4402-4d19-a02f-dd5e270570c3_terseLabel_en-US" xlink:label="lab_tgen_DebtInstrumentPrincipalDecreaseForgiveness" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Debt forgiveness, principal amount</link:label>
    <link:label id="lab_tgen_DebtInstrumentPrincipalDecreaseForgiveness_label_en-US" xlink:label="lab_tgen_DebtInstrumentPrincipalDecreaseForgiveness" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Debt Instrument, Principal Decrease, Forgiveness</link:label>
    <link:label id="lab_tgen_DebtInstrumentPrincipalDecreaseForgiveness_documentation_en-US" xlink:label="lab_tgen_DebtInstrumentPrincipalDecreaseForgiveness" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Debt Instrument, Principal Decrease, Forgiveness</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_DebtInstrumentPrincipalDecreaseForgiveness" xlink:href="tgen-20241231.xsd#tgen_DebtInstrumentPrincipalDecreaseForgiveness"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_DebtInstrumentPrincipalDecreaseForgiveness" xlink:to="lab_tgen_DebtInstrumentPrincipalDecreaseForgiveness" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LessorLeaseDescriptionLineItems_4ee00baf-5ba5-4425-abae-2e21d38d8b36_terseLabel_en-US" xlink:label="lab_us-gaap_LessorLeaseDescriptionLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Lessor, Lease, Description [Line Items]</link:label>
    <link:label id="lab_us-gaap_LessorLeaseDescriptionLineItems_label_en-US" xlink:label="lab_us-gaap_LessorLeaseDescriptionLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Lessor, Lease, Description [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LessorLeaseDescriptionLineItems" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LessorLeaseDescriptionLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems" xlink:to="lab_us-gaap_LessorLeaseDescriptionLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_419f4d09-bb1a-4af8-a9dd-bca8f319c0ef_totalLabel_en-US" xlink:label="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Loss before income taxes</link:label>
    <link:label id="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_75a1cf3a-fe16-42b7-b01e-33d42deae64f_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Pre-tax book income</link:label>
    <link:label id="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_label_en-US" xlink:label="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Income (Loss) from Continuing Operations before Income Taxes, Noncontrolling Interest</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:to="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_NonPeoNeoAvgTotalCompAmt_terseLabel_en-US" xlink:label="lab_ecd_NonPeoNeoAvgTotalCompAmt" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Non-PEO NEO Average Total Compensation Amount</link:label>
    <link:label id="lab_ecd_NonPeoNeoAvgTotalCompAmt_label_en-US" xlink:label="lab_ecd_NonPeoNeoAvgTotalCompAmt" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Non-PEO NEO Average Total Compensation Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_NonPeoNeoAvgTotalCompAmt" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_NonPeoNeoAvgTotalCompAmt"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_NonPeoNeoAvgTotalCompAmt" xlink:to="lab_ecd_NonPeoNeoAvgTotalCompAmt" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_OutstandingRecoveryIndName_terseLabel_en-US" xlink:label="lab_ecd_OutstandingRecoveryIndName" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Name</link:label>
    <link:label id="lab_ecd_OutstandingRecoveryIndName_label_en-US" xlink:label="lab_ecd_OutstandingRecoveryIndName" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Outstanding Recovery, Individual Name</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_OutstandingRecoveryIndName" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_OutstandingRecoveryIndName"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_OutstandingRecoveryIndName" xlink:to="lab_ecd_OutstandingRecoveryIndName" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DisaggregationOfRevenueLineItems_ed0b4ded-be57-4073-bf59-bf3920b17594_terseLabel_en-US" xlink:label="lab_us-gaap_DisaggregationOfRevenueLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Disaggregation of Revenue [Line Items]</link:label>
    <link:label id="lab_us-gaap_DisaggregationOfRevenueLineItems_label_en-US" xlink:label="lab_us-gaap_DisaggregationOfRevenueLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Disaggregation of Revenue [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisaggregationOfRevenueLineItems" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisaggregationOfRevenueLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems" xlink:to="lab_us-gaap_DisaggregationOfRevenueLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_AssetAcquisitionPropertyPlantAndEquipment_0c48d8cd-62bc-4b29-ab8d-76b188c0cb47_terseLabel_en-US" xlink:label="lab_tgen_AssetAcquisitionPropertyPlantAndEquipment" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Property, plant and equipment</link:label>
    <link:label id="lab_tgen_AssetAcquisitionPropertyPlantAndEquipment_label_en-US" xlink:label="lab_tgen_AssetAcquisitionPropertyPlantAndEquipment" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Asset Acquisition, Property, Plant and Equipment</link:label>
    <link:label id="lab_tgen_AssetAcquisitionPropertyPlantAndEquipment_documentation_en-US" xlink:label="lab_tgen_AssetAcquisitionPropertyPlantAndEquipment" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Asset Acquisition, Property, Plant and Equipment</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AssetAcquisitionPropertyPlantAndEquipment" xlink:href="tgen-20241231.xsd#tgen_AssetAcquisitionPropertyPlantAndEquipment"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_AssetAcquisitionPropertyPlantAndEquipment" xlink:to="lab_tgen_AssetAcquisitionPropertyPlantAndEquipment" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_GoodwillImpairmentLoss_9a0fe3a5-df76-4f59-96ef-e68059989953_terseLabel_en-US" xlink:label="lab_us-gaap_GoodwillImpairmentLoss" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Goodwill impairment</link:label>
    <link:label id="lab_us-gaap_GoodwillImpairmentLoss_75bf8028-2af9-4902-a64d-c7d7ee7052f8_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_GoodwillImpairmentLoss" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Impairment</link:label>
    <link:label id="lab_us-gaap_GoodwillImpairmentLoss_label_en-US" xlink:label="lab_us-gaap_GoodwillImpairmentLoss" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Goodwill, Impairment Loss</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillImpairmentLoss" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GoodwillImpairmentLoss"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_GoodwillImpairmentLoss" xlink:to="lab_us-gaap_GoodwillImpairmentLoss" xlink:type="arc" order="1"/>
    <link:label id="lab_srt_TitleOfIndividualAxis_4708bd31-3bfd-453f-b00e-5b5abf1cac88_terseLabel_en-US" xlink:label="lab_srt_TitleOfIndividualAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Title and Position [Axis]</link:label>
    <link:label id="lab_srt_TitleOfIndividualAxis_label_en-US" xlink:label="lab_srt_TitleOfIndividualAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Title and Position [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_srt_TitleOfIndividualAxis" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_TitleOfIndividualAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_TitleOfIndividualAxis" xlink:to="lab_srt_TitleOfIndividualAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearFour_344e3360-9bc9-4afe-a82c-353fcc72e6fb_terseLabel_en-US" xlink:label="lab_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearFour" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">2028</link:label>
    <link:label id="lab_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearFour_label_en-US" xlink:label="lab_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearFour" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Finite-Lived Intangible Assets And Liability, Net, Amortization Expense, Rolling Year Four</link:label>
    <link:label id="lab_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearFour_documentation_en-US" xlink:label="lab_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearFour" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Finite-Lived Intangible Assets And Liability, Net, Amortization Expense, Rolling Year Four</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearFour" xlink:href="tgen-20241231.xsd#tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearFour"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearFour" xlink:to="lab_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearFour" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AwardTmgPredtrmndFlag_terseLabel_en-US" xlink:label="lab_ecd_AwardTmgPredtrmndFlag" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Award Timing Predetermined</link:label>
    <link:label id="lab_ecd_AwardTmgPredtrmndFlag_label_en-US" xlink:label="lab_ecd_AwardTmgPredtrmndFlag" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Award Timing Predetermined [Flag]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardTmgPredtrmndFlag" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AwardTmgPredtrmndFlag"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AwardTmgPredtrmndFlag" xlink:to="lab_ecd_AwardTmgPredtrmndFlag" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SubsequentEventTypeDomain_788f3ba0-d7b1-4d53-9014-369bbe049ae7_terseLabel_en-US" xlink:label="lab_us-gaap_SubsequentEventTypeDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Subsequent Event Type [Domain]</link:label>
    <link:label id="lab_us-gaap_SubsequentEventTypeDomain_label_en-US" xlink:label="lab_us-gaap_SubsequentEventTypeDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Subsequent Event Type [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventTypeDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsequentEventTypeDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SubsequentEventTypeDomain" xlink:to="lab_us-gaap_SubsequentEventTypeDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_ContingentConsiderationArrangementsPolicyPolicyTextBlock_fec9e025-27e2-4f09-a50b-b146ea3493cc_terseLabel_en-US" xlink:label="lab_tgen_ContingentConsiderationArrangementsPolicyPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Acquisition-Related Contingent Consideration</link:label>
    <link:label id="lab_tgen_ContingentConsiderationArrangementsPolicyPolicyTextBlock_label_en-US" xlink:label="lab_tgen_ContingentConsiderationArrangementsPolicyPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Contingent Consideration Arrangements, Policy [Policy Text Block]</link:label>
    <link:label id="lab_tgen_ContingentConsiderationArrangementsPolicyPolicyTextBlock_documentation_en-US" xlink:label="lab_tgen_ContingentConsiderationArrangementsPolicyPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Contingent Consideration Arrangements, Policy</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ContingentConsiderationArrangementsPolicyPolicyTextBlock" xlink:href="tgen-20241231.xsd#tgen_ContingentConsiderationArrangementsPolicyPolicyTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_ContingentConsiderationArrangementsPolicyPolicyTextBlock" xlink:to="lab_tgen_ContingentConsiderationArrangementsPolicyPolicyTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_srt_ScenarioForecastMember_bd37ec0d-f0d4-44f5-af0c-6b9416d65fc1_terseLabel_en-US" xlink:label="lab_srt_ScenarioForecastMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Forecast</link:label>
    <link:label id="lab_srt_ScenarioForecastMember_label_en-US" xlink:label="lab_srt_ScenarioForecastMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Forecast [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ScenarioForecastMember" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ScenarioForecastMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_ScenarioForecastMember" xlink:to="lab_srt_ScenarioForecastMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EarningsPerShareDiluted_06688869-36f7-4b9c-a1dd-80e39eca9be5_terseLabel_en-US" xlink:label="lab_us-gaap_EarningsPerShareDiluted" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Net income (loss) per share - diluted (in USD per share)</link:label>
    <link:label id="lab_us-gaap_EarningsPerShareDiluted_label_en-US" xlink:label="lab_us-gaap_EarningsPerShareDiluted" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Earnings Per Share, Diluted</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EarningsPerShareDiluted" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EarningsPerShareDiluted"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EarningsPerShareDiluted" xlink:to="lab_us-gaap_EarningsPerShareDiluted" xlink:type="arc" order="1"/>
    <link:label id="lab_srt_RepurchaseAgreementCounterpartyNameDomain_5046ad8d-7947-4ef8-a480-fff614f5c648_terseLabel_en-US" xlink:label="lab_srt_RepurchaseAgreementCounterpartyNameDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Counterparty Name [Domain]</link:label>
    <link:label id="lab_srt_RepurchaseAgreementCounterpartyNameDomain_label_en-US" xlink:label="lab_srt_RepurchaseAgreementCounterpartyNameDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Counterparty Name [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RepurchaseAgreementCounterpartyNameDomain" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RepurchaseAgreementCounterpartyNameDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_RepurchaseAgreementCounterpartyNameDomain" xlink:to="lab_srt_RepurchaseAgreementCounterpartyNameDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RevenueFromContractWithCustomerPolicyTextBlock_c5cba660-1424-4775-aab6-d5d1b9e2a346_terseLabel_en-US" xlink:label="lab_us-gaap_RevenueFromContractWithCustomerPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Revenue Recognition</link:label>
    <link:label id="lab_us-gaap_RevenueFromContractWithCustomerPolicyTextBlock_label_en-US" xlink:label="lab_us-gaap_RevenueFromContractWithCustomerPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Revenue from Contract with Customer [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerPolicyTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueFromContractWithCustomerPolicyTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RevenueFromContractWithCustomerPolicyTextBlock" xlink:to="lab_us-gaap_RevenueFromContractWithCustomerPolicyTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_StateAndLocalJurisdictionMember_1e816d1b-745a-415c-a8af-d1f6703044c2_terseLabel_en-US" xlink:label="lab_us-gaap_StateAndLocalJurisdictionMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">State Jurisdiction</link:label>
    <link:label id="lab_us-gaap_StateAndLocalJurisdictionMember_label_en-US" xlink:label="lab_us-gaap_StateAndLocalJurisdictionMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">State and Local Jurisdiction [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StateAndLocalJurisdictionMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StateAndLocalJurisdictionMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StateAndLocalJurisdictionMember" xlink:to="lab_us-gaap_StateAndLocalJurisdictionMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncreaseDecreaseInContractWithCustomerLiability_560155a3-c042-4d0d-a1d4-64604092b50e_terseLabel_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInContractWithCustomerLiability" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Unbilled revenue</link:label>
    <link:label id="lab_us-gaap_IncreaseDecreaseInContractWithCustomerLiability_label_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInContractWithCustomerLiability" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Increase (Decrease) in Contract with Customer, Liability</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInContractWithCustomerLiability" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInContractWithCustomerLiability"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncreaseDecreaseInContractWithCustomerLiability" xlink:to="lab_us-gaap_IncreaseDecreaseInContractWithCustomerLiability" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_RestatementDoesNotRequireRecoveryTextBlock_terseLabel_en-US" xlink:label="lab_ecd_RestatementDoesNotRequireRecoveryTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Restatement does not require Recovery</link:label>
    <link:label id="lab_ecd_RestatementDoesNotRequireRecoveryTextBlock_label_en-US" xlink:label="lab_ecd_RestatementDoesNotRequireRecoveryTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Restatement Does Not Require Recovery [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_RestatementDoesNotRequireRecoveryTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_RestatementDoesNotRequireRecoveryTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_RestatementDoesNotRequireRecoveryTextBlock" xlink:to="lab_ecd_RestatementDoesNotRequireRecoveryTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_srt_OwnershipAxis_1df91eeb-ad69-4f17-a145-d67700bafdd0_terseLabel_en-US" xlink:label="lab_srt_OwnershipAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Ownership [Axis]</link:label>
    <link:label id="lab_srt_OwnershipAxis_label_en-US" xlink:label="lab_srt_OwnershipAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Ownership [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_srt_OwnershipAxis" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_OwnershipAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_OwnershipAxis" xlink:to="lab_srt_OwnershipAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IntangibleAssetsFiniteLivedPolicy_0a06a708-f534-4351-9100-a4da3e8f1ac1_terseLabel_en-US" xlink:label="lab_us-gaap_IntangibleAssetsFiniteLivedPolicy" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Intangible Assets</link:label>
    <link:label id="lab_us-gaap_IntangibleAssetsFiniteLivedPolicy_label_en-US" xlink:label="lab_us-gaap_IntangibleAssetsFiniteLivedPolicy" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Intangible Assets, Finite-Lived, Policy [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IntangibleAssetsFiniteLivedPolicy" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IntangibleAssetsFiniteLivedPolicy"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IntangibleAssetsFiniteLivedPolicy" xlink:to="lab_us-gaap_IntangibleAssetsFiniteLivedPolicy" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_LesseeOperatingLeaseNumberOfLeaseAgreements_64339041-49ef-4dab-9344-ed6a51618470_terseLabel_en-US" xlink:label="lab_tgen_LesseeOperatingLeaseNumberOfLeaseAgreements" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Number of lease agreements</link:label>
    <link:label id="lab_tgen_LesseeOperatingLeaseNumberOfLeaseAgreements_label_en-US" xlink:label="lab_tgen_LesseeOperatingLeaseNumberOfLeaseAgreements" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Lessee, Operating Lease, Number Of Lease Agreements</link:label>
    <link:label id="lab_tgen_LesseeOperatingLeaseNumberOfLeaseAgreements_documentation_en-US" xlink:label="lab_tgen_LesseeOperatingLeaseNumberOfLeaseAgreements" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Lessee, Operating Lease, Number Of Lease Agreements</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_LesseeOperatingLeaseNumberOfLeaseAgreements" xlink:href="tgen-20241231.xsd#tgen_LesseeOperatingLeaseNumberOfLeaseAgreements"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_LesseeOperatingLeaseNumberOfLeaseAgreements" xlink:to="lab_tgen_LesseeOperatingLeaseNumberOfLeaseAgreements" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CompensationAndRetirementDisclosureAbstract_0b0bebea-29df-444b-bb98-6e8b1163ab6e_terseLabel_en-US" xlink:label="lab_us-gaap_CompensationAndRetirementDisclosureAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Retirement Benefits [Abstract]</link:label>
    <link:label id="lab_us-gaap_CompensationAndRetirementDisclosureAbstract_label_en-US" xlink:label="lab_us-gaap_CompensationAndRetirementDisclosureAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Retirement Benefits [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CompensationAndRetirementDisclosureAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CompensationAndRetirementDisclosureAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CompensationAndRetirementDisclosureAbstract" xlink:to="lab_us-gaap_CompensationAndRetirementDisclosureAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DefinedContributionPlanEmployerMatchingContributionPercent_f9c67ed6-1c64-4032-8b55-e93438177145_terseLabel_en-US" xlink:label="lab_us-gaap_DefinedContributionPlanEmployerMatchingContributionPercent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Maximum employer annual contribution per employee, percent</link:label>
    <link:label id="lab_us-gaap_DefinedContributionPlanEmployerMatchingContributionPercent_label_en-US" xlink:label="lab_us-gaap_DefinedContributionPlanEmployerMatchingContributionPercent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Defined Contribution Plan, Employer Matching Contribution, Percent of Employees' Gross Pay</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DefinedContributionPlanEmployerMatchingContributionPercent" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DefinedContributionPlanEmployerMatchingContributionPercent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DefinedContributionPlanEmployerMatchingContributionPercent" xlink:to="lab_us-gaap_DefinedContributionPlanEmployerMatchingContributionPercent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PreferredStockSharesIssued_cbe3a08d-b544-4716-be82-bd2a7b6941c0_terseLabel_en-US" xlink:label="lab_us-gaap_PreferredStockSharesIssued" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Preferred stock, issued (in shares)</link:label>
    <link:label id="lab_us-gaap_PreferredStockSharesIssued_label_en-US" xlink:label="lab_us-gaap_PreferredStockSharesIssued" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Preferred Stock, Shares Issued</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PreferredStockSharesIssued" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PreferredStockSharesIssued"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PreferredStockSharesIssued" xlink:to="lab_us-gaap_PreferredStockSharesIssued" xlink:type="arc" order="1"/>
    <link:label id="lab_srt_MajorCustomersAxis_45b6dfc8-533c-471c-b1c7-8e8dc3900165_terseLabel_en-US" xlink:label="lab_srt_MajorCustomersAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Customer [Axis]</link:label>
    <link:label id="lab_srt_MajorCustomersAxis_label_en-US" xlink:label="lab_srt_MajorCustomersAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Customer [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MajorCustomersAxis" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MajorCustomersAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_MajorCustomersAxis" xlink:to="lab_srt_MajorCustomersAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_AssetAcquisitionProvisionalInformationInitialAccountingIncompleteAdjustmentFiniteLivedIntangibleAssetsAcquired_65b6eea4-f48e-48f6-a946-613cae8bb8e1_terseLabel_en-US" xlink:label="lab_tgen_AssetAcquisitionProvisionalInformationInitialAccountingIncompleteAdjustmentFiniteLivedIntangibleAssetsAcquired" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Adjustment to finite-lived intangible assets acquired</link:label>
    <link:label id="lab_tgen_AssetAcquisitionProvisionalInformationInitialAccountingIncompleteAdjustmentFiniteLivedIntangibleAssetsAcquired_label_en-US" xlink:label="lab_tgen_AssetAcquisitionProvisionalInformationInitialAccountingIncompleteAdjustmentFiniteLivedIntangibleAssetsAcquired" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Asset Acquisition, Provisional Information, Initial Accounting Incomplete, Adjustment, Finite-Lived Intangible Assets Acquired</link:label>
    <link:label id="lab_tgen_AssetAcquisitionProvisionalInformationInitialAccountingIncompleteAdjustmentFiniteLivedIntangibleAssetsAcquired_documentation_en-US" xlink:label="lab_tgen_AssetAcquisitionProvisionalInformationInitialAccountingIncompleteAdjustmentFiniteLivedIntangibleAssetsAcquired" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Asset Acquisition, Provisional Information, Initial Accounting Incomplete, Adjustment, Finite-Lived Intangible Assets Acquired</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AssetAcquisitionProvisionalInformationInitialAccountingIncompleteAdjustmentFiniteLivedIntangibleAssetsAcquired" xlink:href="tgen-20241231.xsd#tgen_AssetAcquisitionProvisionalInformationInitialAccountingIncompleteAdjustmentFiniteLivedIntangibleAssetsAcquired"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_AssetAcquisitionProvisionalInformationInitialAccountingIncompleteAdjustmentFiniteLivedIntangibleAssetsAcquired" xlink:to="lab_tgen_AssetAcquisitionProvisionalInformationInitialAccountingIncompleteAdjustmentFiniteLivedIntangibleAssetsAcquired" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_StatementOfFinancialPositionAbstract_a9160917-089f-4692-bfa6-2bbbf6a7a0d7_terseLabel_en-US" xlink:label="lab_us-gaap_StatementOfFinancialPositionAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Statement of Financial Position [Abstract]</link:label>
    <link:label id="lab_us-gaap_StatementOfFinancialPositionAbstract_label_en-US" xlink:label="lab_us-gaap_StatementOfFinancialPositionAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Statement of Financial Position [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementOfFinancialPositionAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementOfFinancialPositionAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StatementOfFinancialPositionAbstract" xlink:to="lab_us-gaap_StatementOfFinancialPositionAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_BoilerMember_f8c8541f-ace5-4d6a-9f31-f20841be4981_terseLabel_en-US" xlink:label="lab_tgen_BoilerMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Boiler</link:label>
    <link:label id="lab_tgen_BoilerMember_label_en-US" xlink:label="lab_tgen_BoilerMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Boiler [Member]</link:label>
    <link:label id="lab_tgen_BoilerMember_documentation_en-US" xlink:label="lab_tgen_BoilerMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Boiler</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_BoilerMember" xlink:href="tgen-20241231.xsd#tgen_BoilerMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_BoilerMember" xlink:to="lab_tgen_BoilerMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInEarnings1_a316b2db-d572-40b2-bf5d-1c0e647323bc_terseLabel_en-US" xlink:label="lab_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInEarnings1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Unrealized gain (loss)</link:label>
    <link:label id="lab_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInEarnings1_label_en-US" xlink:label="lab_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInEarnings1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Fair Value, Measurement with Unobservable Inputs Reconciliation, Recurring Basis, Asset, Gain (Loss) Included in Earnings</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInEarnings1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInEarnings1"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInEarnings1" xlink:to="lab_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInEarnings1" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncomeTaxReconciliationTaxCreditsResearch_665dedac-97a5-4fe6-932a-9dbec2ab979c_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_IncomeTaxReconciliationTaxCreditsResearch" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Federal research and development credits</link:label>
    <link:label id="lab_us-gaap_IncomeTaxReconciliationTaxCreditsResearch_label_en-US" xlink:label="lab_us-gaap_IncomeTaxReconciliationTaxCreditsResearch" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Effective Income Tax Rate Reconciliation, Tax Credit, Research, Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxReconciliationTaxCreditsResearch" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxReconciliationTaxCreditsResearch"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeTaxReconciliationTaxCreditsResearch" xlink:to="lab_us-gaap_IncomeTaxReconciliationTaxCreditsResearch" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ProfitLoss_5e44181c-472a-445a-88f9-a9c9f17368ad_totalLabel_en-US" xlink:label="lab_us-gaap_ProfitLoss" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Net income (loss)</link:label>
    <link:label id="lab_us-gaap_ProfitLoss_083d692a-978d-484d-9505-24d870a4c19c_terseLabel_en-US" xlink:label="lab_us-gaap_ProfitLoss" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Net income (loss)</link:label>
    <link:label id="lab_us-gaap_ProfitLoss_e70764c4-671f-4f2f-9f0a-9a5b2720944e_verboseLabel_en-US" xlink:label="lab_us-gaap_ProfitLoss" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Consolidated loss</link:label>
    <link:label id="lab_us-gaap_ProfitLoss_label_en-US" xlink:label="lab_us-gaap_ProfitLoss" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Net Income (Loss), Including Portion Attributable to Noncontrolling Interest</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProfitLoss" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProfitLoss"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ProfitLoss" xlink:to="lab_us-gaap_ProfitLoss" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment_9252ef09-4560-4ec6-a5f0-d05924a6b09a_terseLabel_en-US" xlink:label="lab_us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Proceeds on sale of property and equipment</link:label>
    <link:label id="lab_us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment_label_en-US" xlink:label="lab_us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Proceeds from Sale of Property, Plant, and Equipment</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment" xlink:to="lab_us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncomeTaxExpenseBenefit_007585c2-b071-4460-b4e4-523cca3ae074_totalLabel_en-US" xlink:label="lab_us-gaap_IncomeTaxExpenseBenefit" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Income tax provision</link:label>
    <link:label id="lab_us-gaap_IncomeTaxExpenseBenefit_label_en-US" xlink:label="lab_us-gaap_IncomeTaxExpenseBenefit" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Income Tax Expense (Benefit)</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxExpenseBenefit" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxExpenseBenefit"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeTaxExpenseBenefit" xlink:to="lab_us-gaap_IncomeTaxExpenseBenefit" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems_b334aedf-27b3-4862-9181-67f905959258_terseLabel_en-US" xlink:label="lab_us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Fair Value, Assets Measured on Recurring Basis, Unobservable Input Reconciliation [Line Items]</link:label>
    <link:label id="lab_us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems_label_en-US" xlink:label="lab_us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Fair Value, Assets Measured on Recurring Basis, Unobservable Input Reconciliation [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems" xlink:to="lab_us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareholdersEquityAndShareBasedPaymentsTextBlock_17b9d095-a2bb-4bca-be8c-bb72acb811c0_terseLabel_en-US" xlink:label="lab_us-gaap_ShareholdersEquityAndShareBasedPaymentsTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Stockholders' equity</link:label>
    <link:label id="lab_us-gaap_ShareholdersEquityAndShareBasedPaymentsTextBlock_label_en-US" xlink:label="lab_us-gaap_ShareholdersEquityAndShareBasedPaymentsTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Shareholders' Equity and Share-Based Payments [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareholdersEquityAndShareBasedPaymentsTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareholdersEquityAndShareBasedPaymentsTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareholdersEquityAndShareBasedPaymentsTextBlock" xlink:to="lab_us-gaap_ShareholdersEquityAndShareBasedPaymentsTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1_f0733495-195e-4801-94eb-ad2476977718_terseLabel_en-US" xlink:label="lab_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Compensation cost not yet recognized, weighted average period of recognition</link:label>
    <link:label id="lab_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1_label_en-US" xlink:label="lab_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Period for Recognition</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" xlink:to="lab_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_3096ec58-f25a-4d94-bb1b-f4e949593899_terseLabel_en-US" xlink:label="lab_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Total revenues</link:label>
    <link:label id="lab_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_5806dcc5-5f4e-4a96-b119-ac96d566eac4_verboseLabel_en-US" xlink:label="lab_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Revenue</link:label>
    <link:label id="lab_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_label_en-US" xlink:label="lab_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Revenue from Contract with Customer, Excluding Assessed Tax</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" xlink:to="lab_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PaymentsToAcquireIntangibleAssets_3833a0eb-67ae-467d-8440-e8f2a58e69a2_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_PaymentsToAcquireIntangibleAssets" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Purchases of intangible assets</link:label>
    <link:label id="lab_us-gaap_PaymentsToAcquireIntangibleAssets_label_en-US" xlink:label="lab_us-gaap_PaymentsToAcquireIntangibleAssets" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Payments to Acquire Intangible Assets</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsToAcquireIntangibleAssets" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentsToAcquireIntangibleAssets"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PaymentsToAcquireIntangibleAssets" xlink:to="lab_us-gaap_PaymentsToAcquireIntangibleAssets" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_NotesPayableToBank_f4a201b6-f088-430e-ac63-3424f82e1c42_terseLabel_en-US" xlink:label="lab_us-gaap_NotesPayableToBank" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Notes payable</link:label>
    <link:label id="lab_us-gaap_NotesPayableToBank_label_en-US" xlink:label="lab_us-gaap_NotesPayableToBank" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Notes Payable to Bank</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NotesPayableToBank" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NotesPayableToBank"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NotesPayableToBank" xlink:to="lab_us-gaap_NotesPayableToBank" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_InventoryWriteDown_b639674f-b928-4368-8932-2a00a8642156_terseLabel_en-US" xlink:label="lab_us-gaap_InventoryWriteDown" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Provision for inventory reserve</link:label>
    <link:label id="lab_us-gaap_InventoryWriteDown_label_en-US" xlink:label="lab_us-gaap_InventoryWriteDown" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Inventory Write-down</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryWriteDown" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InventoryWriteDown"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_InventoryWriteDown" xlink:to="lab_us-gaap_InventoryWriteDown" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_AssetAcquisitionConsiderationTransferredNonCashAccountsReceivableCredit_b198a408-9b12-47c2-8c1b-c3735b451f62_terseLabel_en-US" xlink:label="lab_tgen_AssetAcquisitionConsiderationTransferredNonCashAccountsReceivableCredit" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Accounts receivable credit</link:label>
    <link:label id="lab_tgen_AssetAcquisitionConsiderationTransferredNonCashAccountsReceivableCredit_label_en-US" xlink:label="lab_tgen_AssetAcquisitionConsiderationTransferredNonCashAccountsReceivableCredit" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Asset Acquisition, Consideration Transferred, Non-Cash, Accounts Receivable Credit</link:label>
    <link:label id="lab_tgen_AssetAcquisitionConsiderationTransferredNonCashAccountsReceivableCredit_documentation_en-US" xlink:label="lab_tgen_AssetAcquisitionConsiderationTransferredNonCashAccountsReceivableCredit" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Asset Acquisition, Consideration Transferred, Non-Cash, Accounts Receivable Credit</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AssetAcquisitionConsiderationTransferredNonCashAccountsReceivableCredit" xlink:href="tgen-20241231.xsd#tgen_AssetAcquisitionConsiderationTransferredNonCashAccountsReceivableCredit"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_AssetAcquisitionConsiderationTransferredNonCashAccountsReceivableCredit" xlink:to="lab_tgen_AssetAcquisitionConsiderationTransferredNonCashAccountsReceivableCredit" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_NetCashProvidedByUsedInInvestingActivities_4f0db54f-7a61-4ca8-9c90-d66d96babbc1_totalLabel_en-US" xlink:label="lab_us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Net used in investing activities</link:label>
    <link:label id="lab_us-gaap_NetCashProvidedByUsedInInvestingActivities_label_en-US" xlink:label="lab_us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Net Cash Provided by (Used in) Investing Activities</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivities"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:to="lab_us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncomeTaxAuthorityAxis_1e199f80-8a58-466d-a212-71a5e0e033df_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeTaxAuthorityAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Income Tax Jurisdiction [Axis]</link:label>
    <link:label id="lab_us-gaap_IncomeTaxAuthorityAxis_label_en-US" xlink:label="lab_us-gaap_IncomeTaxAuthorityAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Income Tax Jurisdiction [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxAuthorityAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxAuthorityAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeTaxAuthorityAxis" xlink:to="lab_us-gaap_IncomeTaxAuthorityAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_BusinessAcquisitionLineItems_668a96bb-5056-4998-a5f3-220ca9226a13_terseLabel_en-US" xlink:label="lab_us-gaap_BusinessAcquisitionLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Business Acquisition [Line Items]</link:label>
    <link:label id="lab_us-gaap_BusinessAcquisitionLineItems_label_en-US" xlink:label="lab_us-gaap_BusinessAcquisitionLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Business Acquisition [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionLineItems" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems" xlink:to="lab_us-gaap_BusinessAcquisitionLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AllAdjToCompMember_terseLabel_en-US" xlink:label="lab_ecd_AllAdjToCompMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">All Adjustments to Compensation</link:label>
    <link:label id="lab_ecd_AllAdjToCompMember_label_en-US" xlink:label="lab_ecd_AllAdjToCompMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">All Adjustments to Compensation [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AllAdjToCompMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AllAdjToCompMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AllAdjToCompMember" xlink:to="lab_ecd_AllAdjToCompMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AdditionalPaidInCapital_bb58218f-1b9f-4e3c-b002-751be294873d_terseLabel_en-US" xlink:label="lab_us-gaap_AdditionalPaidInCapital" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Additional paid-in capital</link:label>
    <link:label id="lab_us-gaap_AdditionalPaidInCapital_label_en-US" xlink:label="lab_us-gaap_AdditionalPaidInCapital" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Additional Paid in Capital</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdditionalPaidInCapital" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AdditionalPaidInCapital"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AdditionalPaidInCapital" xlink:to="lab_us-gaap_AdditionalPaidInCapital" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CommitmentsAndContingenciesDisclosureAbstract_adca062f-56ca-4f57-b3d3-c3081cdbf7af_terseLabel_en-US" xlink:label="lab_us-gaap_CommitmentsAndContingenciesDisclosureAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Commitments and Contingencies Disclosure [Abstract]</link:label>
    <link:label id="lab_us-gaap_CommitmentsAndContingenciesDisclosureAbstract_label_en-US" xlink:label="lab_us-gaap_CommitmentsAndContingenciesDisclosureAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Commitments and Contingencies Disclosure [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommitmentsAndContingenciesDisclosureAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommitmentsAndContingenciesDisclosureAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CommitmentsAndContingenciesDisclosureAbstract" xlink:to="lab_us-gaap_CommitmentsAndContingenciesDisclosureAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_LegalEntityAxis_97e203df-b0d2-4fa1-9f72-9cfef771e265_terseLabel_en-US" xlink:label="lab_dei_LegalEntityAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Legal Entity [Axis]</link:label>
    <link:label id="lab_dei_LegalEntityAxis_label_en-US" xlink:label="lab_dei_LegalEntityAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Legal Entity [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_LegalEntityAxis" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_LegalEntityAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_LegalEntityAxis" xlink:to="lab_dei_LegalEntityAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_AccruedDecommissioningCosts_102fa4ae-0627-45ab-988f-e4e39dd43d9d_negatedTerseLabel_en-US" xlink:label="lab_tgen_AccruedDecommissioningCosts" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Accrued decommissioning costs</link:label>
    <link:label id="lab_tgen_AccruedDecommissioningCosts_label_en-US" xlink:label="lab_tgen_AccruedDecommissioningCosts" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accrued Decommissioning Costs</link:label>
    <link:label id="lab_tgen_AccruedDecommissioningCosts_documentation_en-US" xlink:label="lab_tgen_AccruedDecommissioningCosts" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Accrued Decommissioning Costs</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AccruedDecommissioningCosts" xlink:href="tgen-20241231.xsd#tgen_AccruedDecommissioningCosts"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_AccruedDecommissioningCosts" xlink:to="lab_tgen_AccruedDecommissioningCosts" xlink:type="arc" order="1"/>
    <link:label id="lab_srt_ScenarioUnspecifiedDomain_2656c960-cb12-4212-a035-f02fefcfc433_terseLabel_en-US" xlink:label="lab_srt_ScenarioUnspecifiedDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Scenario [Domain]</link:label>
    <link:label id="lab_srt_ScenarioUnspecifiedDomain_label_en-US" xlink:label="lab_srt_ScenarioUnspecifiedDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Scenario [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ScenarioUnspecifiedDomain" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ScenarioUnspecifiedDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_ScenarioUnspecifiedDomain" xlink:to="lab_srt_ScenarioUnspecifiedDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RelatedPartyTransactionAxis_a40320a5-4d98-44fb-b7d9-aae4e13f374e_terseLabel_en-US" xlink:label="lab_us-gaap_RelatedPartyTransactionAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Related Party Transaction [Axis]</link:label>
    <link:label id="lab_us-gaap_RelatedPartyTransactionAxis_label_en-US" xlink:label="lab_us-gaap_RelatedPartyTransactionAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Related Party Transaction [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyTransactionAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RelatedPartyTransactionAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RelatedPartyTransactionAxis" xlink:to="lab_us-gaap_RelatedPartyTransactionAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_PrinciplesOfConsolidationAndBasisOfPresentationPolicyTextBlock_6853fb21-5555-4bbf-981e-05f219c9353f_terseLabel_en-US" xlink:label="lab_tgen_PrinciplesOfConsolidationAndBasisOfPresentationPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Principles of Consolidation and Basis of Presentation</link:label>
    <link:label id="lab_tgen_PrinciplesOfConsolidationAndBasisOfPresentationPolicyTextBlock_label_en-US" xlink:label="lab_tgen_PrinciplesOfConsolidationAndBasisOfPresentationPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Principles Of Consolidation and Basis Of Presentation [Policy Text Block]</link:label>
    <link:label id="lab_tgen_PrinciplesOfConsolidationAndBasisOfPresentationPolicyTextBlock_documentation_en-US" xlink:label="lab_tgen_PrinciplesOfConsolidationAndBasisOfPresentationPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Disclosure of accounting policy for principles of consolidation and basis of presentation.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_PrinciplesOfConsolidationAndBasisOfPresentationPolicyTextBlock" xlink:href="tgen-20241231.xsd#tgen_PrinciplesOfConsolidationAndBasisOfPresentationPolicyTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_PrinciplesOfConsolidationAndBasisOfPresentationPolicyTextBlock" xlink:to="lab_tgen_PrinciplesOfConsolidationAndBasisOfPresentationPolicyTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1_97919d2c-3d26-476f-bb57-8ba751d7c1ab_terseLabel_en-US" xlink:label="lab_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Revenue, remaining performance obligation, expected timing of satisfaction, period</link:label>
    <link:label id="lab_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1_label_en-US" xlink:label="lab_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Period</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" xlink:to="lab_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntityAddressStateOrProvince_c323dac4-3971-4c64-8d11-f15042492a51_terseLabel_en-US" xlink:label="lab_dei_EntityAddressStateOrProvince" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Entity Address, State or Province</link:label>
    <link:label id="lab_dei_EntityAddressStateOrProvince_label_en-US" xlink:label="lab_dei_EntityAddressStateOrProvince" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Address, State or Province</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityAddressStateOrProvince" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityAddressStateOrProvince"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityAddressStateOrProvince" xlink:to="lab_dei_EntityAddressStateOrProvince" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_RevenueFromContractWithCustomerPaymentPeriod_d49ce0d7-a6e7-42ca-b62d-e9ee7996c5ed_terseLabel_en-US" xlink:label="lab_tgen_RevenueFromContractWithCustomerPaymentPeriod" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Payment period</link:label>
    <link:label id="lab_tgen_RevenueFromContractWithCustomerPaymentPeriod_label_en-US" xlink:label="lab_tgen_RevenueFromContractWithCustomerPaymentPeriod" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Revenue From Contract With Customer, Payment Period</link:label>
    <link:label id="lab_tgen_RevenueFromContractWithCustomerPaymentPeriod_documentation_en-US" xlink:label="lab_tgen_RevenueFromContractWithCustomerPaymentPeriod" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Revenue From Contract With Customer, Payment Period</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_RevenueFromContractWithCustomerPaymentPeriod" xlink:href="tgen-20241231.xsd#tgen_RevenueFromContractWithCustomerPaymentPeriod"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_RevenueFromContractWithCustomerPaymentPeriod" xlink:to="lab_tgen_RevenueFromContractWithCustomerPaymentPeriod" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_ErrCompAnalysisTextBlock_terseLabel_en-US" xlink:label="lab_ecd_ErrCompAnalysisTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Erroneous Compensation Analysis</link:label>
    <link:label id="lab_ecd_ErrCompAnalysisTextBlock_label_en-US" xlink:label="lab_ecd_ErrCompAnalysisTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Erroneous Compensation Analysis [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_ErrCompAnalysisTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_ErrCompAnalysisTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_ErrCompAnalysisTextBlock" xlink:to="lab_ecd_ErrCompAnalysisTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_EmployeeRetentionCreditCurrent_d1c13fb0-9f88-4458-b067-815a8b6ac880_terseLabel_en-US" xlink:label="lab_tgen_EmployeeRetentionCreditCurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Employee retention credit receivable</link:label>
    <link:label id="lab_tgen_EmployeeRetentionCreditCurrent_label_en-US" xlink:label="lab_tgen_EmployeeRetentionCreditCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Employee Retention Credit, Current</link:label>
    <link:label id="lab_tgen_EmployeeRetentionCreditCurrent_documentation_en-US" xlink:label="lab_tgen_EmployeeRetentionCreditCurrent" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Employee Retention Credit, Current</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_EmployeeRetentionCreditCurrent" xlink:href="tgen-20241231.xsd#tgen_EmployeeRetentionCreditCurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_EmployeeRetentionCreditCurrent" xlink:to="lab_tgen_EmployeeRetentionCreditCurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LiabilitiesAndStockholdersEquityAbstract_37449e87-e8af-4003-ad87-2ad03abab0e7_terseLabel_en-US" xlink:label="lab_us-gaap_LiabilitiesAndStockholdersEquityAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">LIABILITIES AND STOCKHOLDERS&#8217; EQUITY</link:label>
    <link:label id="lab_us-gaap_LiabilitiesAndStockholdersEquityAbstract_label_en-US" xlink:label="lab_us-gaap_LiabilitiesAndStockholdersEquityAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Liabilities and Equity [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LiabilitiesAndStockholdersEquityAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LiabilitiesAndStockholdersEquityAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LiabilitiesAndStockholdersEquityAbstract" xlink:to="lab_us-gaap_LiabilitiesAndStockholdersEquityAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RelatedPartyTransactionRate_4b36f8b3-6443-4fd4-88e9-cee8d0232338_terseLabel_en-US" xlink:label="lab_us-gaap_RelatedPartyTransactionRate" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Related party transaction, rate</link:label>
    <link:label id="lab_us-gaap_RelatedPartyTransactionRate_label_en-US" xlink:label="lab_us-gaap_RelatedPartyTransactionRate" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Related Party Transaction, Rate</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyTransactionRate" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RelatedPartyTransactionRate"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RelatedPartyTransactionRate" xlink:to="lab_us-gaap_RelatedPartyTransactionRate" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_RestatementDeterminationDate_terseLabel_en-US" xlink:label="lab_ecd_RestatementDeterminationDate" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Restatement Determination Date</link:label>
    <link:label id="lab_ecd_RestatementDeterminationDate_label_en-US" xlink:label="lab_ecd_RestatementDeterminationDate" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Restatement Determination Date</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_RestatementDeterminationDate" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_RestatementDeterminationDate"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_RestatementDeterminationDate" xlink:to="lab_ecd_RestatementDeterminationDate" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts_d982eedc-c2ce-4861-ad7e-ec90e1dc3f26_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Accounts receivable</link:label>
    <link:label id="lab_us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts_label_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred Tax Asset, Tax Deferred Expense, Reserve and Accrual, Accounts Receivable, Allowance for Credit Loss</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts" xlink:to="lab_us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber_3a10a59e-977a-4f47-a44e-ffc7d790c425_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Vested and expected to vest (shares)</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested and Expected to Vest, Outstanding, Number</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EstimateOfFairValueFairValueDisclosureMember_03715adc-1dca-46ee-a4f2-8e4685692513_terseLabel_en-US" xlink:label="lab_us-gaap_EstimateOfFairValueFairValueDisclosureMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Estimate of Fair Value Measurement</link:label>
    <link:label id="lab_us-gaap_EstimateOfFairValueFairValueDisclosureMember_label_en-US" xlink:label="lab_us-gaap_EstimateOfFairValueFairValueDisclosureMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Estimate of Fair Value Measurement [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EstimateOfFairValueFairValueDisclosureMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EstimateOfFairValueFairValueDisclosureMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EstimateOfFairValueFairValueDisclosureMember" xlink:to="lab_us-gaap_EstimateOfFairValueFairValueDisclosureMember" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_ChangeInControlSeveranceBenefitPlanThresholdPeriodForTerminationAfterToChangeInControl_bdb5ec3e-a457-4b07-aba1-d6d60e92be2b_terseLabel_en-US" xlink:label="lab_tgen_ChangeInControlSeveranceBenefitPlanThresholdPeriodForTerminationAfterToChangeInControl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Change in Control Severance Benefit Plan, qualifying termination period after change in control</link:label>
    <link:label id="lab_tgen_ChangeInControlSeveranceBenefitPlanThresholdPeriodForTerminationAfterToChangeInControl_label_en-US" xlink:label="lab_tgen_ChangeInControlSeveranceBenefitPlanThresholdPeriodForTerminationAfterToChangeInControl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Change in Control Severance Benefit Plan, Threshold Period for Termination after to Change in Control</link:label>
    <link:label id="lab_tgen_ChangeInControlSeveranceBenefitPlanThresholdPeriodForTerminationAfterToChangeInControl_documentation_en-US" xlink:label="lab_tgen_ChangeInControlSeveranceBenefitPlanThresholdPeriodForTerminationAfterToChangeInControl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Change in Control Severance Benefit Plan, Threshold Period for Termination after to Change in Control</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ChangeInControlSeveranceBenefitPlanThresholdPeriodForTerminationAfterToChangeInControl" xlink:href="tgen-20241231.xsd#tgen_ChangeInControlSeveranceBenefitPlanThresholdPeriodForTerminationAfterToChangeInControl"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_ChangeInControlSeveranceBenefitPlanThresholdPeriodForTerminationAfterToChangeInControl" xlink:to="lab_tgen_ChangeInControlSeveranceBenefitPlanThresholdPeriodForTerminationAfterToChangeInControl" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ProceedsFromInterestReceived_06cbba4e-be8f-4123-9ca7-a8cfc793693f_terseLabel_en-US" xlink:label="lab_us-gaap_ProceedsFromInterestReceived" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Accrued interest received</link:label>
    <link:label id="lab_us-gaap_ProceedsFromInterestReceived_label_en-US" xlink:label="lab_us-gaap_ProceedsFromInterestReceived" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Proceeds from Interest Received</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProceedsFromInterestReceived" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProceedsFromInterestReceived"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ProceedsFromInterestReceived" xlink:to="lab_us-gaap_ProceedsFromInterestReceived" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_PvpTable_terseLabel_en-US" xlink:label="lab_ecd_PvpTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Pay vs Performance Disclosure</link:label>
    <link:label id="lab_ecd_PvpTable_label_en-US" xlink:label="lab_ecd_PvpTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Pay vs Performance Disclosure [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_PvpTable" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_PvpTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_PvpTable" xlink:to="lab_ecd_PvpTable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_e63118ba-fa6c-4520-aed8-6dc134901dea_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Schedule of Property, Plant and Equipment [Table]</link:label>
    <link:label id="lab_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_label_en-US" xlink:label="lab_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Property, Plant and Equipment [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfPropertyPlantAndEquipmentTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable" xlink:to="lab_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_f080b753-5ce2-4c2b-816c-095cce7cf760_periodStartLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xml:lang="en-US">Beginning (usd per share)</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_35214549-5722-4c86-8563-4236996fde92_periodEndLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xml:lang="en-US">Ending (usd per share)</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Weighted Average Exercise Price</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ConcentrationRiskTable_acd853bc-4f0c-499c-9bbd-5b59fbc80c34_terseLabel_en-US" xlink:label="lab_us-gaap_ConcentrationRiskTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Concentration Risk [Table]</link:label>
    <link:label id="lab_us-gaap_ConcentrationRiskTable_label_en-US" xlink:label="lab_us-gaap_ConcentrationRiskTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Concentration Risk [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskTable" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ConcentrationRiskTable" xlink:to="lab_us-gaap_ConcentrationRiskTable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OperatingLeaseRightOfUseAsset_dd8e907f-0fe8-4fa5-a0de-734a6e0dbcbb_terseLabel_en-US" xlink:label="lab_us-gaap_OperatingLeaseRightOfUseAsset" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Right of use assets - operating leases</link:label>
    <link:label id="lab_us-gaap_OperatingLeaseRightOfUseAsset_label_en-US" xlink:label="lab_us-gaap_OperatingLeaseRightOfUseAsset" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Operating Lease, Right-of-Use Asset</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseRightOfUseAsset" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseRightOfUseAsset"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OperatingLeaseRightOfUseAsset" xlink:to="lab_us-gaap_OperatingLeaseRightOfUseAsset" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_ErrCompRecoveryTable_terseLabel_en-US" xlink:label="lab_ecd_ErrCompRecoveryTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Erroneously Awarded Compensation Recovery</link:label>
    <link:label id="lab_ecd_ErrCompRecoveryTable_label_en-US" xlink:label="lab_ecd_ErrCompRecoveryTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Erroneously Awarded Compensation Recovery [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_ErrCompRecoveryTable" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_ErrCompRecoveryTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_ErrCompRecoveryTable" xlink:to="lab_ecd_ErrCompRecoveryTable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_0fe87be8-bb77-4c18-b510-e7faa466b996_periodStartLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xml:lang="en-US">Beginning (shares)</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_ad32dc42-0037-4eb3-be45-4be107720726_periodEndLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xml:lang="en-US">Ending (shares)</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Number</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_BusinessCombinationProvisionalInformationInitialAccountingIncompleteAdjustmentConsiderationTransferred_99d3f13d-4b25-4c92-996c-fa3da5be9e29_terseLabel_en-US" xlink:label="lab_us-gaap_BusinessCombinationProvisionalInformationInitialAccountingIncompleteAdjustmentConsiderationTransferred" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Contingent consideration adjustment</link:label>
    <link:label id="lab_us-gaap_BusinessCombinationProvisionalInformationInitialAccountingIncompleteAdjustmentConsiderationTransferred_label_en-US" xlink:label="lab_us-gaap_BusinessCombinationProvisionalInformationInitialAccountingIncompleteAdjustmentConsiderationTransferred" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Business Combination, Provisional Information, Initial Accounting Incomplete, Adjustment, Consideration Transferred</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationProvisionalInformationInitialAccountingIncompleteAdjustmentConsiderationTransferred" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationProvisionalInformationInitialAccountingIncompleteAdjustmentConsiderationTransferred"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessCombinationProvisionalInformationInitialAccountingIncompleteAdjustmentConsiderationTransferred" xlink:to="lab_us-gaap_BusinessCombinationProvisionalInformationInitialAccountingIncompleteAdjustmentConsiderationTransferred" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_AssetAcquisitionProvisionalInformationInitialAccountingIncompleteAdjustmentContingentConsiderationLiability_4657de7a-bb09-4f9e-8976-448aa1d15f5e_terseLabel_en-US" xlink:label="lab_tgen_AssetAcquisitionProvisionalInformationInitialAccountingIncompleteAdjustmentContingentConsiderationLiability" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Adjustment to contingent consideration liability</link:label>
    <link:label id="lab_tgen_AssetAcquisitionProvisionalInformationInitialAccountingIncompleteAdjustmentContingentConsiderationLiability_label_en-US" xlink:label="lab_tgen_AssetAcquisitionProvisionalInformationInitialAccountingIncompleteAdjustmentContingentConsiderationLiability" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Asset Acquisition, Provisional Information, Initial Accounting Incomplete, Adjustment, Contingent Consideration Liability</link:label>
    <link:label id="lab_tgen_AssetAcquisitionProvisionalInformationInitialAccountingIncompleteAdjustmentContingentConsiderationLiability_documentation_en-US" xlink:label="lab_tgen_AssetAcquisitionProvisionalInformationInitialAccountingIncompleteAdjustmentContingentConsiderationLiability" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Asset Acquisition, Provisional Information, Initial Accounting Incomplete, Adjustment, Contingent Consideration Liability</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AssetAcquisitionProvisionalInformationInitialAccountingIncompleteAdjustmentContingentConsiderationLiability" xlink:href="tgen-20241231.xsd#tgen_AssetAcquisitionProvisionalInformationInitialAccountingIncompleteAdjustmentContingentConsiderationLiability"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_AssetAcquisitionProvisionalInformationInitialAccountingIncompleteAdjustmentContingentConsiderationLiability" xlink:to="lab_tgen_AssetAcquisitionProvisionalInformationInitialAccountingIncompleteAdjustmentContingentConsiderationLiability" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentAbstract_ceb3b48a-38e2-4228-84d1-d172f2bc38d7_terseLabel_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Property, Plant and Equipment [Abstract]</link:label>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentAbstract_label_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Property, Plant and Equipment [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentAbstract" xlink:to="lab_us-gaap_PropertyPlantAndEquipmentAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EarningsPerShareTextBlock_bc8b7ba5-d0c2-4118-aa49-3462ad826eea_terseLabel_en-US" xlink:label="lab_us-gaap_EarningsPerShareTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Loss per common share</link:label>
    <link:label id="lab_us-gaap_EarningsPerShareTextBlock_label_en-US" xlink:label="lab_us-gaap_EarningsPerShareTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Earnings Per Share [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EarningsPerShareTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EarningsPerShareTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EarningsPerShareTextBlock" xlink:to="lab_us-gaap_EarningsPerShareTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SubsequentEventMember_29d25ebc-bd5f-474c-9247-b3e048315833_terseLabel_en-US" xlink:label="lab_us-gaap_SubsequentEventMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Subsequent Event</link:label>
    <link:label id="lab_us-gaap_SubsequentEventMember_label_en-US" xlink:label="lab_us-gaap_SubsequentEventMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Subsequent Event [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsequentEventMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SubsequentEventMember" xlink:to="lab_us-gaap_SubsequentEventMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised_0fc4b2cb-4491-4c04-a012-5752e2aa0ee0_terseLabel_en-US" xlink:label="lab_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Exercise of stock options</link:label>
    <link:label id="lab_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised_label_en-US" xlink:label="lab_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Stock Issued During Period, Value, Stock Options Exercised</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" xlink:to="lab_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_ResearchAndDevelopmentExpenseGross_657a7709-9c16-4218-98a9-9cfebc0e8026_terseLabel_en-US" xlink:label="lab_tgen_ResearchAndDevelopmentExpenseGross" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Research and development</link:label>
    <link:label id="lab_tgen_ResearchAndDevelopmentExpenseGross_label_en-US" xlink:label="lab_tgen_ResearchAndDevelopmentExpenseGross" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Research And Development Expense, Gross</link:label>
    <link:label id="lab_tgen_ResearchAndDevelopmentExpenseGross_documentation_en-US" xlink:label="lab_tgen_ResearchAndDevelopmentExpenseGross" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Research And Development Expense, Gross</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ResearchAndDevelopmentExpenseGross" xlink:href="tgen-20241231.xsd#tgen_ResearchAndDevelopmentExpenseGross"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_ResearchAndDevelopmentExpenseGross" xlink:to="lab_tgen_ResearchAndDevelopmentExpenseGross" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncomeTaxPolicyTextBlock_608e961b-7681-4ed5-b6a9-5828a7febf82_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeTaxPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Income Taxes</link:label>
    <link:label id="lab_us-gaap_IncomeTaxPolicyTextBlock_label_en-US" xlink:label="lab_us-gaap_IncomeTaxPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Income Tax, Policy [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxPolicyTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxPolicyTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeTaxPolicyTextBlock" xlink:to="lab_us-gaap_IncomeTaxPolicyTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_PeerGroupIssuersFnTextBlock_terseLabel_en-US" xlink:label="lab_ecd_PeerGroupIssuersFnTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Peer Group Issuers, Footnote</link:label>
    <link:label id="lab_ecd_PeerGroupIssuersFnTextBlock_label_en-US" xlink:label="lab_ecd_PeerGroupIssuersFnTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Peer Group Issuers, Footnote [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_PeerGroupIssuersFnTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_PeerGroupIssuersFnTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_PeerGroupIssuersFnTextBlock" xlink:to="lab_ecd_PeerGroupIssuersFnTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SegmentDomain_77a01d02-ad57-48d6-b22d-5972de81f815_terseLabel_en-US" xlink:label="lab_us-gaap_SegmentDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Segments [Domain]</link:label>
    <link:label id="lab_us-gaap_SegmentDomain_label_en-US" xlink:label="lab_us-gaap_SegmentDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Segments [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SegmentDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SegmentDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SegmentDomain" xlink:to="lab_us-gaap_SegmentDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_PeoMember_terseLabel_en-US" xlink:label="lab_ecd_PeoMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">PEO</link:label>
    <link:label id="lab_ecd_PeoMember_label_en-US" xlink:label="lab_ecd_PeoMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">PEO [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_PeoMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_PeoMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_PeoMember" xlink:to="lab_ecd_PeoMember" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_TrdArrIndName_terseLabel_en-US" xlink:label="lab_ecd_TrdArrIndName" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Name</link:label>
    <link:label id="lab_ecd_TrdArrIndName_label_en-US" xlink:label="lab_ecd_TrdArrIndName" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Trading Arrangement, Individual Name</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TrdArrIndName" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_TrdArrIndName"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_TrdArrIndName" xlink:to="lab_ecd_TrdArrIndName" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_OneCustomerMember_47bc974e-ef82-4c15-8530-e7425214d9b0_terseLabel_en-US" xlink:label="lab_tgen_OneCustomerMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">One Customer</link:label>
    <link:label id="lab_tgen_OneCustomerMember_label_en-US" xlink:label="lab_tgen_OneCustomerMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">One Customer [Member]</link:label>
    <link:label id="lab_tgen_OneCustomerMember_documentation_en-US" xlink:label="lab_tgen_OneCustomerMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">One Customer</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_OneCustomerMember" xlink:href="tgen-20241231.xsd#tgen_OneCustomerMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_OneCustomerMember" xlink:to="lab_tgen_OneCustomerMember" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_AssetAcquisitionLiabilitiesAssumedNoncurrent_b40982bc-4c0d-46e3-b913-081526e6680f_totalLabel_en-US" xlink:label="lab_tgen_AssetAcquisitionLiabilitiesAssumedNoncurrent" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Liabilities assumed, noncurrent</link:label>
    <link:label id="lab_tgen_AssetAcquisitionLiabilitiesAssumedNoncurrent_label_en-US" xlink:label="lab_tgen_AssetAcquisitionLiabilitiesAssumedNoncurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Asset Acquisition, Liabilities Assumed, Noncurrent</link:label>
    <link:label id="lab_tgen_AssetAcquisitionLiabilitiesAssumedNoncurrent_documentation_en-US" xlink:label="lab_tgen_AssetAcquisitionLiabilitiesAssumedNoncurrent" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Asset Acquisition, Liabilities Assumed, Noncurrent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AssetAcquisitionLiabilitiesAssumedNoncurrent" xlink:href="tgen-20241231.xsd#tgen_AssetAcquisitionLiabilitiesAssumedNoncurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_AssetAcquisitionLiabilitiesAssumedNoncurrent" xlink:to="lab_tgen_AssetAcquisitionLiabilitiesAssumedNoncurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentByTypeAxis_6b230fc3-088d-4531-81d7-754493d8aa08_terseLabel_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Property, Plant and Equipment, Type [Axis]</link:label>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentByTypeAxis_label_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Long-Lived Tangible Asset [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentByTypeAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:to="lab_us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntityPublicFloat_6ba75b0f-71df-4070-b050-0d7c2aa65950_terseLabel_en-US" xlink:label="lab_dei_EntityPublicFloat" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Entity Public Float</link:label>
    <link:label id="lab_dei_EntityPublicFloat_label_en-US" xlink:label="lab_dei_EntityPublicFloat" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Public Float</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityPublicFloat" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityPublicFloat"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityPublicFloat" xlink:to="lab_dei_EntityPublicFloat" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseRemainingLeaseTerm_b225c064-c55f-4d8d-b81e-ded77e76345a_terseLabel_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseRemainingLeaseTerm" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Remaining lease term</link:label>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseRemainingLeaseTerm_label_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseRemainingLeaseTerm" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Lessee, Operating Lease, Remaining Lease Term</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseRemainingLeaseTerm" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseRemainingLeaseTerm"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LesseeOperatingLeaseRemainingLeaseTerm" xlink:to="lab_us-gaap_LesseeOperatingLeaseRemainingLeaseTerm" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_OperatingAndFinanceLeaseLiabilityToBePaidYearTwo_6d2bcf5b-b86e-4148-af37-44afd689d9f3_terseLabel_en-US" xlink:label="lab_tgen_OperatingAndFinanceLeaseLiabilityToBePaidYearTwo" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">2026</link:label>
    <link:label id="lab_tgen_OperatingAndFinanceLeaseLiabilityToBePaidYearTwo_label_en-US" xlink:label="lab_tgen_OperatingAndFinanceLeaseLiabilityToBePaidYearTwo" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Operating and Finance Lease, Liability, to be Paid, Year Two</link:label>
    <link:label id="lab_tgen_OperatingAndFinanceLeaseLiabilityToBePaidYearTwo_documentation_en-US" xlink:label="lab_tgen_OperatingAndFinanceLeaseLiabilityToBePaidYearTwo" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Operating and Finance Lease, Liability, to be Paid, Year Two</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_OperatingAndFinanceLeaseLiabilityToBePaidYearTwo" xlink:href="tgen-20241231.xsd#tgen_OperatingAndFinanceLeaseLiabilityToBePaidYearTwo"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_OperatingAndFinanceLeaseLiabilityToBePaidYearTwo" xlink:to="lab_tgen_OperatingAndFinanceLeaseLiabilityToBePaidYearTwo" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CommitmentsContingenciesAndGuaranteesTextBlock_b5165feb-1d6c-4edd-82b4-0d201b821909_terseLabel_en-US" xlink:label="lab_us-gaap_CommitmentsContingenciesAndGuaranteesTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Commitments and contingencies</link:label>
    <link:label id="lab_us-gaap_CommitmentsContingenciesAndGuaranteesTextBlock_label_en-US" xlink:label="lab_us-gaap_CommitmentsContingenciesAndGuaranteesTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Commitments Contingencies and Guarantees [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommitmentsContingenciesAndGuaranteesTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommitmentsContingenciesAndGuaranteesTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CommitmentsContingenciesAndGuaranteesTextBlock" xlink:to="lab_us-gaap_CommitmentsContingenciesAndGuaranteesTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AwardsCloseToMnpiDiscTableTextBlock_terseLabel_en-US" xlink:label="lab_ecd_AwardsCloseToMnpiDiscTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Awards Close in Time to MNPI Disclosures, Table</link:label>
    <link:label id="lab_ecd_AwardsCloseToMnpiDiscTableTextBlock_label_en-US" xlink:label="lab_ecd_AwardsCloseToMnpiDiscTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Awards Close in Time to MNPI Disclosures [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardsCloseToMnpiDiscTableTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AwardsCloseToMnpiDiscTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AwardsCloseToMnpiDiscTableTextBlock" xlink:to="lab_ecd_AwardsCloseToMnpiDiscTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncomeTaxReconciliationNondeductibleExpenseOther_d4605c12-b637-4b0d-8b31-53c49c17a93b_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeTaxReconciliationNondeductibleExpenseOther" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Other</link:label>
    <link:label id="lab_us-gaap_IncomeTaxReconciliationNondeductibleExpenseOther_label_en-US" xlink:label="lab_us-gaap_IncomeTaxReconciliationNondeductibleExpenseOther" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Effective Income Tax Rate Reconciliation, Nondeductible Expense, Other, Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxReconciliationNondeductibleExpenseOther" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxReconciliationNondeductibleExpenseOther"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeTaxReconciliationNondeductibleExpenseOther" xlink:to="lab_us-gaap_IncomeTaxReconciliationNondeductibleExpenseOther" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_EffectiveIncomeTaxRateReconciliationOperatingLossCarryforwardExpired_28a11fc5-9af8-427f-b503-4f938ef2359b_terseLabel_en-US" xlink:label="lab_tgen_EffectiveIncomeTaxRateReconciliationOperatingLossCarryforwardExpired" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Expired net operating losses</link:label>
    <link:label id="lab_tgen_EffectiveIncomeTaxRateReconciliationOperatingLossCarryforwardExpired_label_en-US" xlink:label="lab_tgen_EffectiveIncomeTaxRateReconciliationOperatingLossCarryforwardExpired" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Effective Income Tax Rate Reconciliation, Operating Loss Carryforward, Expired</link:label>
    <link:label id="lab_tgen_EffectiveIncomeTaxRateReconciliationOperatingLossCarryforwardExpired_documentation_en-US" xlink:label="lab_tgen_EffectiveIncomeTaxRateReconciliationOperatingLossCarryforwardExpired" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Effective Income Tax Rate Reconciliation, Operating Loss Carryforward, Expired</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_EffectiveIncomeTaxRateReconciliationOperatingLossCarryforwardExpired" xlink:href="tgen-20241231.xsd#tgen_EffectiveIncomeTaxRateReconciliationOperatingLossCarryforwardExpired"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_EffectiveIncomeTaxRateReconciliationOperatingLossCarryforwardExpired" xlink:to="lab_tgen_EffectiveIncomeTaxRateReconciliationOperatingLossCarryforwardExpired" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CommonStockCapitalSharesReservedForFutureIssuance_27271dde-7d12-474d-af49-d0b968bea88e_terseLabel_en-US" xlink:label="lab_us-gaap_CommonStockCapitalSharesReservedForFutureIssuance" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Shares of common stock reserved for future issuance</link:label>
    <link:label id="lab_us-gaap_CommonStockCapitalSharesReservedForFutureIssuance_label_en-US" xlink:label="lab_us-gaap_CommonStockCapitalSharesReservedForFutureIssuance" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Common Stock, Capital Shares Reserved for Future Issuance</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockCapitalSharesReservedForFutureIssuance" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockCapitalSharesReservedForFutureIssuance"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CommonStockCapitalSharesReservedForFutureIssuance" xlink:to="lab_us-gaap_CommonStockCapitalSharesReservedForFutureIssuance" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_FrValAsOfPrrYrEndOfEqtyAwrdsGrntdInPrrYrsFldVstngCondsDrngCvrdYrMember_terseLabel_en-US" xlink:label="lab_ecd_FrValAsOfPrrYrEndOfEqtyAwrdsGrntdInPrrYrsFldVstngCondsDrngCvrdYrMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Prior Year End Fair Value of Equity Awards Granted in Any Prior Year that Fail to Meet Applicable Vesting Conditions During Covered Year</link:label>
    <link:label id="lab_ecd_FrValAsOfPrrYrEndOfEqtyAwrdsGrntdInPrrYrsFldVstngCondsDrngCvrdYrMember_label_en-US" xlink:label="lab_ecd_FrValAsOfPrrYrEndOfEqtyAwrdsGrntdInPrrYrsFldVstngCondsDrngCvrdYrMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Prior Year End Fair Value of Equity Awards Granted in Any Prior Year that Fail to Meet Applicable Vesting Conditions During Covered Year [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_FrValAsOfPrrYrEndOfEqtyAwrdsGrntdInPrrYrsFldVstngCondsDrngCvrdYrMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_FrValAsOfPrrYrEndOfEqtyAwrdsGrntdInPrrYrsFldVstngCondsDrngCvrdYrMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_FrValAsOfPrrYrEndOfEqtyAwrdsGrntdInPrrYrsFldVstngCondsDrngCvrdYrMember" xlink:to="lab_ecd_FrValAsOfPrrYrEndOfEqtyAwrdsGrntdInPrrYrsFldVstngCondsDrngCvrdYrMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SharesOutstanding_ae252602-0512-4f4b-bf79-4d94daa797a8_periodStartLabel_en-US" xlink:label="lab_us-gaap_SharesOutstanding" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xml:lang="en-US">Beginning balance, shares</link:label>
    <link:label id="lab_us-gaap_SharesOutstanding_9ce139ba-b047-47f7-b876-1da3ef0f4447_periodEndLabel_en-US" xlink:label="lab_us-gaap_SharesOutstanding" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xml:lang="en-US">Ending balance, shares</link:label>
    <link:label id="lab_us-gaap_SharesOutstanding_label_en-US" xlink:label="lab_us-gaap_SharesOutstanding" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Shares, Outstanding</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharesOutstanding" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SharesOutstanding"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SharesOutstanding" xlink:to="lab_us-gaap_SharesOutstanding" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearTwo_72c976ff-3f02-4602-b3fc-e5a9adeb59ff_terseLabel_en-US" xlink:label="lab_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearTwo" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">2026</link:label>
    <link:label id="lab_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearTwo_label_en-US" xlink:label="lab_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearTwo" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Finite-Lived Intangible Assets And Liability, Net, Amortization Expense, Rolling Year Two</link:label>
    <link:label id="lab_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearTwo_documentation_en-US" xlink:label="lab_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearTwo" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Finite-Lived Intangible Assets And Liability, Net, Amortization Expense, Rolling Year Two</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearTwo" xlink:href="tgen-20241231.xsd#tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearTwo"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearTwo" xlink:to="lab_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearTwo" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AggtErrCompAmt_terseLabel_en-US" xlink:label="lab_ecd_AggtErrCompAmt" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Aggregate Erroneous Compensation Amount</link:label>
    <link:label id="lab_ecd_AggtErrCompAmt_label_en-US" xlink:label="lab_ecd_AggtErrCompAmt" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Aggregate Erroneous Compensation Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AggtErrCompAmt" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AggtErrCompAmt"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AggtErrCompAmt" xlink:to="lab_ecd_AggtErrCompAmt" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_LocalPhoneNumber_b94603a0-6075-4769-9e39-a81858532837_terseLabel_en-US" xlink:label="lab_dei_LocalPhoneNumber" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Local Phone Number</link:label>
    <link:label id="lab_dei_LocalPhoneNumber_label_en-US" xlink:label="lab_dei_LocalPhoneNumber" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Local Phone Number</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_LocalPhoneNumber" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_LocalPhoneNumber"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_LocalPhoneNumber" xlink:to="lab_dei_LocalPhoneNumber" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IntangibleAssetsGrossExcludingGoodwill_acd8355b-fb4d-4120-8d80-d59a48aac5d4_terseLabel_en-US" xlink:label="lab_us-gaap_IntangibleAssetsGrossExcludingGoodwill" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Intangible assets</link:label>
    <link:label id="lab_us-gaap_IntangibleAssetsGrossExcludingGoodwill_label_en-US" xlink:label="lab_us-gaap_IntangibleAssetsGrossExcludingGoodwill" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Intangible Assets, Gross (Excluding Goodwill)</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IntangibleAssetsGrossExcludingGoodwill" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IntangibleAssetsGrossExcludingGoodwill"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IntangibleAssetsGrossExcludingGoodwill" xlink:to="lab_us-gaap_IntangibleAssetsGrossExcludingGoodwill" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_EnergyProductionContactsMember_4fedc9b5-5859-4254-b253-1aa221718ad5_terseLabel_en-US" xlink:label="lab_tgen_EnergyProductionContactsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Energy Production Contacts</link:label>
    <link:label id="lab_tgen_EnergyProductionContactsMember_label_en-US" xlink:label="lab_tgen_EnergyProductionContactsMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Energy Production Contacts [Member]</link:label>
    <link:label id="lab_tgen_EnergyProductionContactsMember_documentation_en-US" xlink:label="lab_tgen_EnergyProductionContactsMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Energy Production Contacts</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_EnergyProductionContactsMember" xlink:href="tgen-20241231.xsd#tgen_EnergyProductionContactsMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_EnergyProductionContactsMember" xlink:to="lab_tgen_EnergyProductionContactsMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ProductWarrantyDisclosureTextBlock_9c32bb6d-4ede-4101-a26f-cc6ec9e8b0ab_terseLabel_en-US" xlink:label="lab_us-gaap_ProductWarrantyDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Product warranty</link:label>
    <link:label id="lab_us-gaap_ProductWarrantyDisclosureTextBlock_label_en-US" xlink:label="lab_us-gaap_ProductWarrantyDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Product Warranty Disclosure [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProductWarrantyDisclosureTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProductWarrantyDisclosureTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ProductWarrantyDisclosureTextBlock" xlink:to="lab_us-gaap_ProductWarrantyDisclosureTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DeferredTaxAssetsValuationAllowance_c878ea21-ff6b-440e-aa64-5473edcf7cb1_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsValuationAllowance" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Valuation allowance</link:label>
    <link:label id="lab_us-gaap_DeferredTaxAssetsValuationAllowance_label_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsValuationAllowance" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred Tax Assets, Valuation Allowance</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsValuationAllowance" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsValuationAllowance"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxAssetsValuationAllowance" xlink:to="lab_us-gaap_DeferredTaxAssetsValuationAllowance" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AggtErrCompNotYetDeterminedTextBlock_terseLabel_en-US" xlink:label="lab_ecd_AggtErrCompNotYetDeterminedTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Aggregate Erroneous Compensation Not Yet Determined</link:label>
    <link:label id="lab_ecd_AggtErrCompNotYetDeterminedTextBlock_label_en-US" xlink:label="lab_ecd_AggtErrCompNotYetDeterminedTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Aggregate Erroneous Compensation Not Yet Determined [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AggtErrCompNotYetDeterminedTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AggtErrCompNotYetDeterminedTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AggtErrCompNotYetDeterminedTextBlock" xlink:to="lab_ecd_AggtErrCompNotYetDeterminedTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OperatingExpenses_2165641c-46f7-466f-be9d-919e0987ff4b_totalLabel_en-US" xlink:label="lab_us-gaap_OperatingExpenses" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Operating Expenses</link:label>
    <link:label id="lab_us-gaap_OperatingExpenses_ec6d0818-d9ea-495e-8e65-6eb043e40df5_terseLabel_en-US" xlink:label="lab_us-gaap_OperatingExpenses" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Operating expenses</link:label>
    <link:label id="lab_us-gaap_OperatingExpenses_label_en-US" xlink:label="lab_us-gaap_OperatingExpenses" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Operating Expenses</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingExpenses" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingExpenses"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OperatingExpenses" xlink:to="lab_us-gaap_OperatingExpenses" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AssetAcquisitionLineItems_edb03894-eba9-449b-b364-d9eaa83d4fec_terseLabel_en-US" xlink:label="lab_us-gaap_AssetAcquisitionLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Asset Acquisition [Line Items]</link:label>
    <link:label id="lab_us-gaap_AssetAcquisitionLineItems_label_en-US" xlink:label="lab_us-gaap_AssetAcquisitionLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Asset Acquisition [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetAcquisitionLineItems" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetAcquisitionLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AssetAcquisitionLineItems" xlink:to="lab_us-gaap_AssetAcquisitionLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_WebsterBusinessCreditCorporationMember_96a4bed2-74af-4e4e-b69f-28debee355a9_terseLabel_en-US" xlink:label="lab_tgen_WebsterBusinessCreditCorporationMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Webster Business Credit Corporation</link:label>
    <link:label id="lab_tgen_WebsterBusinessCreditCorporationMember_label_en-US" xlink:label="lab_tgen_WebsterBusinessCreditCorporationMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Webster Business Credit Corporation [Member]</link:label>
    <link:label id="lab_tgen_WebsterBusinessCreditCorporationMember_documentation_en-US" xlink:label="lab_tgen_WebsterBusinessCreditCorporationMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Webster Business Credit Corporation [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_WebsterBusinessCreditCorporationMember" xlink:href="tgen-20241231.xsd#tgen_WebsterBusinessCreditCorporationMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_WebsterBusinessCreditCorporationMember" xlink:to="lab_tgen_WebsterBusinessCreditCorporationMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LiabilitiesNoncurrentAbstract_41fd8af7-8300-4bc5-8762-f4546b30d375_terseLabel_en-US" xlink:label="lab_us-gaap_LiabilitiesNoncurrentAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Long-term liabilities:</link:label>
    <link:label id="lab_us-gaap_LiabilitiesNoncurrentAbstract_label_en-US" xlink:label="lab_us-gaap_LiabilitiesNoncurrentAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Liabilities, Noncurrent [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LiabilitiesNoncurrentAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LiabilitiesNoncurrentAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LiabilitiesNoncurrentAbstract" xlink:to="lab_us-gaap_LiabilitiesNoncurrentAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_PeoTotalCompAmt_terseLabel_en-US" xlink:label="lab_ecd_PeoTotalCompAmt" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">PEO Total Compensation Amount</link:label>
    <link:label id="lab_ecd_PeoTotalCompAmt_label_en-US" xlink:label="lab_ecd_PeoTotalCompAmt" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">PEO Total Compensation Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_PeoTotalCompAmt" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_PeoTotalCompAmt"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_PeoTotalCompAmt" xlink:to="lab_ecd_PeoTotalCompAmt" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LessorLeaseDescriptionTable_c43dd5ad-c260-4bb2-a52c-c65e76de6a95_terseLabel_en-US" xlink:label="lab_us-gaap_LessorLeaseDescriptionTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Lessor, Lease, Description [Table]</link:label>
    <link:label id="lab_us-gaap_LessorLeaseDescriptionTable_label_en-US" xlink:label="lab_us-gaap_LessorLeaseDescriptionTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Lessor, Lease, Description [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LessorLeaseDescriptionTable" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LessorLeaseDescriptionTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LessorLeaseDescriptionTable" xlink:to="lab_us-gaap_LessorLeaseDescriptionTable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentTypeDomain_791678dd-82e0-4d8c-8ff3-5c1d0468a186_terseLabel_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Property, Plant and Equipment, Type [Domain]</link:label>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentTypeDomain_label_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Long-Lived Tangible Asset [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:to="lab_us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncomeStatementLocationAxis_5fcf97e3-d0d4-471b-a1ee-449a18bb352a_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeStatementLocationAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Statement of Income Location, Balance [Axis]</link:label>
    <link:label id="lab_us-gaap_IncomeStatementLocationAxis_label_en-US" xlink:label="lab_us-gaap_IncomeStatementLocationAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Statement of Income Location, Balance [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeStatementLocationAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeStatementLocationAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeStatementLocationAxis" xlink:to="lab_us-gaap_IncomeStatementLocationAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice_beec3c11-be33-4b05-9897-f39a0443a35c_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Vested and expected to vest (usd per share)</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested and Expected to Vest, Outstanding, Weighted Average Exercise Price</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_AmendnedStockOptionAndIncentivePlan2006Member_8d11d72c-b40f-4ef5-856c-20eaecbb507d_terseLabel_en-US" xlink:label="lab_tgen_AmendnedStockOptionAndIncentivePlan2006Member" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Amended Plan</link:label>
    <link:label id="lab_tgen_AmendnedStockOptionAndIncentivePlan2006Member_label_en-US" xlink:label="lab_tgen_AmendnedStockOptionAndIncentivePlan2006Member" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Amendned Stock Option and Incentive Plan 2006 [Member]</link:label>
    <link:label id="lab_tgen_AmendnedStockOptionAndIncentivePlan2006Member_documentation_en-US" xlink:label="lab_tgen_AmendnedStockOptionAndIncentivePlan2006Member" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Amended 2006 Stock Option and Incentive Plan [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AmendnedStockOptionAndIncentivePlan2006Member" xlink:href="tgen-20241231.xsd#tgen_AmendnedStockOptionAndIncentivePlan2006Member"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_AmendnedStockOptionAndIncentivePlan2006Member" xlink:to="lab_tgen_AmendnedStockOptionAndIncentivePlan2006Member" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CommonStockMember_89498ef9-037f-497e-84de-b1473932eb3c_verboseLabel_en-US" xlink:label="lab_us-gaap_CommonStockMember" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Common Stock 0.001 Par Value</link:label>
    <link:label id="lab_us-gaap_CommonStockMember_label_en-US" xlink:label="lab_us-gaap_CommonStockMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Common Stock [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CommonStockMember" xlink:to="lab_us-gaap_CommonStockMember" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_ForgoneRecoveryDueToExpenseOfEnforcementAmt_terseLabel_en-US" xlink:label="lab_ecd_ForgoneRecoveryDueToExpenseOfEnforcementAmt" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Forgone Recovery due to Expense of Enforcement, Amount</link:label>
    <link:label id="lab_ecd_ForgoneRecoveryDueToExpenseOfEnforcementAmt_label_en-US" xlink:label="lab_ecd_ForgoneRecoveryDueToExpenseOfEnforcementAmt" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Forgone Recovery due to Expense of Enforcement, Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_ForgoneRecoveryDueToExpenseOfEnforcementAmt" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_ForgoneRecoveryDueToExpenseOfEnforcementAmt"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_ForgoneRecoveryDueToExpenseOfEnforcementAmt" xlink:to="lab_ecd_ForgoneRecoveryDueToExpenseOfEnforcementAmt" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_89d1ca7b-8121-42a5-b6ff-b943316b49bc_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Schedule of Business Acquisitions, by Acquisition [Table]</link:label>
    <link:label id="lab_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_label_en-US" xlink:label="lab_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Business Acquisitions, by Acquisition [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:to="lab_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SegmentReportingAbstract_b762365e-de64-4a1e-98eb-c8f8d26a97c4_terseLabel_en-US" xlink:label="lab_us-gaap_SegmentReportingAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Segment Reporting [Abstract]</link:label>
    <link:label id="lab_us-gaap_SegmentReportingAbstract_label_en-US" xlink:label="lab_us-gaap_SegmentReportingAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Segment Reporting [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SegmentReportingAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SegmentReportingAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SegmentReportingAbstract" xlink:to="lab_us-gaap_SegmentReportingAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_AssetAcquisitionAssetsAcquired_a64e712f-1c35-4dce-8cf0-47f782b15729_totalLabel_en-US" xlink:label="lab_tgen_AssetAcquisitionAssetsAcquired" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Assets acquired</link:label>
    <link:label id="lab_tgen_AssetAcquisitionAssetsAcquired_label_en-US" xlink:label="lab_tgen_AssetAcquisitionAssetsAcquired" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Asset Acquisition, Assets Acquired</link:label>
    <link:label id="lab_tgen_AssetAcquisitionAssetsAcquired_documentation_en-US" xlink:label="lab_tgen_AssetAcquisitionAssetsAcquired" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Asset Acquisition, Assets Acquired</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AssetAcquisitionAssetsAcquired" xlink:href="tgen-20241231.xsd#tgen_AssetAcquisitionAssetsAcquired"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_AssetAcquisitionAssetsAcquired" xlink:to="lab_tgen_AssetAcquisitionAssetsAcquired" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntityCentralIndexKey_6f3c6e87-1570-4f4b-8acc-19d61f633bb9_terseLabel_en-US" xlink:label="lab_dei_EntityCentralIndexKey" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Entity Central Index Key</link:label>
    <link:label id="lab_dei_EntityCentralIndexKey_label_en-US" xlink:label="lab_dei_EntityCentralIndexKey" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Central Index Key</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityCentralIndexKey" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityCentralIndexKey"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityCentralIndexKey" xlink:to="lab_dei_EntityCentralIndexKey" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LossContingencyDamagesSoughtValue_e5a7668e-5640-4463-88d6-b9b6371b499b_terseLabel_en-US" xlink:label="lab_us-gaap_LossContingencyDamagesSoughtValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Loss contingency, damages sought</link:label>
    <link:label id="lab_us-gaap_LossContingencyDamagesSoughtValue_label_en-US" xlink:label="lab_us-gaap_LossContingencyDamagesSoughtValue" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Loss Contingency, Damages Sought, Value</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LossContingencyDamagesSoughtValue" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LossContingencyDamagesSoughtValue"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LossContingencyDamagesSoughtValue" xlink:to="lab_us-gaap_LossContingencyDamagesSoughtValue" xlink:type="arc" order="1"/>
    <link:label id="lab_srt_StatementScenarioAxis_7b8a6254-012d-444d-ad83-b6fea86dedb0_terseLabel_en-US" xlink:label="lab_srt_StatementScenarioAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Scenario [Axis]</link:label>
    <link:label id="lab_srt_StatementScenarioAxis_label_en-US" xlink:label="lab_srt_StatementScenarioAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Scenario [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_srt_StatementScenarioAxis" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_StatementScenarioAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_StatementScenarioAxis" xlink:to="lab_srt_StatementScenarioAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_GeneralAndAdministrativeExpenseMember_2e952146-ad41-4f27-a573-0fdacab6b6a8_terseLabel_en-US" xlink:label="lab_us-gaap_GeneralAndAdministrativeExpenseMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">General and Administrative Expense</link:label>
    <link:label id="lab_us-gaap_GeneralAndAdministrativeExpenseMember_label_en-US" xlink:label="lab_us-gaap_GeneralAndAdministrativeExpenseMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">General and Administrative Expense [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GeneralAndAdministrativeExpenseMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GeneralAndAdministrativeExpenseMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_GeneralAndAdministrativeExpenseMember" xlink:to="lab_us-gaap_GeneralAndAdministrativeExpenseMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfInventoryCurrentTableTextBlock_4c3b09a4-ae9a-4e5a-a42b-d68e2f90d3fb_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfInventoryCurrentTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Summary of Inventory</link:label>
    <link:label id="lab_us-gaap_ScheduleOfInventoryCurrentTableTextBlock_label_en-US" xlink:label="lab_us-gaap_ScheduleOfInventoryCurrentTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Inventory, Current [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfInventoryCurrentTableTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfInventoryCurrentTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfInventoryCurrentTableTextBlock" xlink:to="lab_us-gaap_ScheduleOfInventoryCurrentTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_IntangibleLiabilitiesNet_00d9cb7f-3bd5-4df6-9a9f-63c0b319c3f4_totalLabel_en-US" xlink:label="lab_tgen_IntangibleLiabilitiesNet" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Intangible Liabilities, Net</link:label>
    <link:label id="lab_tgen_IntangibleLiabilitiesNet_label_en-US" xlink:label="lab_tgen_IntangibleLiabilitiesNet" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Intangible Liabilities, Net</link:label>
    <link:label id="lab_tgen_IntangibleLiabilitiesNet_documentation_en-US" xlink:label="lab_tgen_IntangibleLiabilitiesNet" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Intangible Liabilities, Net</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_IntangibleLiabilitiesNet" xlink:href="tgen-20241231.xsd#tgen_IntangibleLiabilitiesNet"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_IntangibleLiabilitiesNet" xlink:to="lab_tgen_IntangibleLiabilitiesNet" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DiscontinuedOperationsAndDisposalGroupsAbstract_6bd32645-6af2-407a-8d85-2547cdb4b4a5_terseLabel_en-US" xlink:label="lab_us-gaap_DiscontinuedOperationsAndDisposalGroupsAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Discontinued Operations and Disposal Groups [Abstract]</link:label>
    <link:label id="lab_us-gaap_DiscontinuedOperationsAndDisposalGroupsAbstract_label_en-US" xlink:label="lab_us-gaap_DiscontinuedOperationsAndDisposalGroupsAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Discontinued Operations and Disposal Groups [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DiscontinuedOperationsAndDisposalGroupsAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DiscontinuedOperationsAndDisposalGroupsAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DiscontinuedOperationsAndDisposalGroupsAbstract" xlink:to="lab_us-gaap_DiscontinuedOperationsAndDisposalGroupsAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_NonPeoNeoAvgCompActuallyPaidAmt_terseLabel_en-US" xlink:label="lab_ecd_NonPeoNeoAvgCompActuallyPaidAmt" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Non-PEO NEO Average Compensation Actually Paid Amount</link:label>
    <link:label id="lab_ecd_NonPeoNeoAvgCompActuallyPaidAmt_label_en-US" xlink:label="lab_ecd_NonPeoNeoAvgCompActuallyPaidAmt" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Non-PEO NEO Average Compensation Actually Paid Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_NonPeoNeoAvgCompActuallyPaidAmt" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_NonPeoNeoAvgCompActuallyPaidAmt"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_NonPeoNeoAvgCompActuallyPaidAmt" xlink:to="lab_ecd_NonPeoNeoAvgCompActuallyPaidAmt" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AwardTmgHowMnpiCnsdrdTextBlock_terseLabel_en-US" xlink:label="lab_ecd_AwardTmgHowMnpiCnsdrdTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Award Timing, How MNPI Considered</link:label>
    <link:label id="lab_ecd_AwardTmgHowMnpiCnsdrdTextBlock_label_en-US" xlink:label="lab_ecd_AwardTmgHowMnpiCnsdrdTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Award Timing, How MNPI Considered [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardTmgHowMnpiCnsdrdTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AwardTmgHowMnpiCnsdrdTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AwardTmgHowMnpiCnsdrdTextBlock" xlink:to="lab_ecd_AwardTmgHowMnpiCnsdrdTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SegmentReportingDisclosureTextBlock_b34c4229-2cb1-4413-800c-7fb17594aad7_terseLabel_en-US" xlink:label="lab_us-gaap_SegmentReportingDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Segments</link:label>
    <link:label id="lab_us-gaap_SegmentReportingDisclosureTextBlock_label_en-US" xlink:label="lab_us-gaap_SegmentReportingDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Segment Reporting Disclosure [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SegmentReportingDisclosureTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SegmentReportingDisclosureTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SegmentReportingDisclosureTextBlock" xlink:to="lab_us-gaap_SegmentReportingDisclosureTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings_174ea320-f679-4320-872c-8a1bccf76492_terseLabel_en-US" xlink:label="lab_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Total gains (losses)</link:label>
    <link:label id="lab_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings_label_en-US" xlink:label="lab_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Fair Value, Measurement with Unobservable Inputs Reconciliation, Recurring Basis, Liability, Gain (Loss) Included in Earnings</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings" xlink:to="lab_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_FiniteLivedIntangibleLiabilityAxis_32c7dda8-6a71-4fbc-867b-60855265dc2d_terseLabel_en-US" xlink:label="lab_tgen_FiniteLivedIntangibleLiabilityAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Finite-Lived Intangible Liability [Axis]</link:label>
    <link:label id="lab_tgen_FiniteLivedIntangibleLiabilityAxis_label_en-US" xlink:label="lab_tgen_FiniteLivedIntangibleLiabilityAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Finite-Lived Intangible Liability [Axis]</link:label>
    <link:label id="lab_tgen_FiniteLivedIntangibleLiabilityAxis_documentation_en-US" xlink:label="lab_tgen_FiniteLivedIntangibleLiabilityAxis" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Finite-Lived Intangible Liability [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_FiniteLivedIntangibleLiabilityAxis" xlink:href="tgen-20241231.xsd#tgen_FiniteLivedIntangibleLiabilityAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_FiniteLivedIntangibleLiabilityAxis" xlink:to="lab_tgen_FiniteLivedIntangibleLiabilityAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_2a2abf7f-9a58-4aa6-94a1-70f7e6a9260e_terseLabel_en-US" xlink:label="lab_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Stock-based compensation</link:label>
    <link:label id="lab_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_label_en-US" xlink:label="lab_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">APIC, Share-Based Payment Arrangement, Increase for Cost Recognition</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:to="lab_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FairValueByMeasurementBasisAxis_0afb63d3-bd6b-4d7b-b8f1-2728ad40a209_terseLabel_en-US" xlink:label="lab_us-gaap_FairValueByMeasurementBasisAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Measurement Basis [Axis]</link:label>
    <link:label id="lab_us-gaap_FairValueByMeasurementBasisAxis_label_en-US" xlink:label="lab_us-gaap_FairValueByMeasurementBasisAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Measurement Basis [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueByMeasurementBasisAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueByMeasurementBasisAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueByMeasurementBasisAxis" xlink:to="lab_us-gaap_FairValueByMeasurementBasisAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_GainLossOnContractTermination_75b24991-8acc-4c87-b312-fdbadbcd3d40_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_GainLossOnContractTermination" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Long-lived asset impairment</link:label>
    <link:label id="lab_us-gaap_GainLossOnContractTermination_c0141873-fdcb-4bc6-ae50-fcdd12abddfb_terseLabel_en-US" xlink:label="lab_us-gaap_GainLossOnContractTermination" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Reversal of unfavorable contract liability</link:label>
    <link:label id="lab_us-gaap_GainLossOnContractTermination_label_en-US" xlink:label="lab_us-gaap_GainLossOnContractTermination" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Gain (Loss) on Contract Termination</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GainLossOnContractTermination" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GainLossOnContractTermination"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_GainLossOnContractTermination" xlink:to="lab_us-gaap_GainLossOnContractTermination" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IntangibleAssetsNetExcludingGoodwillAbstract_c8d5a3da-130f-4f9d-af2a-42397f7b5fec_terseLabel_en-US" xlink:label="lab_us-gaap_IntangibleAssetsNetExcludingGoodwillAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Intangible Assets, Net (Excluding Goodwill) [Abstract]</link:label>
    <link:label id="lab_us-gaap_IntangibleAssetsNetExcludingGoodwillAbstract_label_en-US" xlink:label="lab_us-gaap_IntangibleAssetsNetExcludingGoodwillAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Intangible Assets, Net (Excluding Goodwill) [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IntangibleAssetsNetExcludingGoodwillAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IntangibleAssetsNetExcludingGoodwillAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IntangibleAssetsNetExcludingGoodwillAbstract" xlink:to="lab_us-gaap_IntangibleAssetsNetExcludingGoodwillAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfPubliclyTradedCompaniesUsedInExpectedVolatilityRateCalculation_e13e4ab4-5484-4b34-88b3-2c55b3644c04_terseLabel_en-US" xlink:label="lab_tgen_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfPubliclyTradedCompaniesUsedInExpectedVolatilityRateCalculation" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Number of publicly traded companies used in expected volatility rate calculation</link:label>
    <link:label id="lab_tgen_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfPubliclyTradedCompaniesUsedInExpectedVolatilityRateCalculation_label_en-US" xlink:label="lab_tgen_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfPubliclyTradedCompaniesUsedInExpectedVolatilityRateCalculation" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share Based Compensation Arrangement By Share Based Payment Award, Number Of Publicly Traded Companies Used In Expected Volatility Rate Calculation</link:label>
    <link:label id="lab_tgen_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfPubliclyTradedCompaniesUsedInExpectedVolatilityRateCalculation_documentation_en-US" xlink:label="lab_tgen_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfPubliclyTradedCompaniesUsedInExpectedVolatilityRateCalculation" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Share Based Compensation Arrangement By Share Based Payment Award, Number Of Publicly Traded Companies Used In Expected Volatility Rate Calculation</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfPubliclyTradedCompaniesUsedInExpectedVolatilityRateCalculation" xlink:href="tgen-20241231.xsd#tgen_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfPubliclyTradedCompaniesUsedInExpectedVolatilityRateCalculation"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfPubliclyTradedCompaniesUsedInExpectedVolatilityRateCalculation" xlink:to="lab_tgen_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfPubliclyTradedCompaniesUsedInExpectedVolatilityRateCalculation" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_TrdArrIndTitle_terseLabel_en-US" xlink:label="lab_ecd_TrdArrIndTitle" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Title</link:label>
    <link:label id="lab_ecd_TrdArrIndTitle_label_en-US" xlink:label="lab_ecd_TrdArrIndTitle" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Trading Arrangement, Individual Title</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TrdArrIndTitle" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_TrdArrIndTitle"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_TrdArrIndTitle" xlink:to="lab_ecd_TrdArrIndTitle" xlink:type="arc" order="1"/>
    <link:label id="lab_srt_ConsolidatedEntitiesAxis_3d0fb064-81d6-4615-867e-efe241073e8e_terseLabel_en-US" xlink:label="lab_srt_ConsolidatedEntitiesAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Consolidated Entities [Axis]</link:label>
    <link:label id="lab_srt_ConsolidatedEntitiesAxis_label_en-US" xlink:label="lab_srt_ConsolidatedEntitiesAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Consolidated Entities [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ConsolidatedEntitiesAxis" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ConsolidatedEntitiesAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_ConsolidatedEntitiesAxis" xlink:to="lab_srt_ConsolidatedEntitiesAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_ContractWithCustomerShippingAndHandlingBilled_d40cff13-979b-42f3-9ae8-40bd03b01695_terseLabel_en-US" xlink:label="lab_tgen_ContractWithCustomerShippingAndHandlingBilled" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Shipping and handling fees billed to customers</link:label>
    <link:label id="lab_tgen_ContractWithCustomerShippingAndHandlingBilled_label_en-US" xlink:label="lab_tgen_ContractWithCustomerShippingAndHandlingBilled" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Contract With Customer, Shipping And Handling Billed</link:label>
    <link:label id="lab_tgen_ContractWithCustomerShippingAndHandlingBilled_documentation_en-US" xlink:label="lab_tgen_ContractWithCustomerShippingAndHandlingBilled" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Contract With Customer, Shipping And Handling Billed</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ContractWithCustomerShippingAndHandlingBilled" xlink:href="tgen-20241231.xsd#tgen_ContractWithCustomerShippingAndHandlingBilled"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_ContractWithCustomerShippingAndHandlingBilled" xlink:to="lab_tgen_ContractWithCustomerShippingAndHandlingBilled" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_DebtInstrumentForgivenessAccruedInterest_989e9ad2-79f6-4a51-8019-e5fe4cb61aac_terseLabel_en-US" xlink:label="lab_tgen_DebtInstrumentForgivenessAccruedInterest" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Debt forgiveness, accrued interest</link:label>
    <link:label id="lab_tgen_DebtInstrumentForgivenessAccruedInterest_label_en-US" xlink:label="lab_tgen_DebtInstrumentForgivenessAccruedInterest" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Debt Instrument, Forgiveness, Accrued Interest</link:label>
    <link:label id="lab_tgen_DebtInstrumentForgivenessAccruedInterest_documentation_en-US" xlink:label="lab_tgen_DebtInstrumentForgivenessAccruedInterest" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Debt Instrument, Forgiveness, Accrued Interest</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_DebtInstrumentForgivenessAccruedInterest" xlink:href="tgen-20241231.xsd#tgen_DebtInstrumentForgivenessAccruedInterest"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_DebtInstrumentForgivenessAccruedInterest" xlink:to="lab_tgen_DebtInstrumentForgivenessAccruedInterest" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_InternalRevenueServiceIRSMember_3ec92cf7-ff72-48ab-8935-cefe578a8c6c_terseLabel_en-US" xlink:label="lab_us-gaap_InternalRevenueServiceIRSMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Internal Revenue Service (IRS)</link:label>
    <link:label id="lab_us-gaap_InternalRevenueServiceIRSMember_label_en-US" xlink:label="lab_us-gaap_InternalRevenueServiceIRSMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Internal Revenue Service (IRS) [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InternalRevenueServiceIRSMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InternalRevenueServiceIRSMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_InternalRevenueServiceIRSMember" xlink:to="lab_us-gaap_InternalRevenueServiceIRSMember" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_CityAreaCode_b0992fee-25fc-4bfd-b26c-76e7b363e1a2_terseLabel_en-US" xlink:label="lab_dei_CityAreaCode" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">City Area Code</link:label>
    <link:label id="lab_dei_CityAreaCode_label_en-US" xlink:label="lab_dei_CityAreaCode" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">City Area Code</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_CityAreaCode" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_CityAreaCode"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_CityAreaCode" xlink:to="lab_dei_CityAreaCode" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LiabilitiesCurrentAbstract_5f4dfbe5-b8b4-49aa-b0fa-1fc8c20d18f6_terseLabel_en-US" xlink:label="lab_us-gaap_LiabilitiesCurrentAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Current liabilities:</link:label>
    <link:label id="lab_us-gaap_LiabilitiesCurrentAbstract_label_en-US" xlink:label="lab_us-gaap_LiabilitiesCurrentAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Liabilities, Current [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LiabilitiesCurrentAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LiabilitiesCurrentAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LiabilitiesCurrentAbstract" xlink:to="lab_us-gaap_LiabilitiesCurrentAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_AuditorLocation_6e2f9776-1900-4514-bee4-180a868e3a56_terseLabel_en-US" xlink:label="lab_dei_AuditorLocation" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Auditor Location</link:label>
    <link:label id="lab_dei_AuditorLocation_label_en-US" xlink:label="lab_dei_AuditorLocation" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Auditor Location</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_AuditorLocation" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_AuditorLocation"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_AuditorLocation" xlink:to="lab_dei_AuditorLocation" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_InsiderTrdPoliciesProcNotAdoptedTextBlock_terseLabel_en-US" xlink:label="lab_ecd_InsiderTrdPoliciesProcNotAdoptedTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Insider Trading Policies and Procedures Not Adopted</link:label>
    <link:label id="lab_ecd_InsiderTrdPoliciesProcNotAdoptedTextBlock_label_en-US" xlink:label="lab_ecd_InsiderTrdPoliciesProcNotAdoptedTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Insider Trading Policies and Procedures Not Adopted [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_InsiderTrdPoliciesProcNotAdoptedTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_InsiderTrdPoliciesProcNotAdoptedTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_InsiderTrdPoliciesProcNotAdoptedTextBlock" xlink:to="lab_ecd_InsiderTrdPoliciesProcNotAdoptedTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_GainLossOnDispositionOfAssets1_2c763a01-ea46-4f7d-888d-e4fbe376adf5_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_GainLossOnDispositionOfAssets1" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Gain on sale of assets</link:label>
    <link:label id="lab_us-gaap_GainLossOnDispositionOfAssets1_4b789890-c62e-4986-93a2-b63ad624d622_negatedLabel_en-US" xlink:label="lab_us-gaap_GainLossOnDispositionOfAssets1" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Gain on sale of assets</link:label>
    <link:label id="lab_us-gaap_GainLossOnDispositionOfAssets1_label_en-US" xlink:label="lab_us-gaap_GainLossOnDispositionOfAssets1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Gain (Loss) on Disposition of Assets</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GainLossOnDispositionOfAssets1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GainLossOnDispositionOfAssets1"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_GainLossOnDispositionOfAssets1" xlink:to="lab_us-gaap_GainLossOnDispositionOfAssets1" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable_ea9e873b-0332-4b0c-8182-9e5d2a143527_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Schedule of Segment Reporting Information, by Segment [Table]</link:label>
    <link:label id="lab_us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable_label_en-US" xlink:label="lab_us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Segment Reporting Information, by Segment [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable" xlink:to="lab_us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SubsequentEventTypeAxis_3dbdf88a-e3fc-4249-a92f-04f390e2ecd8_terseLabel_en-US" xlink:label="lab_us-gaap_SubsequentEventTypeAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Subsequent Event Type [Axis]</link:label>
    <link:label id="lab_us-gaap_SubsequentEventTypeAxis_label_en-US" xlink:label="lab_us-gaap_SubsequentEventTypeAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Subsequent Event Type [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventTypeAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsequentEventTypeAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SubsequentEventTypeAxis" xlink:to="lab_us-gaap_SubsequentEventTypeAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_ServicesAndOtherSegmentMember_a69d74c8-e424-4bfb-978d-57b7294ea918_terseLabel_en-US" xlink:label="lab_tgen_ServicesAndOtherSegmentMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Services and Other Segment</link:label>
    <link:label id="lab_tgen_ServicesAndOtherSegmentMember_label_en-US" xlink:label="lab_tgen_ServicesAndOtherSegmentMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Services and Other Segment [Member]</link:label>
    <link:label id="lab_tgen_ServicesAndOtherSegmentMember_documentation_en-US" xlink:label="lab_tgen_ServicesAndOtherSegmentMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Services and Other Segment</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ServicesAndOtherSegmentMember" xlink:href="tgen-20241231.xsd#tgen_ServicesAndOtherSegmentMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_ServicesAndOtherSegmentMember" xlink:to="lab_tgen_ServicesAndOtherSegmentMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RevenueRemainingPerformanceObligationPercentage_7e26802e-3576-401e-97c7-10db538ac9ff_terseLabel_en-US" xlink:label="lab_us-gaap_RevenueRemainingPerformanceObligationPercentage" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Revenue, remaining performance obligation, percentage</link:label>
    <link:label id="lab_us-gaap_RevenueRemainingPerformanceObligationPercentage_label_en-US" xlink:label="lab_us-gaap_RevenueRemainingPerformanceObligationPercentage" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Revenue, Remaining Performance Obligation, Percentage</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueRemainingPerformanceObligationPercentage" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueRemainingPerformanceObligationPercentage"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RevenueRemainingPerformanceObligationPercentage" xlink:to="lab_us-gaap_RevenueRemainingPerformanceObligationPercentage" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EarningsPerShareAbstract_75aa39c9-5f83-44d7-bc83-e85689670917_terseLabel_en-US" xlink:label="lab_us-gaap_EarningsPerShareAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Earnings Per Share [Abstract]</link:label>
    <link:label id="lab_us-gaap_EarningsPerShareAbstract_label_en-US" xlink:label="lab_us-gaap_EarningsPerShareAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Earnings Per Share [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EarningsPerShareAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EarningsPerShareAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EarningsPerShareAbstract" xlink:to="lab_us-gaap_EarningsPerShareAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EquityAbstract_145d9c48-956b-4533-a81b-3119f8d9d9b7_terseLabel_en-US" xlink:label="lab_us-gaap_EquityAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Stockholders&#8217; equity:</link:label>
    <link:label id="lab_us-gaap_EquityAbstract_label_en-US" xlink:label="lab_us-gaap_EquityAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Equity [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquityAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EquityAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EquityAbstract" xlink:to="lab_us-gaap_EquityAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_InventoryRawMaterialsNetOfReserves_410c6b45-3c05-4f25-984f-4f119a214e54_terseLabel_en-US" xlink:label="lab_us-gaap_InventoryRawMaterialsNetOfReserves" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Raw materials, net</link:label>
    <link:label id="lab_us-gaap_InventoryRawMaterialsNetOfReserves_label_en-US" xlink:label="lab_us-gaap_InventoryRawMaterialsNetOfReserves" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Inventory, Raw Materials, Net of Reserves</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryRawMaterialsNetOfReserves" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InventoryRawMaterialsNetOfReserves"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_InventoryRawMaterialsNetOfReserves" xlink:to="lab_us-gaap_InventoryRawMaterialsNetOfReserves" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RetainedEarningsAccumulatedDeficit_e193a93e-4440-4a9a-943d-29f870a02904_terseLabel_en-US" xlink:label="lab_us-gaap_RetainedEarningsAccumulatedDeficit" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Accumulated deficit</link:label>
    <link:label id="lab_us-gaap_RetainedEarningsAccumulatedDeficit_label_en-US" xlink:label="lab_us-gaap_RetainedEarningsAccumulatedDeficit" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Retained Earnings (Accumulated Deficit)</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RetainedEarningsAccumulatedDeficit" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RetainedEarningsAccumulatedDeficit"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RetainedEarningsAccumulatedDeficit" xlink:to="lab_us-gaap_RetainedEarningsAccumulatedDeficit" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RelatedPartyTransactionLineItems_5ded5946-2d7f-4859-93f2-9adb6c7fb8a2_terseLabel_en-US" xlink:label="lab_us-gaap_RelatedPartyTransactionLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Related Party Transaction [Line Items]</link:label>
    <link:label id="lab_us-gaap_RelatedPartyTransactionLineItems_label_en-US" xlink:label="lab_us-gaap_RelatedPartyTransactionLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Related Party Transaction [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyTransactionLineItems" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RelatedPartyTransactionLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RelatedPartyTransactionLineItems" xlink:to="lab_us-gaap_RelatedPartyTransactionLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncreaseDecreaseInInventories_36d9d4c2-b2c2-429f-864e-5bb75f0e11cf_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInInventories" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Inventory, net</link:label>
    <link:label id="lab_us-gaap_IncreaseDecreaseInInventories_label_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInInventories" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Increase (Decrease) in Inventories</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInInventories" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInInventories"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncreaseDecreaseInInventories" xlink:to="lab_us-gaap_IncreaseDecreaseInInventories" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_GeneralAndAdministrativeExpense_dd921c2c-dd43-4634-852e-9dc33c753aac_terseLabel_en-US" xlink:label="lab_us-gaap_GeneralAndAdministrativeExpense" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">General and administrative</link:label>
    <link:label id="lab_us-gaap_GeneralAndAdministrativeExpense_label_en-US" xlink:label="lab_us-gaap_GeneralAndAdministrativeExpense" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">General and Administrative Expense</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GeneralAndAdministrativeExpense" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GeneralAndAdministrativeExpense"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_GeneralAndAdministrativeExpense" xlink:to="lab_us-gaap_GeneralAndAdministrativeExpense" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedFinancialLiabilities_8b96da54-a86d-483f-91cb-045b7e64d3b8_terseLabel_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedFinancialLiabilities" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Unfavorable contract liability, net of current portion</link:label>
    <link:label id="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedFinancialLiabilities_label_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedFinancialLiabilities" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Financial Liabilities</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedFinancialLiabilities" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedFinancialLiabilities"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedFinancialLiabilities" xlink:to="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedFinancialLiabilities" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_TrdArrSecuritiesAggAvailAmt_terseLabel_en-US" xlink:label="lab_ecd_TrdArrSecuritiesAggAvailAmt" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Aggregate Available</link:label>
    <link:label id="lab_ecd_TrdArrSecuritiesAggAvailAmt_label_en-US" xlink:label="lab_ecd_TrdArrSecuritiesAggAvailAmt" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Trading Arrangement, Securities Aggregate Available Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TrdArrSecuritiesAggAvailAmt" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_TrdArrSecuritiesAggAvailAmt"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_TrdArrSecuritiesAggAvailAmt" xlink:to="lab_ecd_TrdArrSecuritiesAggAvailAmt" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_ContingentConsiderationCurrentMember_748e9bf0-4925-4a95-a6ac-343e51ca98c2_terseLabel_en-US" xlink:label="lab_tgen_ContingentConsiderationCurrentMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Contingent Consideration, Current</link:label>
    <link:label id="lab_tgen_ContingentConsiderationCurrentMember_label_en-US" xlink:label="lab_tgen_ContingentConsiderationCurrentMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Contingent Consideration, Current [Member]</link:label>
    <link:label id="lab_tgen_ContingentConsiderationCurrentMember_documentation_en-US" xlink:label="lab_tgen_ContingentConsiderationCurrentMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Contingent Consideration, Current</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ContingentConsiderationCurrentMember" xlink:href="tgen-20241231.xsd#tgen_ContingentConsiderationCurrentMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_ContingentConsiderationCurrentMember" xlink:to="lab_tgen_ContingentConsiderationCurrentMember" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_AssetAcquisitionReserves_756f5131-5465-476d-a273-75c90c83b1ac_negatedTerseLabel_en-US" xlink:label="lab_tgen_AssetAcquisitionReserves" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Deferred maintenance reserve</link:label>
    <link:label id="lab_tgen_AssetAcquisitionReserves_label_en-US" xlink:label="lab_tgen_AssetAcquisitionReserves" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Asset Acquisition, Reserves</link:label>
    <link:label id="lab_tgen_AssetAcquisitionReserves_documentation_en-US" xlink:label="lab_tgen_AssetAcquisitionReserves" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Asset Acquisition, Reserves</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AssetAcquisitionReserves" xlink:href="tgen-20241231.xsd#tgen_AssetAcquisitionReserves"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_AssetAcquisitionReserves" xlink:to="lab_tgen_AssetAcquisitionReserves" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_EqtyAwrdsAdjsMember_terseLabel_en-US" xlink:label="lab_ecd_EqtyAwrdsAdjsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Equity Awards Adjustments</link:label>
    <link:label id="lab_ecd_EqtyAwrdsAdjsMember_label_en-US" xlink:label="lab_ecd_EqtyAwrdsAdjsMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Equity Awards Adjustments [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_EqtyAwrdsAdjsMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_EqtyAwrdsAdjsMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_EqtyAwrdsAdjsMember" xlink:to="lab_ecd_EqtyAwrdsAdjsMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OperatingLeaseLiability_a89bba5a-3efe-46cf-94a1-48dddb6f19b3_totalLabel_en-US" xlink:label="lab_us-gaap_OperatingLeaseLiability" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Total operating lease liability</link:label>
    <link:label id="lab_us-gaap_OperatingLeaseLiability_77675189-aed8-4e7f-87a1-9a31c8b49ba6_verboseLabel_en-US" xlink:label="lab_us-gaap_OperatingLeaseLiability" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Total</link:label>
    <link:label id="lab_us-gaap_OperatingLeaseLiability_label_en-US" xlink:label="lab_us-gaap_OperatingLeaseLiability" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Operating Lease, Liability</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseLiability" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseLiability"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OperatingLeaseLiability" xlink:to="lab_us-gaap_OperatingLeaseLiability" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AwardUndrlygSecuritiesAmt_terseLabel_en-US" xlink:label="lab_ecd_AwardUndrlygSecuritiesAmt" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Underlying Securities</link:label>
    <link:label id="lab_ecd_AwardUndrlygSecuritiesAmt_label_en-US" xlink:label="lab_ecd_AwardUndrlygSecuritiesAmt" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Award Underlying Securities Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardUndrlygSecuritiesAmt" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AwardUndrlygSecuritiesAmt"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AwardUndrlygSecuritiesAmt" xlink:to="lab_ecd_AwardUndrlygSecuritiesAmt" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DeferredRevenueCurrent_ae633b5a-af2f-4adb-ac4b-772a079ca646_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredRevenueCurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Deferred revenue</link:label>
    <link:label id="lab_us-gaap_DeferredRevenueCurrent_label_en-US" xlink:label="lab_us-gaap_DeferredRevenueCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred Revenue, Current</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredRevenueCurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredRevenueCurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredRevenueCurrent" xlink:to="lab_us-gaap_DeferredRevenueCurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AssetAcquisitionConsiderationTransferredOtherAssets_bdef2b4c-0fbc-45c9-bfb6-00a578db93db_terseLabel_en-US" xlink:label="lab_us-gaap_AssetAcquisitionConsiderationTransferredOtherAssets" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Accounts receivable credit issued</link:label>
    <link:label id="lab_us-gaap_AssetAcquisitionConsiderationTransferredOtherAssets_label_en-US" xlink:label="lab_us-gaap_AssetAcquisitionConsiderationTransferredOtherAssets" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Asset Acquisition, Consideration Transferred, Other Assets</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetAcquisitionConsiderationTransferredOtherAssets" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetAcquisitionConsiderationTransferredOtherAssets"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AssetAcquisitionConsiderationTransferredOtherAssets" xlink:to="lab_us-gaap_AssetAcquisitionConsiderationTransferredOtherAssets" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SubsidiaryOrEquityMethodInvesteeCumulativePercentageOwnershipAfterAllTransactions_14db9410-3df2-4c9d-b16e-d3942cc3d8d7_verboseLabel_en-US" xlink:label="lab_us-gaap_SubsidiaryOrEquityMethodInvesteeCumulativePercentageOwnershipAfterAllTransactions" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Ownership interest (percent)</link:label>
    <link:label id="lab_us-gaap_SubsidiaryOrEquityMethodInvesteeCumulativePercentageOwnershipAfterAllTransactions_label_en-US" xlink:label="lab_us-gaap_SubsidiaryOrEquityMethodInvesteeCumulativePercentageOwnershipAfterAllTransactions" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Subsidiary or Equity Method Investee, Cumulative Percentage Ownership after All Transactions</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsidiaryOrEquityMethodInvesteeCumulativePercentageOwnershipAfterAllTransactions" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsidiaryOrEquityMethodInvesteeCumulativePercentageOwnershipAfterAllTransactions"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SubsidiaryOrEquityMethodInvesteeCumulativePercentageOwnershipAfterAllTransactions" xlink:to="lab_us-gaap_SubsidiaryOrEquityMethodInvesteeCumulativePercentageOwnershipAfterAllTransactions" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FinanceLeaseLiabilityPaymentsDueYearFive_de75f073-5ef8-4744-bf36-52ea21aef4d2_terseLabel_en-US" xlink:label="lab_us-gaap_FinanceLeaseLiabilityPaymentsDueYearFive" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">2029</link:label>
    <link:label id="lab_us-gaap_FinanceLeaseLiabilityPaymentsDueYearFive_label_en-US" xlink:label="lab_us-gaap_FinanceLeaseLiabilityPaymentsDueYearFive" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Finance Lease, Liability, to be Paid, Year Five</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinanceLeaseLiabilityPaymentsDueYearFive" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FinanceLeaseLiabilityPaymentsDueYearFive"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FinanceLeaseLiabilityPaymentsDueYearFive" xlink:to="lab_us-gaap_FinanceLeaseLiabilityPaymentsDueYearFive" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_AmendmentFlag_fb2ac8e4-e299-4394-bcfa-b8d051aaf6fa_terseLabel_en-US" xlink:label="lab_dei_AmendmentFlag" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Amendment Flag</link:label>
    <link:label id="lab_dei_AmendmentFlag_label_en-US" xlink:label="lab_dei_AmendmentFlag" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Amendment Flag</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_AmendmentFlag" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_AmendmentFlag"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_AmendmentFlag" xlink:to="lab_dei_AmendmentFlag" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_StockAppreciationRightsSARSMember_terseLabel_en-US" xlink:label="lab_us-gaap_StockAppreciationRightsSARSMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Stock Appreciation Rights (SARs)</link:label>
    <link:label id="lab_us-gaap_StockAppreciationRightsSARSMember_label_en-US" xlink:label="lab_us-gaap_StockAppreciationRightsSARSMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Stock Appreciation Rights (SARs) [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockAppreciationRightsSARSMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockAppreciationRightsSARSMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StockAppreciationRightsSARSMember" xlink:to="lab_us-gaap_StockAppreciationRightsSARSMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_MachineryAndEquipmentMember_97612351-cce4-43a3-aa92-9a87f8955fa1_terseLabel_en-US" xlink:label="lab_us-gaap_MachineryAndEquipmentMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Machinery and Equipment</link:label>
    <link:label id="lab_us-gaap_MachineryAndEquipmentMember_label_en-US" xlink:label="lab_us-gaap_MachineryAndEquipmentMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Machinery and Equipment [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MachineryAndEquipmentMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_MachineryAndEquipmentMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_MachineryAndEquipmentMember" xlink:to="lab_us-gaap_MachineryAndEquipmentMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FinanceLeaseRightOfUseAssetAmortization_aa2e675a-695e-40ee-aad1-e2b0c72b390c_terseLabel_en-US" xlink:label="lab_us-gaap_FinanceLeaseRightOfUseAssetAmortization" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Depreciation and amortization expense on right-of-use finance lease assets</link:label>
    <link:label id="lab_us-gaap_FinanceLeaseRightOfUseAssetAmortization_label_en-US" xlink:label="lab_us-gaap_FinanceLeaseRightOfUseAssetAmortization" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Finance Lease, Right-of-Use Asset, Amortization</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinanceLeaseRightOfUseAssetAmortization" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FinanceLeaseRightOfUseAssetAmortization"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FinanceLeaseRightOfUseAssetAmortization" xlink:to="lab_us-gaap_FinanceLeaseRightOfUseAssetAmortization" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SubsequentEventsAbstract_7f606acc-ae76-4e26-9ec2-ae5c811aaa59_terseLabel_en-US" xlink:label="lab_us-gaap_SubsequentEventsAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Subsequent Events [Abstract]</link:label>
    <link:label id="lab_us-gaap_SubsequentEventsAbstract_label_en-US" xlink:label="lab_us-gaap_SubsequentEventsAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Subsequent Events [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventsAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsequentEventsAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SubsequentEventsAbstract" xlink:to="lab_us-gaap_SubsequentEventsAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_VehiclesMember_30918a90-d95c-46ba-87f3-ac71a6b716c1_terseLabel_en-US" xlink:label="lab_us-gaap_VehiclesMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Vehicles</link:label>
    <link:label id="lab_us-gaap_VehiclesMember_label_en-US" xlink:label="lab_us-gaap_VehiclesMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Vehicles [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_VehiclesMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_VehiclesMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_VehiclesMember" xlink:to="lab_us-gaap_VehiclesMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DebtDisclosureTextBlock_bb093ab0-0f04-424c-b336-618aadace5fe_terseLabel_en-US" xlink:label="lab_us-gaap_DebtDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Related Party Notes</link:label>
    <link:label id="lab_us-gaap_DebtDisclosureTextBlock_label_en-US" xlink:label="lab_us-gaap_DebtDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Debt Disclosure [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtDisclosureTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtDisclosureTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DebtDisclosureTextBlock" xlink:to="lab_us-gaap_DebtDisclosureTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_a871bffe-6dea-4a63-a6b4-7863b0238c34_terseLabel_en-US" xlink:label="lab_us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Fair Value Hierarchy and NAV [Domain]</link:label>
    <link:label id="lab_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_label_en-US" xlink:label="lab_us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Fair Value Hierarchy and NAV [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueMeasurementsFairValueHierarchyDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xlink:to="lab_us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_RecoveryOfErrCompDisclosureLineItems_label_en-US" xlink:label="lab_ecd_RecoveryOfErrCompDisclosureLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Recovery of Erroneously Awarded Compensation Disclosure [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_RecoveryOfErrCompDisclosureLineItems" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_RecoveryOfErrCompDisclosureLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_RecoveryOfErrCompDisclosureLineItems" xlink:to="lab_ecd_RecoveryOfErrCompDisclosureLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntityAddressPostalZipCode_a2a3cd91-21b0-4faf-8e88-e4811858c79d_terseLabel_en-US" xlink:label="lab_dei_EntityAddressPostalZipCode" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Entity Address, Postal Zip Code</link:label>
    <link:label id="lab_dei_EntityAddressPostalZipCode_label_en-US" xlink:label="lab_dei_EntityAddressPostalZipCode" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Address, Postal Zip Code</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityAddressPostalZipCode" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityAddressPostalZipCode"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityAddressPostalZipCode" xlink:to="lab_dei_EntityAddressPostalZipCode" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AdvertisingExpense_94c541e0-7550-4a7b-acb6-36642ab7e833_terseLabel_en-US" xlink:label="lab_us-gaap_AdvertisingExpense" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Advertising expense</link:label>
    <link:label id="lab_us-gaap_AdvertisingExpense_label_en-US" xlink:label="lab_us-gaap_AdvertisingExpense" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Advertising Expense</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdvertisingExpense" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AdvertisingExpense"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AdvertisingExpense" xlink:to="lab_us-gaap_AdvertisingExpense" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_DefinedContributionPlanMaximumAnnualEmployerMatchingContributionPerParticipant_174e2c2a-3431-4cbe-a00d-24d756ce0d91_terseLabel_en-US" xlink:label="lab_tgen_DefinedContributionPlanMaximumAnnualEmployerMatchingContributionPerParticipant" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Maximum annual employer matching contribution per participant</link:label>
    <link:label id="lab_tgen_DefinedContributionPlanMaximumAnnualEmployerMatchingContributionPerParticipant_label_en-US" xlink:label="lab_tgen_DefinedContributionPlanMaximumAnnualEmployerMatchingContributionPerParticipant" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Defined Contribution Plan, Maximum Annual Employer Matching Contribution Per Participant</link:label>
    <link:label id="lab_tgen_DefinedContributionPlanMaximumAnnualEmployerMatchingContributionPerParticipant_documentation_en-US" xlink:label="lab_tgen_DefinedContributionPlanMaximumAnnualEmployerMatchingContributionPerParticipant" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Defined Contribution Plan, Maximum Annual Employer Matching Contribution Per Participant</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_DefinedContributionPlanMaximumAnnualEmployerMatchingContributionPerParticipant" xlink:href="tgen-20241231.xsd#tgen_DefinedContributionPlanMaximumAnnualEmployerMatchingContributionPerParticipant"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_DefinedContributionPlanMaximumAnnualEmployerMatchingContributionPerParticipant" xlink:to="lab_tgen_DefinedContributionPlanMaximumAnnualEmployerMatchingContributionPerParticipant" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CashAndCashEquivalentsAtCarryingValue_533c6af5-e069-4450-8519-02179b623382_terseLabel_en-US" xlink:label="lab_us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Cash and cash equivalents</link:label>
    <link:label id="lab_us-gaap_CashAndCashEquivalentsAtCarryingValue_label_en-US" xlink:label="lab_us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Cash and Cash Equivalents, at Carrying Value</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:to="lab_us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsPeriodIncreaseDecrease_95e30893-2e55-459c-a090-9d74fc0d604a_terseLabel_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsPeriodIncreaseDecrease" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Change in intangible assets</link:label>
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsPeriodIncreaseDecrease_label_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsPeriodIncreaseDecrease" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Finite-Lived Intangible Assets, Period Increase (Decrease)</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsPeriodIncreaseDecrease" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsPeriodIncreaseDecrease"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsPeriodIncreaseDecrease" xlink:to="lab_us-gaap_FiniteLivedIntangibleAssetsPeriodIncreaseDecrease" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncreaseDecreaseInOtherCurrentLiabilities_227dbe7a-2b66-469b-b1d3-0154fb8d5625_terseLabel_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInOtherCurrentLiabilities" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Other current liabilities</link:label>
    <link:label id="lab_us-gaap_IncreaseDecreaseInOtherCurrentLiabilities_label_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInOtherCurrentLiabilities" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Increase (Decrease) in Other Current Liabilities</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInOtherCurrentLiabilities" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInOtherCurrentLiabilities"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncreaseDecreaseInOtherCurrentLiabilities" xlink:to="lab_us-gaap_IncreaseDecreaseInOtherCurrentLiabilities" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_ChngInFrValOfOutsdngAndUnvstdEqtyAwrdsGrntdInPrrYrsMember_terseLabel_en-US" xlink:label="lab_ecd_ChngInFrValOfOutsdngAndUnvstdEqtyAwrdsGrntdInPrrYrsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Year-over-Year Change in Fair Value of Equity Awards Granted in Prior Years That are Outstanding and Unvested</link:label>
    <link:label id="lab_ecd_ChngInFrValOfOutsdngAndUnvstdEqtyAwrdsGrntdInPrrYrsMember_label_en-US" xlink:label="lab_ecd_ChngInFrValOfOutsdngAndUnvstdEqtyAwrdsGrntdInPrrYrsMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Year-over-Year Change in Fair Value of Equity Awards Granted in Prior Years That are Outstanding and Unvested [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_ChngInFrValOfOutsdngAndUnvstdEqtyAwrdsGrntdInPrrYrsMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_ChngInFrValOfOutsdngAndUnvstdEqtyAwrdsGrntdInPrrYrsMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_ChngInFrValOfOutsdngAndUnvstdEqtyAwrdsGrntdInPrrYrsMember" xlink:to="lab_ecd_ChngInFrValOfOutsdngAndUnvstdEqtyAwrdsGrntdInPrrYrsMember" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_AuditorName_6047cd23-83d5-4786-8dd4-820c312ad5ed_terseLabel_en-US" xlink:label="lab_dei_AuditorName" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Auditor Name</link:label>
    <link:label id="lab_dei_AuditorName_label_en-US" xlink:label="lab_dei_AuditorName" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Auditor Name</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_AuditorName" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_AuditorName"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_AuditorName" xlink:to="lab_dei_AuditorName" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_AssetAcquisitionContingentConsiderationPaymentPeriod_82778666-1d05-46e0-bb70-2b29f478afa2_terseLabel_en-US" xlink:label="lab_tgen_AssetAcquisitionContingentConsiderationPaymentPeriod" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Contingent consideration, payment period</link:label>
    <link:label id="lab_tgen_AssetAcquisitionContingentConsiderationPaymentPeriod_label_en-US" xlink:label="lab_tgen_AssetAcquisitionContingentConsiderationPaymentPeriod" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Asset Acquisition, Contingent Consideration, Payment Period</link:label>
    <link:label id="lab_tgen_AssetAcquisitionContingentConsiderationPaymentPeriod_documentation_en-US" xlink:label="lab_tgen_AssetAcquisitionContingentConsiderationPaymentPeriod" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Asset Acquisition, Contingent Consideration, Payment Period</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AssetAcquisitionContingentConsiderationPaymentPeriod" xlink:href="tgen-20241231.xsd#tgen_AssetAcquisitionContingentConsiderationPaymentPeriod"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_AssetAcquisitionContingentConsiderationPaymentPeriod" xlink:to="lab_tgen_AssetAcquisitionContingentConsiderationPaymentPeriod" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_YrEndFrValOfEqtyAwrdsGrntdInCvrdYrOutsdngAndUnvstdMember_terseLabel_en-US" xlink:label="lab_ecd_YrEndFrValOfEqtyAwrdsGrntdInCvrdYrOutsdngAndUnvstdMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Year-end Fair Value of Equity Awards Granted in Covered Year that are Outstanding and Unvested</link:label>
    <link:label id="lab_ecd_YrEndFrValOfEqtyAwrdsGrntdInCvrdYrOutsdngAndUnvstdMember_label_en-US" xlink:label="lab_ecd_YrEndFrValOfEqtyAwrdsGrntdInCvrdYrOutsdngAndUnvstdMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Year-end Fair Value of Equity Awards Granted in Covered Year that are Outstanding and Unvested [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_YrEndFrValOfEqtyAwrdsGrntdInCvrdYrOutsdngAndUnvstdMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_YrEndFrValOfEqtyAwrdsGrntdInCvrdYrOutsdngAndUnvstdMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_YrEndFrValOfEqtyAwrdsGrntdInCvrdYrOutsdngAndUnvstdMember" xlink:to="lab_ecd_YrEndFrValOfEqtyAwrdsGrntdInCvrdYrOutsdngAndUnvstdMember" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingAfterYearFive_72d808fc-1625-415f-a7f5-ca155d957fee_terseLabel_en-US" xlink:label="lab_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingAfterYearFive" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Thereafter</link:label>
    <link:label id="lab_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingAfterYearFive_label_en-US" xlink:label="lab_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingAfterYearFive" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Finite-Lived Intangible Assets And Liability, Net, Amortization Expense, Rolling After Year Five</link:label>
    <link:label id="lab_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingAfterYearFive_documentation_en-US" xlink:label="lab_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingAfterYearFive" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Finite-Lived Intangible Assets And Liability, Net, Amortization Expense, Rolling After Year Five</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingAfterYearFive" xlink:href="tgen-20241231.xsd#tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingAfterYearFive"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingAfterYearFive" xlink:to="lab_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingAfterYearFive" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentUsefulLife_ff0a07ff-83da-4f51-8d1b-e120088c1b95_terseLabel_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentUsefulLife" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Property, plant and equipment, estimated useful lives</link:label>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentUsefulLife_edb83789-d7e5-46b1-9d9f-953671039a85_verboseLabel_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentUsefulLife" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Useful life - years</link:label>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentUsefulLife_label_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentUsefulLife" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Property, Plant and Equipment, Useful Life</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentUsefulLife" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentUsefulLife"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentUsefulLife" xlink:to="lab_us-gaap_PropertyPlantAndEquipmentUsefulLife" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward_76b2fb39-a5c4-4ec8-89fe-3a490301a1ff_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Stock Options Outstanding [Roll Forward]</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding [Roll Forward]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FairValueDisclosureItemAmountsDomain_cff3f6a6-e7d9-493a-abbb-efe07e4f45eb_terseLabel_en-US" xlink:label="lab_us-gaap_FairValueDisclosureItemAmountsDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Fair Value Measurement [Domain]</link:label>
    <link:label id="lab_us-gaap_FairValueDisclosureItemAmountsDomain_label_en-US" xlink:label="lab_us-gaap_FairValueDisclosureItemAmountsDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Fair Value Measurement [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueDisclosureItemAmountsDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueDisclosureItemAmountsDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueDisclosureItemAmountsDomain" xlink:to="lab_us-gaap_FairValueDisclosureItemAmountsDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncreaseDecreaseInAccountsPayable_c343bf9e-f35d-40b1-9c23-43d4905fadc0_terseLabel_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInAccountsPayable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Accounts payable</link:label>
    <link:label id="lab_us-gaap_IncreaseDecreaseInAccountsPayable_label_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInAccountsPayable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Increase (Decrease) in Accounts Payable</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInAccountsPayable" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInAccountsPayable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncreaseDecreaseInAccountsPayable" xlink:to="lab_us-gaap_IncreaseDecreaseInAccountsPayable" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AdjToPeoCompFnTextBlock_terseLabel_en-US" xlink:label="lab_ecd_AdjToPeoCompFnTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Adjustment To PEO Compensation, Footnote</link:label>
    <link:label id="lab_ecd_AdjToPeoCompFnTextBlock_label_en-US" xlink:label="lab_ecd_AdjToPeoCompFnTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Adjustment To PEO Compensation, Footnote [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AdjToPeoCompFnTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AdjToPeoCompFnTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AdjToPeoCompFnTextBlock" xlink:to="lab_ecd_AdjToPeoCompFnTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_AssetAcquisitionMaintenanceAgreementsProfitSharingPeriod_fbbab4a3-9f76-41f1-9382-63c880c5c91a_terseLabel_en-US" xlink:label="lab_tgen_AssetAcquisitionMaintenanceAgreementsProfitSharingPeriod" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Profit sharing period for maintenance agreements</link:label>
    <link:label id="lab_tgen_AssetAcquisitionMaintenanceAgreementsProfitSharingPeriod_label_en-US" xlink:label="lab_tgen_AssetAcquisitionMaintenanceAgreementsProfitSharingPeriod" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Asset Acquisition, Maintenance Agreements, Profit Sharing Period</link:label>
    <link:label id="lab_tgen_AssetAcquisitionMaintenanceAgreementsProfitSharingPeriod_documentation_en-US" xlink:label="lab_tgen_AssetAcquisitionMaintenanceAgreementsProfitSharingPeriod" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Asset Acquisition, Maintenance Agreements, Profit Sharing Period</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AssetAcquisitionMaintenanceAgreementsProfitSharingPeriod" xlink:href="tgen-20241231.xsd#tgen_AssetAcquisitionMaintenanceAgreementsProfitSharingPeriod"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_AssetAcquisitionMaintenanceAgreementsProfitSharingPeriod" xlink:to="lab_tgen_AssetAcquisitionMaintenanceAgreementsProfitSharingPeriod" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FinanceLeasePrincipalPayments_623534ac-c245-49ed-adac-4393b22e4058_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_FinanceLeasePrincipalPayments" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Finance lease principal payments</link:label>
    <link:label id="lab_us-gaap_FinanceLeasePrincipalPayments_label_en-US" xlink:label="lab_us-gaap_FinanceLeasePrincipalPayments" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Finance Lease, Principal Payments</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinanceLeasePrincipalPayments" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FinanceLeasePrincipalPayments"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FinanceLeasePrincipalPayments" xlink:to="lab_us-gaap_FinanceLeasePrincipalPayments" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_CompActuallyPaidVsOtherMeasureTextBlock_terseLabel_en-US" xlink:label="lab_ecd_CompActuallyPaidVsOtherMeasureTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Compensation Actually Paid vs. Other Measure</link:label>
    <link:label id="lab_ecd_CompActuallyPaidVsOtherMeasureTextBlock_label_en-US" xlink:label="lab_ecd_CompActuallyPaidVsOtherMeasureTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Compensation Actually Paid vs. Other Measure [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_CompActuallyPaidVsOtherMeasureTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_CompActuallyPaidVsOtherMeasureTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_CompActuallyPaidVsOtherMeasureTextBlock" xlink:to="lab_ecd_CompActuallyPaidVsOtherMeasureTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_VstngDtFrValOfEqtyAwrdsGrntdAndVstdInCvrdYrMember_terseLabel_en-US" xlink:label="lab_ecd_VstngDtFrValOfEqtyAwrdsGrntdAndVstdInCvrdYrMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Vesting Date Fair Value of Equity Awards Granted and Vested in Covered Year</link:label>
    <link:label id="lab_ecd_VstngDtFrValOfEqtyAwrdsGrntdAndVstdInCvrdYrMember_label_en-US" xlink:label="lab_ecd_VstngDtFrValOfEqtyAwrdsGrntdAndVstdInCvrdYrMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Vesting Date Fair Value of Equity Awards Granted and Vested in Covered Year [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_VstngDtFrValOfEqtyAwrdsGrntdAndVstdInCvrdYrMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_VstngDtFrValOfEqtyAwrdsGrntdAndVstdInCvrdYrMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_VstngDtFrValOfEqtyAwrdsGrntdAndVstdInCvrdYrMember" xlink:to="lab_ecd_VstngDtFrValOfEqtyAwrdsGrntdAndVstdInCvrdYrMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_Assets_4c12cd64-52bb-421d-b0d0-d0ee7c938182_totalLabel_en-US" xlink:label="lab_us-gaap_Assets" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">TOTAL ASSETS</link:label>
    <link:label id="lab_us-gaap_Assets_13505934-e70e-4bca-9ec5-99394811b28d_terseLabel_en-US" xlink:label="lab_us-gaap_Assets" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Identifiable assets</link:label>
    <link:label id="lab_us-gaap_Assets_label_en-US" xlink:label="lab_us-gaap_Assets" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Assets</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Assets" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Assets"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_Assets" xlink:to="lab_us-gaap_Assets" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CostOfGoodsAndServicesSold_89b4755d-4a65-4132-b96a-3a1bb8171838_terseLabel_en-US" xlink:label="lab_us-gaap_CostOfGoodsAndServicesSold" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Total cost of sales</link:label>
    <link:label id="lab_us-gaap_CostOfGoodsAndServicesSold_3228cf92-905b-48a1-afe0-76392b1a80f8_verboseLabel_en-US" xlink:label="lab_us-gaap_CostOfGoodsAndServicesSold" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Cost of sales</link:label>
    <link:label id="lab_us-gaap_CostOfGoodsAndServicesSold_label_en-US" xlink:label="lab_us-gaap_CostOfGoodsAndServicesSold" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Cost of Goods and Services Sold</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CostOfGoodsAndServicesSold" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CostOfGoodsAndServicesSold"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CostOfGoodsAndServicesSold" xlink:to="lab_us-gaap_CostOfGoodsAndServicesSold" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansCancelledAndForfeitedExercisePriceRangeUpperRangeLimit_3ff09535-4018-498b-8631-24fee7360f89_terseLabel_en-US" xlink:label="lab_tgen_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansCancelledAndForfeitedExercisePriceRangeUpperRangeLimit" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Canceled and Forfeited, Exercise Price Upper Range Limit (usd per share)</link:label>
    <link:label id="lab_tgen_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansCancelledAndForfeitedExercisePriceRangeUpperRangeLimit_label_en-US" xlink:label="lab_tgen_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansCancelledAndForfeitedExercisePriceRangeUpperRangeLimit" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share Based Compensation Shares Authorized Under Stock Option Plans, Cancelled and Forfeited, Exercise Price Range, Upper Range Limit</link:label>
    <link:label id="lab_tgen_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansCancelledAndForfeitedExercisePriceRangeUpperRangeLimit_documentation_en-US" xlink:label="lab_tgen_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansCancelledAndForfeitedExercisePriceRangeUpperRangeLimit" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Upper range of Exercise price per share of stock options cancelled and forfeited during the period.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansCancelledAndForfeitedExercisePriceRangeUpperRangeLimit" xlink:href="tgen-20241231.xsd#tgen_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansCancelledAndForfeitedExercisePriceRangeUpperRangeLimit"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansCancelledAndForfeitedExercisePriceRangeUpperRangeLimit" xlink:to="lab_tgen_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansCancelledAndForfeitedExercisePriceRangeUpperRangeLimit" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AdvertisingCostsPolicyTextBlock_0699c579-6d9e-4f20-92f5-8777a3ce3d79_terseLabel_en-US" xlink:label="lab_us-gaap_AdvertisingCostsPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Advertising Costs</link:label>
    <link:label id="lab_us-gaap_AdvertisingCostsPolicyTextBlock_label_en-US" xlink:label="lab_us-gaap_AdvertisingCostsPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Advertising Cost [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdvertisingCostsPolicyTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AdvertisingCostsPolicyTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AdvertisingCostsPolicyTextBlock" xlink:to="lab_us-gaap_AdvertisingCostsPolicyTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_7a925ee2-6036-4a94-b508-813b40f46380_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Purchases of property and equipment</link:label>
    <link:label id="lab_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_label_en-US" xlink:label="lab_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Payments to Acquire Property, Plant, and Equipment</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentsToAcquirePropertyPlantAndEquipment"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:to="lab_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_MovementInStandardProductWarrantyAccrualRollForward_a232d129-6245-4aba-b69e-c879c59c8aae_terseLabel_en-US" xlink:label="lab_us-gaap_MovementInStandardProductWarrantyAccrualRollForward" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Schedule of Product Warranty Reserve [Roll Forward]</link:label>
    <link:label id="lab_us-gaap_MovementInStandardProductWarrantyAccrualRollForward_label_en-US" xlink:label="lab_us-gaap_MovementInStandardProductWarrantyAccrualRollForward" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Movement in Standard Product Warranty Accrual [Roll Forward]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MovementInStandardProductWarrantyAccrualRollForward" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_MovementInStandardProductWarrantyAccrualRollForward"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_MovementInStandardProductWarrantyAccrualRollForward" xlink:to="lab_us-gaap_MovementInStandardProductWarrantyAccrualRollForward" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_ForgoneRecoveryDueToViolationOfHomeCountryLawAmt_terseLabel_en-US" xlink:label="lab_ecd_ForgoneRecoveryDueToViolationOfHomeCountryLawAmt" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Forgone Recovery due to Violation of Home Country Law, Amount</link:label>
    <link:label id="lab_ecd_ForgoneRecoveryDueToViolationOfHomeCountryLawAmt_label_en-US" xlink:label="lab_ecd_ForgoneRecoveryDueToViolationOfHomeCountryLawAmt" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Forgone Recovery due to Violation of Home Country Law, Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_ForgoneRecoveryDueToViolationOfHomeCountryLawAmt" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_ForgoneRecoveryDueToViolationOfHomeCountryLawAmt"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_ForgoneRecoveryDueToViolationOfHomeCountryLawAmt" xlink:to="lab_ecd_ForgoneRecoveryDueToViolationOfHomeCountryLawAmt" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CommitmentsAndContingencies_c036c7da-4689-4b8f-b586-a233c4fa5b3b_terseLabel_en-US" xlink:label="lab_us-gaap_CommitmentsAndContingencies" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Commitments and contingencies</link:label>
    <link:label id="lab_us-gaap_CommitmentsAndContingencies_label_en-US" xlink:label="lab_us-gaap_CommitmentsAndContingencies" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Commitments and Contingencies</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommitmentsAndContingencies" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommitmentsAndContingencies"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CommitmentsAndContingencies" xlink:to="lab_us-gaap_CommitmentsAndContingencies" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy_e7f3ecee-f6f8-4821-894c-6b71f98152d1_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Stock-Based Compensation</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Payment Arrangement [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy" xlink:to="lab_us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_AssetAcquisitionReservesCurrent_060aa75a-f5ad-4d6a-b3cd-0b21fcad2867_terseLabel_en-US" xlink:label="lab_tgen_AssetAcquisitionReservesCurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Deferred maintenance reserve</link:label>
    <link:label id="lab_tgen_AssetAcquisitionReservesCurrent_label_en-US" xlink:label="lab_tgen_AssetAcquisitionReservesCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Asset Acquisition, Reserves, Current</link:label>
    <link:label id="lab_tgen_AssetAcquisitionReservesCurrent_documentation_en-US" xlink:label="lab_tgen_AssetAcquisitionReservesCurrent" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Asset Acquisition, Reserves, Current</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AssetAcquisitionReservesCurrent" xlink:href="tgen-20241231.xsd#tgen_AssetAcquisitionReservesCurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_AssetAcquisitionReservesCurrent" xlink:to="lab_tgen_AssetAcquisitionReservesCurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock_4d8c18d7-2fc5-4159-8942-3b8e56300a0f_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Reconciliation of Federal Statutory Income Tax Provision To Company's Actual Provision</link:label>
    <link:label id="lab_us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock_label_en-US" xlink:label="lab_us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Effective Income Tax Rate Reconciliation [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" xlink:to="lab_us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LossContingencyDamagesPaidValue_5123ce66-7e55-4795-997b-21ff0c543b87_terseLabel_en-US" xlink:label="lab_us-gaap_LossContingencyDamagesPaidValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Loss contingency, damages paid</link:label>
    <link:label id="lab_us-gaap_LossContingencyDamagesPaidValue_label_en-US" xlink:label="lab_us-gaap_LossContingencyDamagesPaidValue" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Loss Contingency, Damages Paid, Value</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LossContingencyDamagesPaidValue" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LossContingencyDamagesPaidValue"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LossContingencyDamagesPaidValue" xlink:to="lab_us-gaap_LossContingencyDamagesPaidValue" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_TrdArrTerminationDate_terseLabel_en-US" xlink:label="lab_ecd_TrdArrTerminationDate" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Termination Date</link:label>
    <link:label id="lab_ecd_TrdArrTerminationDate_label_en-US" xlink:label="lab_ecd_TrdArrTerminationDate" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Trading Arrangement Termination Date</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TrdArrTerminationDate" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_TrdArrTerminationDate"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_TrdArrTerminationDate" xlink:to="lab_ecd_TrdArrTerminationDate" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_Security12gTitle_888fe5af-07e2-4d5e-8b79-fcbd63c41565_terseLabel_en-US" xlink:label="lab_dei_Security12gTitle" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Title of 12(g) Security</link:label>
    <link:label id="lab_dei_Security12gTitle_label_en-US" xlink:label="lab_dei_Security12gTitle" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Title of 12(g) Security</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_Security12gTitle" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_Security12gTitle"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_Security12gTitle" xlink:to="lab_dei_Security12gTitle" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_NatureOfOperations_99754e9e-338a-474d-82a8-09eb3d85a7da_terseLabel_en-US" xlink:label="lab_us-gaap_NatureOfOperations" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Nature of business and operations</link:label>
    <link:label id="lab_us-gaap_NatureOfOperations_label_en-US" xlink:label="lab_us-gaap_NatureOfOperations" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Nature of Operations [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NatureOfOperations" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NatureOfOperations"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NatureOfOperations" xlink:to="lab_us-gaap_NatureOfOperations" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfRelatedPartyTransactionsByRelatedPartyTable_ead0ef96-f0d5-4ac4-8389-65660de8d0ab_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfRelatedPartyTransactionsByRelatedPartyTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Related Party Transaction [Table]</link:label>
    <link:label id="lab_us-gaap_ScheduleOfRelatedPartyTransactionsByRelatedPartyTable_label_en-US" xlink:label="lab_us-gaap_ScheduleOfRelatedPartyTransactionsByRelatedPartyTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Related Party Transaction [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfRelatedPartyTransactionsByRelatedPartyTable" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfRelatedPartyTransactionsByRelatedPartyTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfRelatedPartyTransactionsByRelatedPartyTable" xlink:to="lab_us-gaap_ScheduleOfRelatedPartyTransactionsByRelatedPartyTable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_594f5db3-283a-48f7-a7e9-fad296d55aac_terseLabel_en-US" xlink:label="lab_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]</link:label>
    <link:label id="lab_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_label_en-US" xlink:label="lab_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems" xlink:to="lab_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_a1b0a3a7-cf4d-435c-8d45-d2e288c3c9a7_terseLabel_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">2026</link:label>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_label_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Lessee, Operating Lease, Liability, to be Paid, Year Two</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:to="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DebtInstrumentAxis_f5aebe01-4d25-4c6b-a276-7e99392312c9_terseLabel_en-US" xlink:label="lab_us-gaap_DebtInstrumentAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Debt Instrument [Axis]</link:label>
    <link:label id="lab_us-gaap_DebtInstrumentAxis_label_en-US" xlink:label="lab_us-gaap_DebtInstrumentAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Debt Instrument [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtInstrumentAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DebtInstrumentAxis" xlink:to="lab_us-gaap_DebtInstrumentAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_ServicesSegmentMember_0fb596f5-a897-43f7-b7ac-0f87da3c1ad6_terseLabel_en-US" xlink:label="lab_tgen_ServicesSegmentMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Services Segment</link:label>
    <link:label id="lab_tgen_ServicesSegmentMember_label_en-US" xlink:label="lab_tgen_ServicesSegmentMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Services Segment [Member]</link:label>
    <link:label id="lab_tgen_ServicesSegmentMember_documentation_en-US" xlink:label="lab_tgen_ServicesSegmentMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Services Segment</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ServicesSegmentMember" xlink:href="tgen-20241231.xsd#tgen_ServicesSegmentMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_ServicesSegmentMember" xlink:to="lab_tgen_ServicesSegmentMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_NetIncomeLoss_dccbcf0b-935e-4f8a-8024-6b07f7f4eff6_totalLabel_en-US" xlink:label="lab_us-gaap_NetIncomeLoss" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Net loss attributable to Tecogen Inc.</link:label>
    <link:label id="lab_us-gaap_NetIncomeLoss_e9524948-b0a6-4939-bd8e-9d1f4e46de87_terseLabel_en-US" xlink:label="lab_us-gaap_NetIncomeLoss" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Net Income (Loss) Attributable to Parent</link:label>
    <link:label id="lab_us-gaap_NetIncomeLoss_label_en-US" xlink:label="lab_us-gaap_NetIncomeLoss" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Net Income (Loss) Attributable to Parent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetIncomeLoss" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetIncomeLoss"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NetIncomeLoss" xlink:to="lab_us-gaap_NetIncomeLoss" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_TradingArrAxis_terseLabel_en-US" xlink:label="lab_ecd_TradingArrAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Trading Arrangement:</link:label>
    <link:label id="lab_ecd_TradingArrAxis_label_en-US" xlink:label="lab_ecd_TradingArrAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Trading Arrangement [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TradingArrAxis" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_TradingArrAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_TradingArrAxis" xlink:to="lab_ecd_TradingArrAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax_d9bbec54-5c27-4f8f-8a1d-eb7906897156_terseLabel_en-US" xlink:label="lab_us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Revenue</link:label>
    <link:label id="lab_us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax_label_en-US" xlink:label="lab_us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Revenue from Contract with Customer, Including Assessed Tax</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:to="lab_us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_PvpTableTextBlock_terseLabel_en-US" xlink:label="lab_ecd_PvpTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Pay vs Performance Disclosure, Table</link:label>
    <link:label id="lab_ecd_PvpTableTextBlock_label_en-US" xlink:label="lab_ecd_PvpTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Pay vs Performance [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_PvpTableTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_PvpTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_PvpTableTextBlock" xlink:to="lab_ecd_PvpTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_IncreaseDecreaseInPrepaidExpenseAndOtherCurrentAssets_c0c90f4c-0542-47ae-a5b4-2439090833e9_negatedTerseLabel_en-US" xlink:label="lab_tgen_IncreaseDecreaseInPrepaidExpenseAndOtherCurrentAssets" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Prepaid assets and other current assets</link:label>
    <link:label id="lab_tgen_IncreaseDecreaseInPrepaidExpenseAndOtherCurrentAssets_label_en-US" xlink:label="lab_tgen_IncreaseDecreaseInPrepaidExpenseAndOtherCurrentAssets" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Increase (Decrease) in Prepaid Expense and Other Current Assets</link:label>
    <link:label id="lab_tgen_IncreaseDecreaseInPrepaidExpenseAndOtherCurrentAssets_documentation_en-US" xlink:label="lab_tgen_IncreaseDecreaseInPrepaidExpenseAndOtherCurrentAssets" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Increase (Decrease) in Prepaid Expense and Other Current Assets</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_IncreaseDecreaseInPrepaidExpenseAndOtherCurrentAssets" xlink:href="tgen-20241231.xsd#tgen_IncreaseDecreaseInPrepaidExpenseAndOtherCurrentAssets"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_IncreaseDecreaseInPrepaidExpenseAndOtherCurrentAssets" xlink:to="lab_tgen_IncreaseDecreaseInPrepaidExpenseAndOtherCurrentAssets" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_EqtyAwrdsAdjsExclgValRprtdInSummryCompstnTblMember_terseLabel_en-US" xlink:label="lab_ecd_EqtyAwrdsAdjsExclgValRprtdInSummryCompstnTblMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Equity Awards Adjustments, Excluding Value Reported in Compensation Table</link:label>
    <link:label id="lab_ecd_EqtyAwrdsAdjsExclgValRprtdInSummryCompstnTblMember_label_en-US" xlink:label="lab_ecd_EqtyAwrdsAdjsExclgValRprtdInSummryCompstnTblMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Equity Awards Adjustments, Excluding Value Reported in the Compensation Table [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_EqtyAwrdsAdjsExclgValRprtdInSummryCompstnTblMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_EqtyAwrdsAdjsExclgValRprtdInSummryCompstnTblMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_EqtyAwrdsAdjsExclgValRprtdInSummryCompstnTblMember" xlink:to="lab_ecd_EqtyAwrdsAdjsExclgValRprtdInSummryCompstnTblMember" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntityFileNumber_2f17ed05-36f0-44fb-a07a-465ffea17e0b_terseLabel_en-US" xlink:label="lab_dei_EntityFileNumber" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Entity File Number</link:label>
    <link:label id="lab_dei_EntityFileNumber_label_en-US" xlink:label="lab_dei_EntityFileNumber" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity File Number</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityFileNumber" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityFileNumber"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityFileNumber" xlink:to="lab_dei_EntityFileNumber" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_EnergyProductionAgreementsRevenueOfExcessCashFlowsAboveThreshold_f308b071-fd1c-4e39-bf7d-8773e4a0229b_terseLabel_en-US" xlink:label="lab_tgen_EnergyProductionAgreementsRevenueOfExcessCashFlowsAboveThreshold" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Revenue of excess cash flows above threshold</link:label>
    <link:label id="lab_tgen_EnergyProductionAgreementsRevenueOfExcessCashFlowsAboveThreshold_label_en-US" xlink:label="lab_tgen_EnergyProductionAgreementsRevenueOfExcessCashFlowsAboveThreshold" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Energy Production Agreements, Revenue Of Excess Cash Flows Above Threshold</link:label>
    <link:label id="lab_tgen_EnergyProductionAgreementsRevenueOfExcessCashFlowsAboveThreshold_documentation_en-US" xlink:label="lab_tgen_EnergyProductionAgreementsRevenueOfExcessCashFlowsAboveThreshold" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Energy Production Agreements, Revenue Of Excess Cash Flows Above Threshold</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_EnergyProductionAgreementsRevenueOfExcessCashFlowsAboveThreshold" xlink:href="tgen-20241231.xsd#tgen_EnergyProductionAgreementsRevenueOfExcessCashFlowsAboveThreshold"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_EnergyProductionAgreementsRevenueOfExcessCashFlowsAboveThreshold" xlink:to="lab_tgen_EnergyProductionAgreementsRevenueOfExcessCashFlowsAboveThreshold" xlink:type="arc" order="1"/>
    <link:label id="lab_srt_ConsolidatedEntitiesDomain_1b75a974-0b01-4043-96fc-5d0d484121a6_terseLabel_en-US" xlink:label="lab_srt_ConsolidatedEntitiesDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Consolidated Entities [Domain]</link:label>
    <link:label id="lab_srt_ConsolidatedEntitiesDomain_label_en-US" xlink:label="lab_srt_ConsolidatedEntitiesDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Consolidated Entities [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ConsolidatedEntitiesDomain" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ConsolidatedEntitiesDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_ConsolidatedEntitiesDomain" xlink:to="lab_srt_ConsolidatedEntitiesDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_NoncontrollingInterestMember_d60d6b02-50f7-4fe0-bea5-67fc57589cf4_terseLabel_en-US" xlink:label="lab_us-gaap_NoncontrollingInterestMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Noncontrolling Interest</link:label>
    <link:label id="lab_us-gaap_NoncontrollingInterestMember_label_en-US" xlink:label="lab_us-gaap_NoncontrollingInterestMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Noncontrolling Interest [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NoncontrollingInterestMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NoncontrollingInterestMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NoncontrollingInterestMember" xlink:to="lab_us-gaap_NoncontrollingInterestMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncomeStatementAbstract_1dde6961-0e84-4dc5-bc51-556ed23d776c_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeStatementAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Income Statement [Abstract]</link:label>
    <link:label id="lab_us-gaap_IncomeStatementAbstract_label_en-US" xlink:label="lab_us-gaap_IncomeStatementAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Income Statement [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeStatementAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeStatementAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeStatementAbstract" xlink:to="lab_us-gaap_IncomeStatementAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntityAddressAddressLine1_c33030be-350f-4f3c-addc-528c28799fd9_terseLabel_en-US" xlink:label="lab_dei_EntityAddressAddressLine1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Entity Address, Address Line One</link:label>
    <link:label id="lab_dei_EntityAddressAddressLine1_label_en-US" xlink:label="lab_dei_EntityAddressAddressLine1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Address, Address Line One</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityAddressAddressLine1" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityAddressAddressLine1"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityAddressAddressLine1" xlink:to="lab_dei_EntityAddressAddressLine1" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_MaintenanceServiceMember_3454e963-4aeb-44c0-9eb5-739911d1c5c7_terseLabel_en-US" xlink:label="lab_tgen_MaintenanceServiceMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Maintenance Service [Member]</link:label>
    <link:label id="lab_tgen_MaintenanceServiceMember_label_en-US" xlink:label="lab_tgen_MaintenanceServiceMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Maintenance Service [Member]</link:label>
    <link:label id="lab_tgen_MaintenanceServiceMember_documentation_en-US" xlink:label="lab_tgen_MaintenanceServiceMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Maintenance Service [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_MaintenanceServiceMember" xlink:href="tgen-20241231.xsd#tgen_MaintenanceServiceMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_MaintenanceServiceMember" xlink:to="lab_tgen_MaintenanceServiceMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseTermOfContract_58b6f613-9000-42aa-b6d5-78c3d43025e7_terseLabel_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseTermOfContract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Operating lease, term of contract</link:label>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseTermOfContract_label_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseTermOfContract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Lessee, Operating Lease, Term of Contract</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseTermOfContract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseTermOfContract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LesseeOperatingLeaseTermOfContract" xlink:to="lab_us-gaap_LesseeOperatingLeaseTermOfContract" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_ForgoneRecoveryIndName_terseLabel_en-US" xlink:label="lab_ecd_ForgoneRecoveryIndName" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Name</link:label>
    <link:label id="lab_ecd_ForgoneRecoveryIndName_label_en-US" xlink:label="lab_ecd_ForgoneRecoveryIndName" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Forgone Recovery, Individual Name</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_ForgoneRecoveryIndName" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_ForgoneRecoveryIndName"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_ForgoneRecoveryIndName" xlink:to="lab_ecd_ForgoneRecoveryIndName" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1_6295bdd7-7455-4989-8c4f-32161d1be066_terseLabel_en-US" xlink:label="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Exercisable, Aggregate Intrinsic Value</link:label>
    <link:label id="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1_label_en-US" xlink:label="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercisable, Intrinsic Value</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1" xlink:to="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1_36ee2ea4-030d-4260-a761-ffe8cb8ac25f_terseLabel_en-US" xlink:label="lab_us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Weighted-average remaining lease term - operating leases</link:label>
    <link:label id="lab_us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1_label_en-US" xlink:label="lab_us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Operating Lease, Weighted Average Remaining Lease Term</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1" xlink:to="lab_us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DeferredRevenueNoncurrent_adb6e3b9-f829-4cc1-8583-6b40ae6f5615_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredRevenueNoncurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Deferred revenue, net of current portion</link:label>
    <link:label id="lab_us-gaap_DeferredRevenueNoncurrent_label_en-US" xlink:label="lab_us-gaap_DeferredRevenueNoncurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred Revenue, Noncurrent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredRevenueNoncurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredRevenueNoncurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredRevenueNoncurrent" xlink:to="lab_us-gaap_DeferredRevenueNoncurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AwardTmgMnpiCnsdrdFlag_terseLabel_en-US" xlink:label="lab_ecd_AwardTmgMnpiCnsdrdFlag" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Award Timing MNPI Considered</link:label>
    <link:label id="lab_ecd_AwardTmgMnpiCnsdrdFlag_label_en-US" xlink:label="lab_ecd_AwardTmgMnpiCnsdrdFlag" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Award Timing MNPI Considered [Flag]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardTmgMnpiCnsdrdFlag" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AwardTmgMnpiCnsdrdFlag"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AwardTmgMnpiCnsdrdFlag" xlink:to="lab_ecd_AwardTmgMnpiCnsdrdFlag" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_Backlog_7de8c4ad-1a69-4e76-9490-7ef7bf8ecb87_terseLabel_en-US" xlink:label="lab_tgen_Backlog" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Backlog</link:label>
    <link:label id="lab_tgen_Backlog_label_en-US" xlink:label="lab_tgen_Backlog" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Backlog</link:label>
    <link:label id="lab_tgen_Backlog_documentation_en-US" xlink:label="lab_tgen_Backlog" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Backlog</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_Backlog" xlink:href="tgen-20241231.xsd#tgen_Backlog"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_Backlog" xlink:to="lab_tgen_Backlog" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncreaseDecreaseInDeferredRevenue_8e9fba15-51c7-4602-b0bc-c0ee7402f2a7_terseLabel_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInDeferredRevenue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Deferred revenue</link:label>
    <link:label id="lab_us-gaap_IncreaseDecreaseInDeferredRevenue_label_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInDeferredRevenue" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Increase (Decrease) in Deferred Revenue</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInDeferredRevenue" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInDeferredRevenue"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncreaseDecreaseInDeferredRevenue" xlink:to="lab_us-gaap_IncreaseDecreaseInDeferredRevenue" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_DeferredTaxAssetLeases_6460194f-0a74-4d33-afa1-17533ba7016c_terseLabel_en-US" xlink:label="lab_tgen_DeferredTaxAssetLeases" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Leases</link:label>
    <link:label id="lab_tgen_DeferredTaxAssetLeases_label_en-US" xlink:label="lab_tgen_DeferredTaxAssetLeases" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred Tax Asset, Leases</link:label>
    <link:label id="lab_tgen_DeferredTaxAssetLeases_documentation_en-US" xlink:label="lab_tgen_DeferredTaxAssetLeases" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Deferred Tax Asset, Leases</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_DeferredTaxAssetLeases" xlink:href="tgen-20241231.xsd#tgen_DeferredTaxAssetLeases"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_DeferredTaxAssetLeases" xlink:to="lab_tgen_DeferredTaxAssetLeases" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_InventoryDisclosureAbstract_ae41b1fc-dacc-4bd6-9e00-afc0133b1b26_terseLabel_en-US" xlink:label="lab_us-gaap_InventoryDisclosureAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Inventory Disclosure [Abstract]</link:label>
    <link:label id="lab_us-gaap_InventoryDisclosureAbstract_label_en-US" xlink:label="lab_us-gaap_InventoryDisclosureAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Inventory Disclosure [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryDisclosureAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InventoryDisclosureAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_InventoryDisclosureAbstract" xlink:to="lab_us-gaap_InventoryDisclosureAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_OutstandingAggtErrCompAmt_terseLabel_en-US" xlink:label="lab_ecd_OutstandingAggtErrCompAmt" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Outstanding Aggregate Erroneous Compensation Amount</link:label>
    <link:label id="lab_ecd_OutstandingAggtErrCompAmt_label_en-US" xlink:label="lab_ecd_OutstandingAggtErrCompAmt" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Outstanding Aggregate Erroneous Compensation Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_OutstandingAggtErrCompAmt" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_OutstandingAggtErrCompAmt"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_OutstandingAggtErrCompAmt" xlink:to="lab_ecd_OutstandingAggtErrCompAmt" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_PeoActuallyPaidCompAmt_terseLabel_en-US" xlink:label="lab_ecd_PeoActuallyPaidCompAmt" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">PEO Actually Paid Compensation Amount</link:label>
    <link:label id="lab_ecd_PeoActuallyPaidCompAmt_label_en-US" xlink:label="lab_ecd_PeoActuallyPaidCompAmt" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">PEO Actually Paid Compensation Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_PeoActuallyPaidCompAmt" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_PeoActuallyPaidCompAmt"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_PeoActuallyPaidCompAmt" xlink:to="lab_ecd_PeoActuallyPaidCompAmt" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DilutiveSecuritiesAbstract_2411364f-d45d-4107-9130-cb370025f8e2_terseLabel_en-US" xlink:label="lab_us-gaap_DilutiveSecuritiesAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Dilutive Securities, Effect on Basic Earnings Per Share [Abstract]</link:label>
    <link:label id="lab_us-gaap_DilutiveSecuritiesAbstract_label_en-US" xlink:label="lab_us-gaap_DilutiveSecuritiesAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Dilutive Securities, Effect on Basic Earnings Per Share [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DilutiveSecuritiesAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DilutiveSecuritiesAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DilutiveSecuritiesAbstract" xlink:to="lab_us-gaap_DilutiveSecuritiesAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DetailsOfImpairmentOfLongLivedAssetsHeldAndUsedByAssetTextBlock_8236b7a1-74cd-47ee-ad49-52b6131c88a9_terseLabel_en-US" xlink:label="lab_us-gaap_DetailsOfImpairmentOfLongLivedAssetsHeldAndUsedByAssetTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Impairment of Long-Lived Assets</link:label>
    <link:label id="lab_us-gaap_DetailsOfImpairmentOfLongLivedAssetsHeldAndUsedByAssetTextBlock_label_en-US" xlink:label="lab_us-gaap_DetailsOfImpairmentOfLongLivedAssetsHeldAndUsedByAssetTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Details of Impairment of Long-Lived Assets Held and Used by Asset [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DetailsOfImpairmentOfLongLivedAssetsHeldAndUsedByAssetTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DetailsOfImpairmentOfLongLivedAssetsHeldAndUsedByAssetTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DetailsOfImpairmentOfLongLivedAssetsHeldAndUsedByAssetTextBlock" xlink:to="lab_us-gaap_DetailsOfImpairmentOfLongLivedAssetsHeldAndUsedByAssetTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AdjToCompAxis_terseLabel_en-US" xlink:label="lab_ecd_AdjToCompAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Adjustment to Compensation:</link:label>
    <link:label id="lab_ecd_AdjToCompAxis_label_en-US" xlink:label="lab_ecd_AdjToCompAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Adjustment to Compensation [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AdjToCompAxis" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AdjToCompAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AdjToCompAxis" xlink:to="lab_ecd_AdjToCompAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AccountsReceivableMember_df8abfd5-978b-4e90-ba02-5ffe77f4910f_terseLabel_en-US" xlink:label="lab_us-gaap_AccountsReceivableMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Trade accounts receivable</link:label>
    <link:label id="lab_us-gaap_AccountsReceivableMember_label_en-US" xlink:label="lab_us-gaap_AccountsReceivableMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accounts Receivable [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountsReceivableMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountsReceivableMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccountsReceivableMember" xlink:to="lab_us-gaap_AccountsReceivableMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_NetIncomeLossAttributableToNoncontrollingInterest_e658dd65-05b6-4046-81e8-33300b362ec6_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_NetIncomeLossAttributableToNoncontrollingInterest" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Income attributable to the noncontrolling interest</link:label>
    <link:label id="lab_us-gaap_NetIncomeLossAttributableToNoncontrollingInterest_label_en-US" xlink:label="lab_us-gaap_NetIncomeLossAttributableToNoncontrollingInterest" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Net Income (Loss) Attributable to Noncontrolling Interest</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetIncomeLossAttributableToNoncontrollingInterest" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetIncomeLossAttributableToNoncontrollingInterest"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NetIncomeLossAttributableToNoncontrollingInterest" xlink:to="lab_us-gaap_NetIncomeLossAttributableToNoncontrollingInterest" xlink:type="arc" order="1"/>
    <link:label id="lab_srt_LitigationCaseTypeDomain_9b2a5d19-e779-43d8-98b9-4d01f8ede28a_terseLabel_en-US" xlink:label="lab_srt_LitigationCaseTypeDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Litigation Case [Domain]</link:label>
    <link:label id="lab_srt_LitigationCaseTypeDomain_label_en-US" xlink:label="lab_srt_LitigationCaseTypeDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Litigation Case [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_srt_LitigationCaseTypeDomain" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_LitigationCaseTypeDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_LitigationCaseTypeDomain" xlink:to="lab_srt_LitigationCaseTypeDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_PnsnAdjsSvcCstMember_terseLabel_en-US" xlink:label="lab_ecd_PnsnAdjsSvcCstMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Pension Adjustments Service Cost</link:label>
    <link:label id="lab_ecd_PnsnAdjsSvcCstMember_label_en-US" xlink:label="lab_ecd_PnsnAdjsSvcCstMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Pension Adjustments Service Cost [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_PnsnAdjsSvcCstMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_PnsnAdjsSvcCstMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_PnsnAdjsSvcCstMember" xlink:to="lab_ecd_PnsnAdjsSvcCstMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis_e9e1a179-db93-4beb-b0ad-93bb426dee36_terseLabel_en-US" xlink:label="lab_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Related Party [Axis]</link:label>
    <link:label id="lab_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis_label_en-US" xlink:label="lab_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Related and Nonrelated Parties [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RelatedPartyTransactionsByRelatedPartyAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis" xlink:to="lab_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_9d69573b-e15b-4272-9a50-c739f4460698_terseLabel_en-US" xlink:label="lab_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Weighted average shares outstanding - basic (in shares)</link:label>
    <link:label id="lab_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_label_en-US" xlink:label="lab_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Weighted Average Number of Shares Outstanding, Basic</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingBasic"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:to="lab_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_StkPrcOrTsrEstimationMethodTextBlock_terseLabel_en-US" xlink:label="lab_ecd_StkPrcOrTsrEstimationMethodTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Stock Price or TSR Estimation Method</link:label>
    <link:label id="lab_ecd_StkPrcOrTsrEstimationMethodTextBlock_label_en-US" xlink:label="lab_ecd_StkPrcOrTsrEstimationMethodTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Stock Price or TSR Estimation Method [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_StkPrcOrTsrEstimationMethodTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_StkPrcOrTsrEstimationMethodTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_StkPrcOrTsrEstimationMethodTextBlock" xlink:to="lab_ecd_StkPrcOrTsrEstimationMethodTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ProceedsFromSaleOfProductiveAssets_722ff3df-87b4-4eb5-9084-d99efd905c35_terseLabel_en-US" xlink:label="lab_us-gaap_ProceedsFromSaleOfProductiveAssets" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Consideration received</link:label>
    <link:label id="lab_us-gaap_ProceedsFromSaleOfProductiveAssets_label_en-US" xlink:label="lab_us-gaap_ProceedsFromSaleOfProductiveAssets" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Proceeds from Sale of Productive Assets</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProceedsFromSaleOfProductiveAssets" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProceedsFromSaleOfProductiveAssets"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ProceedsFromSaleOfProductiveAssets" xlink:to="lab_us-gaap_ProceedsFromSaleOfProductiveAssets" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_ExercisePricePerShareAbstract_ffa4f8d5-916a-41d0-b2fc-1dcd1815298f_terseLabel_en-US" xlink:label="lab_tgen_ExercisePricePerShareAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Exercise Price Per Share [Abstract]</link:label>
    <link:label id="lab_tgen_ExercisePricePerShareAbstract_label_en-US" xlink:label="lab_tgen_ExercisePricePerShareAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Exercise Price Per Share [Abstract]</link:label>
    <link:label id="lab_tgen_ExercisePricePerShareAbstract_documentation_en-US" xlink:label="lab_tgen_ExercisePricePerShareAbstract" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Exercise Price Per Share [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ExercisePricePerShareAbstract" xlink:href="tgen-20241231.xsd#tgen_ExercisePricePerShareAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_ExercisePricePerShareAbstract" xlink:to="lab_tgen_ExercisePricePerShareAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest_b561092b-b914-4f79-a439-9a2f93c726ef_totalLabel_en-US" xlink:label="lab_us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Equity, Including Portion Attributable to Noncontrolling Interest, Total</link:label>
    <link:label id="lab_us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest_f390ba64-2447-482d-b25e-54e0abc06092_periodStartLabel_en-US" xlink:label="lab_us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xml:lang="en-US">Balance, beginning balance</link:label>
    <link:label id="lab_us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest_2ea352e4-92a7-467e-ab8c-c2ce81236d1f_periodEndLabel_en-US" xlink:label="lab_us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xml:lang="en-US">Balance, ending balance</link:label>
    <link:label id="lab_us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest_label_en-US" xlink:label="lab_us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Equity, Including Portion Attributable to Noncontrolling Interest</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest" xlink:to="lab_us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AwardsCloseToMnpiDiscIndName_terseLabel_en-US" xlink:label="lab_ecd_AwardsCloseToMnpiDiscIndName" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Name</link:label>
    <link:label id="lab_ecd_AwardsCloseToMnpiDiscIndName_label_en-US" xlink:label="lab_ecd_AwardsCloseToMnpiDiscIndName" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Awards Close in Time to MNPI Disclosures, Individual Name</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardsCloseToMnpiDiscIndName" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AwardsCloseToMnpiDiscIndName"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AwardsCloseToMnpiDiscIndName" xlink:to="lab_ecd_AwardsCloseToMnpiDiscIndName" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SalesRevenueNetMember_44d326f6-1497-4e8f-a2e7-074b8d421ddb_terseLabel_en-US" xlink:label="lab_us-gaap_SalesRevenueNetMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Revenues</link:label>
    <link:label id="lab_us-gaap_SalesRevenueNetMember_label_en-US" xlink:label="lab_us-gaap_SalesRevenueNetMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Revenue Benchmark [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SalesRevenueNetMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SalesRevenueNetMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SalesRevenueNetMember" xlink:to="lab_us-gaap_SalesRevenueNetMember" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntityFilerCategory_879c93cd-6afc-45d1-9cc8-cab956dd7dcb_terseLabel_en-US" xlink:label="lab_dei_EntityFilerCategory" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Entity Filer Category</link:label>
    <link:label id="lab_dei_EntityFilerCategory_label_en-US" xlink:label="lab_dei_EntityFilerCategory" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Filer Category</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityFilerCategory" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityFilerCategory"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityFilerCategory" xlink:to="lab_dei_EntityFilerCategory" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_October2023PromissoryNoteMember_20b8453c-6391-4162-9103-f4dd992af94c_terseLabel_en-US" xlink:label="lab_tgen_October2023PromissoryNoteMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">October 2023 Promissory Note</link:label>
    <link:label id="lab_tgen_October2023PromissoryNoteMember_label_en-US" xlink:label="lab_tgen_October2023PromissoryNoteMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">October 2023 Promissory Note [Member]</link:label>
    <link:label id="lab_tgen_October2023PromissoryNoteMember_documentation_en-US" xlink:label="lab_tgen_October2023PromissoryNoteMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">October 2023 Promissory Note</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_October2023PromissoryNoteMember" xlink:href="tgen-20241231.xsd#tgen_October2023PromissoryNoteMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_October2023PromissoryNoteMember" xlink:to="lab_tgen_October2023PromissoryNoteMember" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_ShareBasedPaymentArrangementOptionExercisesInPeriodExercisePricePerShare_907cbc78-bf05-4838-b258-0ec952420973_terseLabel_en-US" xlink:label="lab_tgen_ShareBasedPaymentArrangementOptionExercisesInPeriodExercisePricePerShare" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Exercised, Exercise Price Per Share (usd per share)</link:label>
    <link:label id="lab_tgen_ShareBasedPaymentArrangementOptionExercisesInPeriodExercisePricePerShare_label_en-US" xlink:label="lab_tgen_ShareBasedPaymentArrangementOptionExercisesInPeriodExercisePricePerShare" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Payment Arrangement, Option, Exercises In Period, Exercise Price Per Share</link:label>
    <link:label id="lab_tgen_ShareBasedPaymentArrangementOptionExercisesInPeriodExercisePricePerShare_documentation_en-US" xlink:label="lab_tgen_ShareBasedPaymentArrangementOptionExercisesInPeriodExercisePricePerShare" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Share-Based Payment Arrangement, Option, Exercises In Period, Exercise Price Per Share</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ShareBasedPaymentArrangementOptionExercisesInPeriodExercisePricePerShare" xlink:href="tgen-20241231.xsd#tgen_ShareBasedPaymentArrangementOptionExercisesInPeriodExercisePricePerShare"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_ShareBasedPaymentArrangementOptionExercisesInPeriodExercisePricePerShare" xlink:to="lab_tgen_ShareBasedPaymentArrangementOptionExercisesInPeriodExercisePricePerShare" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RevenueRemainingPerformanceObligation_1d91a0f7-f3e2-4f84-bcbe-d529acaf0f4e_terseLabel_en-US" xlink:label="lab_us-gaap_RevenueRemainingPerformanceObligation" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Remaining performance obligations</link:label>
    <link:label id="lab_us-gaap_RevenueRemainingPerformanceObligation_label_en-US" xlink:label="lab_us-gaap_RevenueRemainingPerformanceObligation" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Revenue, Remaining Performance Obligation, Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueRemainingPerformanceObligation" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueRemainingPerformanceObligation"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RevenueRemainingPerformanceObligation" xlink:to="lab_us-gaap_RevenueRemainingPerformanceObligation" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LossContingenciesLineItems_51b9ff3c-2e9c-409f-af15-1a4e52d13e21_terseLabel_en-US" xlink:label="lab_us-gaap_LossContingenciesLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Loss Contingencies [Line Items]</link:label>
    <link:label id="lab_us-gaap_LossContingenciesLineItems_label_en-US" xlink:label="lab_us-gaap_LossContingenciesLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Loss Contingencies [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LossContingenciesLineItems" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LossContingenciesLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LossContingenciesLineItems" xlink:to="lab_us-gaap_LossContingenciesLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CorporateAndOtherMember_e1b9bd65-cda4-4d5e-9b32-da76a1913fd2_terseLabel_en-US" xlink:label="lab_us-gaap_CorporateAndOtherMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Corporate, other and elimination</link:label>
    <link:label id="lab_us-gaap_CorporateAndOtherMember_label_en-US" xlink:label="lab_us-gaap_CorporateAndOtherMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Corporate Segment and Other Operating Segment [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CorporateAndOtherMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CorporateAndOtherMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CorporateAndOtherMember" xlink:to="lab_us-gaap_CorporateAndOtherMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_GoodwillAcquiredDuringPeriod_0f128c8b-eaf6-4357-b9ea-ca28823cdedf_terseLabel_en-US" xlink:label="lab_us-gaap_GoodwillAcquiredDuringPeriod" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Acquisition</link:label>
    <link:label id="lab_us-gaap_GoodwillAcquiredDuringPeriod_label_en-US" xlink:label="lab_us-gaap_GoodwillAcquiredDuringPeriod" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Goodwill, Acquired During Period</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillAcquiredDuringPeriod" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GoodwillAcquiredDuringPeriod"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_GoodwillAcquiredDuringPeriod" xlink:to="lab_us-gaap_GoodwillAcquiredDuringPeriod" xlink:type="arc" order="1"/>
    <link:label id="lab_srt_RangeMember_77c8efbc-b92f-445a-a5c6-e32568cd2679_terseLabel_en-US" xlink:label="lab_srt_RangeMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Statistical Measurement [Domain]</link:label>
    <link:label id="lab_srt_RangeMember_label_en-US" xlink:label="lab_srt_RangeMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Statistical Measurement [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeMember" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_RangeMember" xlink:to="lab_srt_RangeMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LeaseCostTableTextBlock_9e5950c1-ecb9-4b82-a47a-bfe6e18fa0b3_terseLabel_en-US" xlink:label="lab_us-gaap_LeaseCostTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Supplemental Information Related to Leases</link:label>
    <link:label id="lab_us-gaap_LeaseCostTableTextBlock_label_en-US" xlink:label="lab_us-gaap_LeaseCostTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Lease, Cost [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LeaseCostTableTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LeaseCostTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LeaseCostTableTextBlock" xlink:to="lab_us-gaap_LeaseCostTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ContractWithCustomerAssetNetCurrent_b12eb5b7-d3d1-4e89-ba8f-17d4ff162824_terseLabel_en-US" xlink:label="lab_us-gaap_ContractWithCustomerAssetNetCurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Unbilled revenue</link:label>
    <link:label id="lab_us-gaap_ContractWithCustomerAssetNetCurrent_label_en-US" xlink:label="lab_us-gaap_ContractWithCustomerAssetNetCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Contract with Customer, Asset, after Allowance for Credit Loss, Current</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractWithCustomerAssetNetCurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ContractWithCustomerAssetNetCurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ContractWithCustomerAssetNetCurrent" xlink:to="lab_us-gaap_ContractWithCustomerAssetNetCurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAdditionalDisclosuresAbstract_c5cb50a5-9f04-4918-8126-e9cae0173596_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAdditionalDisclosuresAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Additional Disclosures [Abstract]</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAdditionalDisclosuresAbstract_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAdditionalDisclosuresAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Additional Disclosures [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAdditionalDisclosuresAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAdditionalDisclosuresAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAdditionalDisclosuresAbstract" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAdditionalDisclosuresAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_srt_DirectorMember_3472e85b-f992-4c37-bd7b-12e532b6ebcd_terseLabel_en-US" xlink:label="lab_srt_DirectorMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Director</link:label>
    <link:label id="lab_srt_DirectorMember_label_en-US" xlink:label="lab_srt_DirectorMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Director [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_srt_DirectorMember" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_DirectorMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_DirectorMember" xlink:to="lab_srt_DirectorMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SegmentReportingInformationLineItems_4a61db91-1225-46c0-abc1-f62285e2e625_terseLabel_en-US" xlink:label="lab_us-gaap_SegmentReportingInformationLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Segment Reporting Information [Line Items]</link:label>
    <link:label id="lab_us-gaap_SegmentReportingInformationLineItems_label_en-US" xlink:label="lab_us-gaap_SegmentReportingInformationLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Segment Reporting Information [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SegmentReportingInformationLineItems" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SegmentReportingInformationLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SegmentReportingInformationLineItems" xlink:to="lab_us-gaap_SegmentReportingInformationLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_July2024PromissoryNoteMember_c3f5f164-c82f-4de4-99ba-0b25436939e5_terseLabel_en-US" xlink:label="lab_tgen_July2024PromissoryNoteMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">July 2024 Promissory Note</link:label>
    <link:label id="lab_tgen_July2024PromissoryNoteMember_label_en-US" xlink:label="lab_tgen_July2024PromissoryNoteMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">July 2024 Promissory Note [Member]</link:label>
    <link:label id="lab_tgen_July2024PromissoryNoteMember_documentation_en-US" xlink:label="lab_tgen_July2024PromissoryNoteMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">July 2024 Promissory Note</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_July2024PromissoryNoteMember" xlink:href="tgen-20241231.xsd#tgen_July2024PromissoryNoteMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_July2024PromissoryNoteMember" xlink:to="lab_tgen_July2024PromissoryNoteMember" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AllTradingArrangementsMember_terseLabel_en-US" xlink:label="lab_ecd_AllTradingArrangementsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">All Trading Arrangements</link:label>
    <link:label id="lab_ecd_AllTradingArrangementsMember_label_en-US" xlink:label="lab_ecd_AllTradingArrangementsMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">All Trading Arrangements [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AllTradingArrangementsMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AllTradingArrangementsMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AllTradingArrangementsMember" xlink:to="lab_ecd_AllTradingArrangementsMember" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_AssetAcquisitionContingentConsiderationPercentage_33fb8624-cc4f-4530-b927-f14bffe85b3f_terseLabel_en-US" xlink:label="lab_tgen_AssetAcquisitionContingentConsiderationPercentage" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Contingent consideration, percentage</link:label>
    <link:label id="lab_tgen_AssetAcquisitionContingentConsiderationPercentage_label_en-US" xlink:label="lab_tgen_AssetAcquisitionContingentConsiderationPercentage" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Asset Acquisition, Contingent Consideration, Percentage</link:label>
    <link:label id="lab_tgen_AssetAcquisitionContingentConsiderationPercentage_documentation_en-US" xlink:label="lab_tgen_AssetAcquisitionContingentConsiderationPercentage" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Asset Acquisition, Contingent Consideration, Percentage</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AssetAcquisitionContingentConsiderationPercentage" xlink:href="tgen-20241231.xsd#tgen_AssetAcquisitionContingentConsiderationPercentage"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_AssetAcquisitionContingentConsiderationPercentage" xlink:to="lab_tgen_AssetAcquisitionContingentConsiderationPercentage" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_NumberOfAssetsAcquired_1e86129e-6437-417e-b21a-169043df8611_terseLabel_en-US" xlink:label="lab_tgen_NumberOfAssetsAcquired" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Assets acquired</link:label>
    <link:label id="lab_tgen_NumberOfAssetsAcquired_label_en-US" xlink:label="lab_tgen_NumberOfAssetsAcquired" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Number of Assets Acquired</link:label>
    <link:label id="lab_tgen_NumberOfAssetsAcquired_documentation_en-US" xlink:label="lab_tgen_NumberOfAssetsAcquired" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Number of Assets Acquired</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_NumberOfAssetsAcquired" xlink:href="tgen-20241231.xsd#tgen_NumberOfAssetsAcquired"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_NumberOfAssetsAcquired" xlink:to="lab_tgen_NumberOfAssetsAcquired" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_CompActuallyPaidVsNetIncomeTextBlock_terseLabel_en-US" xlink:label="lab_ecd_CompActuallyPaidVsNetIncomeTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Compensation Actually Paid vs. Net Income</link:label>
    <link:label id="lab_ecd_CompActuallyPaidVsNetIncomeTextBlock_label_en-US" xlink:label="lab_ecd_CompActuallyPaidVsNetIncomeTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Compensation Actually Paid vs. Net Income [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_CompActuallyPaidVsNetIncomeTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_CompActuallyPaidVsNetIncomeTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_CompActuallyPaidVsNetIncomeTextBlock" xlink:to="lab_ecd_CompActuallyPaidVsNetIncomeTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock_1644505f-1c6a-4fad-be81-a4a3fd1fd12c_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Schedule of Income (Loss) Per Common Share, Basic and Diluted</link:label>
    <link:label id="lab_us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock_label_en-US" xlink:label="lab_us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Earnings Per Share, Basic and Diluted [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" xlink:to="lab_us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1_e5b056c1-825c-449c-b992-dbb339279b3d_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Award vesting period</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Award Vesting Period</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_Rule10b51ArrAdoptedFlag_terseLabel_en-US" xlink:label="lab_ecd_Rule10b51ArrAdoptedFlag" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Rule 10b5-1 Arrangement Adopted</link:label>
    <link:label id="lab_ecd_Rule10b51ArrAdoptedFlag_label_en-US" xlink:label="lab_ecd_Rule10b51ArrAdoptedFlag" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Rule 10b5-1 Arrangement Adopted [Flag]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_Rule10b51ArrAdoptedFlag" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_Rule10b51ArrAdoptedFlag"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_Rule10b51ArrAdoptedFlag" xlink:to="lab_ecd_Rule10b51ArrAdoptedFlag" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AwardsCloseToMnpiDiscTable_terseLabel_en-US" xlink:label="lab_ecd_AwardsCloseToMnpiDiscTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Awards Close in Time to MNPI Disclosures</link:label>
    <link:label id="lab_ecd_AwardsCloseToMnpiDiscTable_label_en-US" xlink:label="lab_ecd_AwardsCloseToMnpiDiscTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Awards Close in Time to MNPI Disclosures [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardsCloseToMnpiDiscTable" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AwardsCloseToMnpiDiscTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AwardsCloseToMnpiDiscTable" xlink:to="lab_ecd_AwardsCloseToMnpiDiscTable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_GoodwillPurchaseAccountingAdjustments_64180358-a92e-4289-8e31-d23bca4b756c_terseLabel_en-US" xlink:label="lab_us-gaap_GoodwillPurchaseAccountingAdjustments" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Acquisition - adjustment</link:label>
    <link:label id="lab_us-gaap_GoodwillPurchaseAccountingAdjustments_label_en-US" xlink:label="lab_us-gaap_GoodwillPurchaseAccountingAdjustments" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Goodwill, Measurement Period Adjustment</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillPurchaseAccountingAdjustments" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GoodwillPurchaseAccountingAdjustments"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_GoodwillPurchaseAccountingAdjustments" xlink:to="lab_us-gaap_GoodwillPurchaseAccountingAdjustments" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_PayVsPerformanceDisclosureLineItems_label_en-US" xlink:label="lab_ecd_PayVsPerformanceDisclosureLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Pay vs Performance Disclosure [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_PayVsPerformanceDisclosureLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="lab_ecd_PayVsPerformanceDisclosureLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_PeerGroupTotalShareholderRtnAmt_terseLabel_en-US" xlink:label="lab_ecd_PeerGroupTotalShareholderRtnAmt" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Peer Group Total Shareholder Return Amount</link:label>
    <link:label id="lab_ecd_PeerGroupTotalShareholderRtnAmt_label_en-US" xlink:label="lab_ecd_PeerGroupTotalShareholderRtnAmt" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Peer Group Total Shareholder Return Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_PeerGroupTotalShareholderRtnAmt" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_PeerGroupTotalShareholderRtnAmt"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_PeerGroupTotalShareholderRtnAmt" xlink:to="lab_ecd_PeerGroupTotalShareholderRtnAmt" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_c7fd2d4b-3041-4d42-a552-3ff0aed893b3_terseLabel_en-US" xlink:label="lab_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]</link:label>
    <link:label id="lab_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_label_en-US" xlink:label="lab_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis" xlink:to="lab_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_AmericanDgEnergyMember_baa510fb-a753-40c2-963f-1293cf200bc3_terseLabel_en-US" xlink:label="lab_tgen_AmericanDgEnergyMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">American DG Energy</link:label>
    <link:label id="lab_tgen_AmericanDgEnergyMember_label_en-US" xlink:label="lab_tgen_AmericanDgEnergyMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">American DG Energy [Member]</link:label>
    <link:label id="lab_tgen_AmericanDgEnergyMember_documentation_en-US" xlink:label="lab_tgen_AmericanDgEnergyMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">American DG Energy [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AmericanDgEnergyMember" xlink:href="tgen-20241231.xsd#tgen_AmericanDgEnergyMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_AmericanDgEnergyMember" xlink:to="lab_tgen_AmericanDgEnergyMember" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_OtherPerfMeasureAmt_terseLabel_en-US" xlink:label="lab_ecd_OtherPerfMeasureAmt" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Other Performance Measure, Amount</link:label>
    <link:label id="lab_ecd_OtherPerfMeasureAmt_label_en-US" xlink:label="lab_ecd_OtherPerfMeasureAmt" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Other Performance Measure, Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_OtherPerfMeasureAmt" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_OtherPerfMeasureAmt"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_OtherPerfMeasureAmt" xlink:to="lab_ecd_OtherPerfMeasureAmt" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_GoodwillLineItems_35f7e7de-d089-470a-b61a-b18816cace3f_terseLabel_en-US" xlink:label="lab_us-gaap_GoodwillLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Goodwill [Line Items]</link:label>
    <link:label id="lab_us-gaap_GoodwillLineItems_label_en-US" xlink:label="lab_us-gaap_GoodwillLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Goodwill [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillLineItems" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GoodwillLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_GoodwillLineItems" xlink:to="lab_us-gaap_GoodwillLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LesseeOperatingLeasesTextBlock_76974526-cbc3-488c-b68c-d860d2ef7914_terseLabel_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeasesTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Leases</link:label>
    <link:label id="lab_us-gaap_LesseeOperatingLeasesTextBlock_label_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeasesTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Lessee, Operating Leases [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeasesTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeasesTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LesseeOperatingLeasesTextBlock" xlink:to="lab_us-gaap_LesseeOperatingLeasesTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CommonStockSharesOutstanding_ecc9f160-d8fb-4899-b4d1-aec844eff19c_terseLabel_en-US" xlink:label="lab_us-gaap_CommonStockSharesOutstanding" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Common Stock, Shares, Outstanding</link:label>
    <link:label id="lab_us-gaap_CommonStockSharesOutstanding_a2379a27-543d-4a5f-8a64-af289c827556_verboseLabel_en-US" xlink:label="lab_us-gaap_CommonStockSharesOutstanding" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Common stock, shares outstanding</link:label>
    <link:label id="lab_us-gaap_CommonStockSharesOutstanding_label_en-US" xlink:label="lab_us-gaap_CommonStockSharesOutstanding" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Common Stock, Shares, Outstanding</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockSharesOutstanding" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockSharesOutstanding"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CommonStockSharesOutstanding" xlink:to="lab_us-gaap_CommonStockSharesOutstanding" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfAcquiredFiniteLivedIntangibleAssetByMajorClassTable_64eeff0d-2977-46f1-8525-97a9223cf3e6_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfAcquiredFiniteLivedIntangibleAssetByMajorClassTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Schedule of Acquired Finite-Lived Intangible Asset by Major Class [Table]</link:label>
    <link:label id="lab_us-gaap_ScheduleOfAcquiredFiniteLivedIntangibleAssetByMajorClassTable_label_en-US" xlink:label="lab_us-gaap_ScheduleOfAcquiredFiniteLivedIntangibleAssetByMajorClassTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Acquired Finite-Lived Intangible Asset by Major Class [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfAcquiredFiniteLivedIntangibleAssetByMajorClassTable" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfAcquiredFiniteLivedIntangibleAssetByMajorClassTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfAcquiredFiniteLivedIntangibleAssetByMajorClassTable" xlink:to="lab_us-gaap_ScheduleOfAcquiredFiniteLivedIntangibleAssetByMajorClassTable" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_DocumentsIncorporatedByReferenceTextBlock_4a23fe8b-803d-4b43-b40b-6c5f45875ff4_terseLabel_en-US" xlink:label="lab_dei_DocumentsIncorporatedByReferenceTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Documents Incorporated by Reference</link:label>
    <link:label id="lab_dei_DocumentsIncorporatedByReferenceTextBlock_label_en-US" xlink:label="lab_dei_DocumentsIncorporatedByReferenceTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Documents Incorporated by Reference [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_DocumentsIncorporatedByReferenceTextBlock" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentsIncorporatedByReferenceTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_DocumentsIncorporatedByReferenceTextBlock" xlink:to="lab_dei_DocumentsIncorporatedByReferenceTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OperatingLeaseCost_e9707e17-9617-4885-8b76-fa3b00401ce8_terseLabel_en-US" xlink:label="lab_us-gaap_OperatingLeaseCost" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Lease expense</link:label>
    <link:label id="lab_us-gaap_OperatingLeaseCost_label_en-US" xlink:label="lab_us-gaap_OperatingLeaseCost" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Operating Lease, Cost</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseCost" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseCost"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OperatingLeaseCost" xlink:to="lab_us-gaap_OperatingLeaseCost" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextRollingTwelveMonths_8242ea51-13a8-460f-9b16-85aa377ac731_terseLabel_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextRollingTwelveMonths" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">2025</link:label>
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextRollingTwelveMonths_label_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextRollingTwelveMonths" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Finite-Lived Intangible Assets, Amortization Expense, Next Rolling 12 Months</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextRollingTwelveMonths" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextRollingTwelveMonths"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextRollingTwelveMonths" xlink:to="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextRollingTwelveMonths" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant_48444291-4f68-41bd-837a-6f537f6e27f5_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Number of shares remaining available for future issuance</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Number of Shares Available for Grant</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OperatingLeaseLiabilityNoncurrent_25c5b63e-9b70-4b70-b866-a91fb782629d_terseLabel_en-US" xlink:label="lab_us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Operating lease liability, long-term</link:label>
    <link:label id="lab_us-gaap_OperatingLeaseLiabilityNoncurrent_label_en-US" xlink:label="lab_us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Operating Lease, Liability, Noncurrent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:to="lab_us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_AssetsAndLiabilitiesLesseeTableTextBlock_208c4028-c106-4be5-9666-bc94351a2803_terseLabel_en-US" xlink:label="lab_tgen_AssetsAndLiabilitiesLesseeTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Supplemental Balance Sheet Information</link:label>
    <link:label id="lab_tgen_AssetsAndLiabilitiesLesseeTableTextBlock_label_en-US" xlink:label="lab_tgen_AssetsAndLiabilitiesLesseeTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Assets and Liabilities, Lessee [Table Text Block]</link:label>
    <link:label id="lab_tgen_AssetsAndLiabilitiesLesseeTableTextBlock_documentation_en-US" xlink:label="lab_tgen_AssetsAndLiabilitiesLesseeTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Assets and Liabilities, Lessee</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AssetsAndLiabilitiesLesseeTableTextBlock" xlink:href="tgen-20241231.xsd#tgen_AssetsAndLiabilitiesLesseeTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_AssetsAndLiabilitiesLesseeTableTextBlock" xlink:to="lab_tgen_AssetsAndLiabilitiesLesseeTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntityTaxIdentificationNumber_17910c03-ce56-41af-8038-5a130605d9bd_terseLabel_en-US" xlink:label="lab_dei_EntityTaxIdentificationNumber" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Entity Tax Identification Number</link:label>
    <link:label id="lab_dei_EntityTaxIdentificationNumber_label_en-US" xlink:label="lab_dei_EntityTaxIdentificationNumber" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Tax Identification Number</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityTaxIdentificationNumber" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityTaxIdentificationNumber"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityTaxIdentificationNumber" xlink:to="lab_dei_EntityTaxIdentificationNumber" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_6d77c213-ed26-44cb-bdff-6fed50a376b1_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Intangible Asset, Finite-Lived [Table]</link:label>
    <link:label id="lab_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_label_en-US" xlink:label="lab_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Intangible Asset, Finite-Lived [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:to="lab_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_MeasurementInputWACCMember_c7959025-536f-4815-897d-9809c774f8e4_terseLabel_en-US" xlink:label="lab_tgen_MeasurementInputWACCMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Measurement Input, WACC</link:label>
    <link:label id="lab_tgen_MeasurementInputWACCMember_label_en-US" xlink:label="lab_tgen_MeasurementInputWACCMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Measurement Input, WACC [Member]</link:label>
    <link:label id="lab_tgen_MeasurementInputWACCMember_documentation_en-US" xlink:label="lab_tgen_MeasurementInputWACCMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Measurement Input, WACC</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_MeasurementInputWACCMember" xlink:href="tgen-20241231.xsd#tgen_MeasurementInputWACCMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_MeasurementInputWACCMember" xlink:to="lab_tgen_MeasurementInputWACCMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PatentsMember_f80275e7-575b-43a0-8751-9ecdf664cd10_terseLabel_en-US" xlink:label="lab_us-gaap_PatentsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Patents</link:label>
    <link:label id="lab_us-gaap_PatentsMember_label_en-US" xlink:label="lab_us-gaap_PatentsMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Patents [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PatentsMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PatentsMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PatentsMember" xlink:to="lab_us-gaap_PatentsMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IntersegmentEliminationMember_ff4fe77d-f2eb-4832-baba-97b505a08816_terseLabel_en-US" xlink:label="lab_us-gaap_IntersegmentEliminationMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Intersegment Eliminations</link:label>
    <link:label id="lab_us-gaap_IntersegmentEliminationMember_label_en-US" xlink:label="lab_us-gaap_IntersegmentEliminationMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Intersegment Eliminations [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IntersegmentEliminationMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IntersegmentEliminationMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IntersegmentEliminationMember" xlink:to="lab_us-gaap_IntersegmentEliminationMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PlanNameAxis_83f77b8a-114a-4851-832b-ec6359ba269c_terseLabel_en-US" xlink:label="lab_us-gaap_PlanNameAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Plan Name [Axis]</link:label>
    <link:label id="lab_us-gaap_PlanNameAxis_label_en-US" xlink:label="lab_us-gaap_PlanNameAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Plan Name [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PlanNameAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PlanNameAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PlanNameAxis" xlink:to="lab_us-gaap_PlanNameAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FinanceLeaseLiabilityPaymentsDueAfterYearFive_25ce4894-d7bf-44b1-ac39-709cbbfe884e_terseLabel_en-US" xlink:label="lab_us-gaap_FinanceLeaseLiabilityPaymentsDueAfterYearFive" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Thereafter</link:label>
    <link:label id="lab_us-gaap_FinanceLeaseLiabilityPaymentsDueAfterYearFive_label_en-US" xlink:label="lab_us-gaap_FinanceLeaseLiabilityPaymentsDueAfterYearFive" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Finance Lease, Liability, to be Paid, after Year Five</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinanceLeaseLiabilityPaymentsDueAfterYearFive" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FinanceLeaseLiabilityPaymentsDueAfterYearFive"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FinanceLeaseLiabilityPaymentsDueAfterYearFive" xlink:to="lab_us-gaap_FinanceLeaseLiabilityPaymentsDueAfterYearFive" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_ShareBasedCompensationArrangementbyShareBasedPaymentAwardHistoricalForfeitureRate_1bae2fa4-f822-4de9-96b8-3b5239b13416_terseLabel_en-US" xlink:label="lab_tgen_ShareBasedCompensationArrangementbyShareBasedPaymentAwardHistoricalForfeitureRate" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Historical forfeiture rate (percent)</link:label>
    <link:label id="lab_tgen_ShareBasedCompensationArrangementbyShareBasedPaymentAwardHistoricalForfeitureRate_label_en-US" xlink:label="lab_tgen_ShareBasedCompensationArrangementbyShareBasedPaymentAwardHistoricalForfeitureRate" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share Based Compensation Arrangement by Share Based Payment Award, Historical Forfeiture Rate</link:label>
    <link:label id="lab_tgen_ShareBasedCompensationArrangementbyShareBasedPaymentAwardHistoricalForfeitureRate_documentation_en-US" xlink:label="lab_tgen_ShareBasedCompensationArrangementbyShareBasedPaymentAwardHistoricalForfeitureRate" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Share Based Compensation Arrangement by Share Based Payment Award, Historical Forfeiture Rate</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ShareBasedCompensationArrangementbyShareBasedPaymentAwardHistoricalForfeitureRate" xlink:href="tgen-20241231.xsd#tgen_ShareBasedCompensationArrangementbyShareBasedPaymentAwardHistoricalForfeitureRate"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_ShareBasedCompensationArrangementbyShareBasedPaymentAwardHistoricalForfeitureRate" xlink:to="lab_tgen_ShareBasedCompensationArrangementbyShareBasedPaymentAwardHistoricalForfeitureRate" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LossContingencyDamagesAwardedValue_1afaacb2-5860-401e-970f-9936f2255f01_terseLabel_en-US" xlink:label="lab_us-gaap_LossContingencyDamagesAwardedValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Loss contingency, damages awarded</link:label>
    <link:label id="lab_us-gaap_LossContingencyDamagesAwardedValue_label_en-US" xlink:label="lab_us-gaap_LossContingencyDamagesAwardedValue" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Loss Contingency, Damages Awarded, Value</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LossContingencyDamagesAwardedValue" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LossContingencyDamagesAwardedValue"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LossContingencyDamagesAwardedValue" xlink:to="lab_us-gaap_LossContingencyDamagesAwardedValue" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_AssetAcquisitionAssetsAcquiredAndLiabilitiesAssumedNet_ec6e90c2-cac7-4e92-a649-accb7fc456a5_totalLabel_en-US" xlink:label="lab_tgen_AssetAcquisitionAssetsAcquiredAndLiabilitiesAssumedNet" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Net identifiable assets acquired</link:label>
    <link:label id="lab_tgen_AssetAcquisitionAssetsAcquiredAndLiabilitiesAssumedNet_label_en-US" xlink:label="lab_tgen_AssetAcquisitionAssetsAcquiredAndLiabilitiesAssumedNet" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Asset Acquisition, Assets Acquired and Liabilities Assumed, Net</link:label>
    <link:label id="lab_tgen_AssetAcquisitionAssetsAcquiredAndLiabilitiesAssumedNet_documentation_en-US" xlink:label="lab_tgen_AssetAcquisitionAssetsAcquiredAndLiabilitiesAssumedNet" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Asset Acquisition, Assets Acquired and Liabilities Assumed, Net</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AssetAcquisitionAssetsAcquiredAndLiabilitiesAssumedNet" xlink:href="tgen-20241231.xsd#tgen_AssetAcquisitionAssetsAcquiredAndLiabilitiesAssumedNet"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_AssetAcquisitionAssetsAcquiredAndLiabilitiesAssumedNet" xlink:to="lab_tgen_AssetAcquisitionAssetsAcquiredAndLiabilitiesAssumedNet" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_StatementEquityComponentsAxis_95ac6031-55fc-438f-9113-b905eaf86feb_terseLabel_en-US" xlink:label="lab_us-gaap_StatementEquityComponentsAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Equity Components [Axis]</link:label>
    <link:label id="lab_us-gaap_StatementEquityComponentsAxis_label_en-US" xlink:label="lab_us-gaap_StatementEquityComponentsAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Equity Components [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementEquityComponentsAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementEquityComponentsAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StatementEquityComponentsAxis" xlink:to="lab_us-gaap_StatementEquityComponentsAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FinanceLeaseLiabilityPaymentsDue_43529ec5-bc5f-4977-bfad-5dfc2fee56d1_totalLabel_en-US" xlink:label="lab_us-gaap_FinanceLeaseLiabilityPaymentsDue" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Total lease payments</link:label>
    <link:label id="lab_us-gaap_FinanceLeaseLiabilityPaymentsDue_label_en-US" xlink:label="lab_us-gaap_FinanceLeaseLiabilityPaymentsDue" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Finance Lease, Liability, to be Paid</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinanceLeaseLiabilityPaymentsDue" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FinanceLeaseLiabilityPaymentsDue"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FinanceLeaseLiabilityPaymentsDue" xlink:to="lab_us-gaap_FinanceLeaseLiabilityPaymentsDue" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ResearchAndDevelopmentExpensePolicy_b5427e63-6823-4a2c-abb5-b563271a7c7d_terseLabel_en-US" xlink:label="lab_us-gaap_ResearchAndDevelopmentExpensePolicy" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Research and Development Costs</link:label>
    <link:label id="lab_us-gaap_ResearchAndDevelopmentExpensePolicy_label_en-US" xlink:label="lab_us-gaap_ResearchAndDevelopmentExpensePolicy" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Research and Development Expense, Policy [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ResearchAndDevelopmentExpensePolicy" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ResearchAndDevelopmentExpensePolicy"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ResearchAndDevelopmentExpensePolicy" xlink:to="lab_us-gaap_ResearchAndDevelopmentExpensePolicy" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AvailableForSaleSecuritiesDebtSecurities_3e6b4819-0936-47aa-a88e-e99cf3265f37_terseLabel_en-US" xlink:label="lab_us-gaap_AvailableForSaleSecuritiesDebtSecurities" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Available-for-sale equity securities</link:label>
    <link:label id="lab_us-gaap_AvailableForSaleSecuritiesDebtSecurities_label_en-US" xlink:label="lab_us-gaap_AvailableForSaleSecuritiesDebtSecurities" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Debt Securities, Available-for-Sale</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesDebtSecurities" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AvailableForSaleSecuritiesDebtSecurities"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AvailableForSaleSecuritiesDebtSecurities" xlink:to="lab_us-gaap_AvailableForSaleSecuritiesDebtSecurities" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_TradeAndOtherAccountsReceivablePolicy_ab8e09eb-da81-4f31-a99d-31924b09fca4_terseLabel_en-US" xlink:label="lab_us-gaap_TradeAndOtherAccountsReceivablePolicy" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Accounts Receivable</link:label>
    <link:label id="lab_us-gaap_TradeAndOtherAccountsReceivablePolicy_label_en-US" xlink:label="lab_us-gaap_TradeAndOtherAccountsReceivablePolicy" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accounts Receivable [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TradeAndOtherAccountsReceivablePolicy" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TradeAndOtherAccountsReceivablePolicy"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_TradeAndOtherAccountsReceivablePolicy" xlink:to="lab_us-gaap_TradeAndOtherAccountsReceivablePolicy" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_ChangeInControlSeveranceBenefitPlanNoticePeriodForCancellation_0685c9c5-dabe-46fe-b1a8-6d5776767419_terseLabel_en-US" xlink:label="lab_tgen_ChangeInControlSeveranceBenefitPlanNoticePeriodForCancellation" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Change in Control Severance Benefit Plan, notice period for cancellation</link:label>
    <link:label id="lab_tgen_ChangeInControlSeveranceBenefitPlanNoticePeriodForCancellation_label_en-US" xlink:label="lab_tgen_ChangeInControlSeveranceBenefitPlanNoticePeriodForCancellation" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Change in Control Severance Benefit Plan, Notice Period for Cancellation</link:label>
    <link:label id="lab_tgen_ChangeInControlSeveranceBenefitPlanNoticePeriodForCancellation_documentation_en-US" xlink:label="lab_tgen_ChangeInControlSeveranceBenefitPlanNoticePeriodForCancellation" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Change in Control Severance Benefit Plan, Notice Period for Cancellation</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ChangeInControlSeveranceBenefitPlanNoticePeriodForCancellation" xlink:href="tgen-20241231.xsd#tgen_ChangeInControlSeveranceBenefitPlanNoticePeriodForCancellation"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_ChangeInControlSeveranceBenefitPlanNoticePeriodForCancellation" xlink:to="lab_tgen_ChangeInControlSeveranceBenefitPlanNoticePeriodForCancellation" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss_9856614e-7770-4a5b-a402-e711fdcea4d8_terseLabel_en-US" xlink:label="lab_us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Net income (loss)</link:label>
    <link:label id="lab_us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss_label_en-US" xlink:label="lab_us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Business Acquisition, Pro Forma Net Income (Loss)</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss" xlink:to="lab_us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_BusinessAcquisitionAcquireeDomain_0eaea67d-c19f-4ee8-b6de-8fec70da9fd1_terseLabel_en-US" xlink:label="lab_us-gaap_BusinessAcquisitionAcquireeDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Business Acquisition, Acquiree [Domain]</link:label>
    <link:label id="lab_us-gaap_BusinessAcquisitionAcquireeDomain_label_en-US" xlink:label="lab_us-gaap_BusinessAcquisitionAcquireeDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Business Acquisition, Acquiree [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionAcquireeDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionAcquireeDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="lab_us-gaap_BusinessAcquisitionAcquireeDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue_4470d66d-df35-4ff9-93ca-eb0dbf2eb312_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Outstanding, Aggregate Intrinsic Value</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Intrinsic Value</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_AssetAcquisitionConsiderationTransferredContingentConsiderationCurrent_95e130a6-8870-46bc-a5a8-25f780a00a57_terseLabel_en-US" xlink:label="lab_tgen_AssetAcquisitionConsiderationTransferredContingentConsiderationCurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Contingent consideration</link:label>
    <link:label id="lab_tgen_AssetAcquisitionConsiderationTransferredContingentConsiderationCurrent_label_en-US" xlink:label="lab_tgen_AssetAcquisitionConsiderationTransferredContingentConsiderationCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Asset Acquisition, Consideration Transferred, Contingent Consideration, Current</link:label>
    <link:label id="lab_tgen_AssetAcquisitionConsiderationTransferredContingentConsiderationCurrent_documentation_en-US" xlink:label="lab_tgen_AssetAcquisitionConsiderationTransferredContingentConsiderationCurrent" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Asset Acquisition, Consideration Transferred, Contingent Consideration, Current</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AssetAcquisitionConsiderationTransferredContingentConsiderationCurrent" xlink:href="tgen-20241231.xsd#tgen_AssetAcquisitionConsiderationTransferredContingentConsiderationCurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_AssetAcquisitionConsiderationTransferredContingentConsiderationCurrent" xlink:to="lab_tgen_AssetAcquisitionConsiderationTransferredContingentConsiderationCurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DevelopedTechnologyRightsMember_3c6ed581-d800-4c9a-a5ba-0f79948d146d_terseLabel_en-US" xlink:label="lab_us-gaap_DevelopedTechnologyRightsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Developed Technology</link:label>
    <link:label id="lab_us-gaap_DevelopedTechnologyRightsMember_label_en-US" xlink:label="lab_us-gaap_DevelopedTechnologyRightsMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Developed Technology Rights [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DevelopedTechnologyRightsMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DevelopedTechnologyRightsMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DevelopedTechnologyRightsMember" xlink:to="lab_us-gaap_DevelopedTechnologyRightsMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive_6b318d99-6a05-48a3-8069-ae53b9eedeec_terseLabel_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">2029</link:label>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive_label_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Lessee, Operating Lease, Liability, to be Paid, Year Five</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:to="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_EqtyAwrdsInSummryCompstnTblForAplblYrMember_terseLabel_en-US" xlink:label="lab_ecd_EqtyAwrdsInSummryCompstnTblForAplblYrMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Aggregate Grant Date Fair Value of Equity Award Amounts Reported in Summary Compensation Table</link:label>
    <link:label id="lab_ecd_EqtyAwrdsInSummryCompstnTblForAplblYrMember_label_en-US" xlink:label="lab_ecd_EqtyAwrdsInSummryCompstnTblForAplblYrMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Aggregate Grant Date Fair Value of Equity Award Amounts Reported in Summary Compensation Table [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_EqtyAwrdsInSummryCompstnTblForAplblYrMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_EqtyAwrdsInSummryCompstnTblForAplblYrMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_EqtyAwrdsInSummryCompstnTblForAplblYrMember" xlink:to="lab_ecd_EqtyAwrdsInSummryCompstnTblForAplblYrMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_BusinessCombinationContingentConsiderationLiabilityCurrent_a5b46d31-493c-4b25-9a1a-d2bfe1f43799_terseLabel_en-US" xlink:label="lab_us-gaap_BusinessCombinationContingentConsiderationLiabilityCurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Acquisition liabilities, current</link:label>
    <link:label id="lab_us-gaap_BusinessCombinationContingentConsiderationLiabilityCurrent_label_en-US" xlink:label="lab_us-gaap_BusinessCombinationContingentConsiderationLiabilityCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Business Combination, Contingent Consideration, Liability, Current</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationContingentConsiderationLiabilityCurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationContingentConsiderationLiabilityCurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessCombinationContingentConsiderationLiabilityCurrent" xlink:to="lab_us-gaap_BusinessCombinationContingentConsiderationLiabilityCurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_OperatingAndFinanceLeaseLiabilityToBePaid_634461de-2085-4538-b092-1ff4b235340c_totalLabel_en-US" xlink:label="lab_tgen_OperatingAndFinanceLeaseLiabilityToBePaid" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Total lease payments</link:label>
    <link:label id="lab_tgen_OperatingAndFinanceLeaseLiabilityToBePaid_label_en-US" xlink:label="lab_tgen_OperatingAndFinanceLeaseLiabilityToBePaid" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Operating and Finance Lease, Liability, to be Paid</link:label>
    <link:label id="lab_tgen_OperatingAndFinanceLeaseLiabilityToBePaid_documentation_en-US" xlink:label="lab_tgen_OperatingAndFinanceLeaseLiabilityToBePaid" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Operating and Finance Lease, Liability, to be Paid</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_OperatingAndFinanceLeaseLiabilityToBePaid" xlink:href="tgen-20241231.xsd#tgen_OperatingAndFinanceLeaseLiabilityToBePaid"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_OperatingAndFinanceLeaseLiabilityToBePaid" xlink:to="lab_tgen_OperatingAndFinanceLeaseLiabilityToBePaid" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LesseeLeaseDescriptionLineItems_85721fb0-75af-45d7-a77c-08083c5fb6a9_terseLabel_en-US" xlink:label="lab_us-gaap_LesseeLeaseDescriptionLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Lessee, Lease, Description [Line Items]</link:label>
    <link:label id="lab_us-gaap_LesseeLeaseDescriptionLineItems_label_en-US" xlink:label="lab_us-gaap_LesseeLeaseDescriptionLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Lessee, Lease, Description [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeLeaseDescriptionLineItems" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeLeaseDescriptionLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LesseeLeaseDescriptionLineItems" xlink:to="lab_us-gaap_LesseeLeaseDescriptionLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_InterestAndOtherIncomeExpense_e40afeb9-f695-41ff-91b6-16fc7a459280_terseLabel_en-US" xlink:label="lab_tgen_InterestAndOtherIncomeExpense" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Interest and other income (expense)</link:label>
    <link:label id="lab_tgen_InterestAndOtherIncomeExpense_label_en-US" xlink:label="lab_tgen_InterestAndOtherIncomeExpense" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Interest and Other Income (Expense)</link:label>
    <link:label id="lab_tgen_InterestAndOtherIncomeExpense_documentation_en-US" xlink:label="lab_tgen_InterestAndOtherIncomeExpense" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Interest and Other Income (Expense)</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_InterestAndOtherIncomeExpense" xlink:href="tgen-20241231.xsd#tgen_InterestAndOtherIncomeExpense"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_InterestAndOtherIncomeExpense" xlink:to="lab_tgen_InterestAndOtherIncomeExpense" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CompensationAndEmployeeBenefitPlansTextBlock_584bc7eb-6b86-4e54-ac32-1ed0517bed32_terseLabel_en-US" xlink:label="lab_us-gaap_CompensationAndEmployeeBenefitPlansTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Retirement plans</link:label>
    <link:label id="lab_us-gaap_CompensationAndEmployeeBenefitPlansTextBlock_label_en-US" xlink:label="lab_us-gaap_CompensationAndEmployeeBenefitPlansTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Compensation and Employee Benefit Plans [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CompensationAndEmployeeBenefitPlansTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CompensationAndEmployeeBenefitPlansTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CompensationAndEmployeeBenefitPlansTextBlock" xlink:to="lab_us-gaap_CompensationAndEmployeeBenefitPlansTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OperatingLeaseExpense_8f30092d-29a0-4df6-b449-cdd6ff7a813f_terseLabel_en-US" xlink:label="lab_us-gaap_OperatingLeaseExpense" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Operating lease, expense</link:label>
    <link:label id="lab_us-gaap_OperatingLeaseExpense_label_en-US" xlink:label="lab_us-gaap_OperatingLeaseExpense" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Operating Lease, Expense</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseExpense" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseExpense"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OperatingLeaseExpense" xlink:to="lab_us-gaap_OperatingLeaseExpense" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OrderOrProductionBacklogMember_0ddc0745-0d21-40cc-a62d-598635493cc1_terseLabel_en-US" xlink:label="lab_us-gaap_OrderOrProductionBacklogMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Order or Production Backlog</link:label>
    <link:label id="lab_us-gaap_OrderOrProductionBacklogMember_label_en-US" xlink:label="lab_us-gaap_OrderOrProductionBacklogMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Order or Production Backlog [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OrderOrProductionBacklogMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OrderOrProductionBacklogMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OrderOrProductionBacklogMember" xlink:to="lab_us-gaap_OrderOrProductionBacklogMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_5dc185e1-b778-4e8b-b1d3-43091f6d1865_periodStartLabel_en-US" xlink:label="lab_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xml:lang="en-US">Cash and cash equivalents, beginning of the year</link:label>
    <link:label id="lab_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_75d2a261-1a67-455a-b6bd-64c133539ae4_periodEndLabel_en-US" xlink:label="lab_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xml:lang="en-US">Cash and cash equivalents, end of the year</link:label>
    <link:label id="lab_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_label_en-US" xlink:label="lab_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Cash, Cash Equivalents, Restricted Cash, and Restricted Cash Equivalents</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:to="lab_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized_50b5ccdd-893a-4e4c-b879-c2d679efdcfd_terseLabel_en-US" xlink:label="lab_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Compensation cost related to unvested restricted stock awards and stock option awards not yet recognized</link:label>
    <link:label id="lab_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized_label_en-US" xlink:label="lab_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" xlink:to="lab_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AssetsCurrentAbstract_6746a3f0-ae41-465c-832d-eca7701541e5_terseLabel_en-US" xlink:label="lab_us-gaap_AssetsCurrentAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Current assets:</link:label>
    <link:label id="lab_us-gaap_AssetsCurrentAbstract_label_en-US" xlink:label="lab_us-gaap_AssetsCurrentAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Assets, Current [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetsCurrentAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetsCurrentAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AssetsCurrentAbstract" xlink:to="lab_us-gaap_AssetsCurrentAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_srt_ConsolidationItemsAxis_1ed0e170-3816-4725-8a83-611055d40acc_terseLabel_en-US" xlink:label="lab_srt_ConsolidationItemsAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Consolidation Items [Axis]</link:label>
    <link:label id="lab_srt_ConsolidationItemsAxis_label_en-US" xlink:label="lab_srt_ConsolidationItemsAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Consolidation Items [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ConsolidationItemsAxis" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ConsolidationItemsAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_ConsolidationItemsAxis" xlink:to="lab_srt_ConsolidationItemsAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IndefiniteLivedIntangibleAssetsMajorClassNameDomain_c223a9b3-8da6-499f-babf-8bc7f3da3275_terseLabel_en-US" xlink:label="lab_us-gaap_IndefiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Indefinite-lived Intangible Assets, Major Class Name [Domain]</link:label>
    <link:label id="lab_us-gaap_IndefiniteLivedIntangibleAssetsMajorClassNameDomain_label_en-US" xlink:label="lab_us-gaap_IndefiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Indefinite-Lived Intangible Assets, Major Class Name [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IndefiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IndefiniteLivedIntangibleAssetsMajorClassNameDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IndefiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="lab_us-gaap_IndefiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FairValueOfFinancialInstrumentsPolicy_05ba9b98-7318-4565-9ddb-c8ffa7833112_terseLabel_en-US" xlink:label="lab_us-gaap_FairValueOfFinancialInstrumentsPolicy" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Fair Value of Financial Instruments</link:label>
    <link:label id="lab_us-gaap_FairValueOfFinancialInstrumentsPolicy_label_en-US" xlink:label="lab_us-gaap_FairValueOfFinancialInstrumentsPolicy" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Fair Value of Financial Instruments, Policy [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueOfFinancialInstrumentsPolicy" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueOfFinancialInstrumentsPolicy"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueOfFinancialInstrumentsPolicy" xlink:to="lab_us-gaap_FairValueOfFinancialInstrumentsPolicy" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_ForgoneRecoveryDueToDisqualificationOfTaxBenefitsAmt_terseLabel_en-US" xlink:label="lab_ecd_ForgoneRecoveryDueToDisqualificationOfTaxBenefitsAmt" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Forgone Recovery due to Disqualification of Tax Benefits, Amount</link:label>
    <link:label id="lab_ecd_ForgoneRecoveryDueToDisqualificationOfTaxBenefitsAmt_label_en-US" xlink:label="lab_ecd_ForgoneRecoveryDueToDisqualificationOfTaxBenefitsAmt" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Forgone Recovery due to Disqualification of Tax Benefits, Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_ForgoneRecoveryDueToDisqualificationOfTaxBenefitsAmt" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_ForgoneRecoveryDueToDisqualificationOfTaxBenefitsAmt"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_ForgoneRecoveryDueToDisqualificationOfTaxBenefitsAmt" xlink:to="lab_ecd_ForgoneRecoveryDueToDisqualificationOfTaxBenefitsAmt" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_IncreaseDecreaseInWorkingCapital_f1dc50f6-0636-4738-8adc-009cb6f8500d_negatedTerseLabel_en-US" xlink:label="lab_tgen_IncreaseDecreaseInWorkingCapital" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Decrease in working capital</link:label>
    <link:label id="lab_tgen_IncreaseDecreaseInWorkingCapital_label_en-US" xlink:label="lab_tgen_IncreaseDecreaseInWorkingCapital" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Increase (Decrease) in Working Capital</link:label>
    <link:label id="lab_tgen_IncreaseDecreaseInWorkingCapital_documentation_en-US" xlink:label="lab_tgen_IncreaseDecreaseInWorkingCapital" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Increase (Decrease) in Working Capital</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_IncreaseDecreaseInWorkingCapital" xlink:href="tgen-20241231.xsd#tgen_IncreaseDecreaseInWorkingCapital"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_IncreaseDecreaseInWorkingCapital" xlink:to="lab_tgen_IncreaseDecreaseInWorkingCapital" xlink:type="arc" order="1"/>
    <link:label id="lab_srt_ProductsAndServicesDomain_765ee15d-3ece-4f91-870c-44e72f15ed6e_terseLabel_en-US" xlink:label="lab_srt_ProductsAndServicesDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Product and Service [Domain]</link:label>
    <link:label id="lab_srt_ProductsAndServicesDomain_label_en-US" xlink:label="lab_srt_ProductsAndServicesDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Product and Service [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductsAndServicesDomain" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ProductsAndServicesDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_ProductsAndServicesDomain" xlink:to="lab_srt_ProductsAndServicesDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_GoodwillRollForward_1304289a-d1fe-430f-b49c-a10cfb827a59_terseLabel_en-US" xlink:label="lab_us-gaap_GoodwillRollForward" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Goodwill [Roll Forward]</link:label>
    <link:label id="lab_us-gaap_GoodwillRollForward_label_en-US" xlink:label="lab_us-gaap_GoodwillRollForward" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Goodwill [Roll Forward]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillRollForward" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GoodwillRollForward"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_GoodwillRollForward" xlink:to="lab_us-gaap_GoodwillRollForward" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_ProceedsFromEmployeeRetentionCredit_8f18d626-ed58-4655-9cbd-fe91fca21ffe_terseLabel_en-US" xlink:label="lab_tgen_ProceedsFromEmployeeRetentionCredit" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">ERC claim settlement</link:label>
    <link:label id="lab_tgen_ProceedsFromEmployeeRetentionCredit_label_en-US" xlink:label="lab_tgen_ProceedsFromEmployeeRetentionCredit" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Proceeds From Employee Retention Credit</link:label>
    <link:label id="lab_tgen_ProceedsFromEmployeeRetentionCredit_documentation_en-US" xlink:label="lab_tgen_ProceedsFromEmployeeRetentionCredit" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Proceeds From Employee Retention Credit</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ProceedsFromEmployeeRetentionCredit" xlink:href="tgen-20241231.xsd#tgen_ProceedsFromEmployeeRetentionCredit"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_ProceedsFromEmployeeRetentionCredit" xlink:to="lab_tgen_ProceedsFromEmployeeRetentionCredit" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FairValueDisclosuresAbstract_dc6496f5-5e44-46f8-b02c-690311e7b457_terseLabel_en-US" xlink:label="lab_us-gaap_FairValueDisclosuresAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Fair Value Disclosures [Abstract]</link:label>
    <link:label id="lab_us-gaap_FairValueDisclosuresAbstract_label_en-US" xlink:label="lab_us-gaap_FairValueDisclosuresAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Fair Value Disclosures [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueDisclosuresAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueDisclosuresAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueDisclosuresAbstract" xlink:to="lab_us-gaap_FairValueDisclosuresAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseNextRolling12Months_87bc976f-3e80-414d-b17b-f7880bcbec5a_terseLabel_en-US" xlink:label="lab_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseNextRolling12Months" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">2025</link:label>
    <link:label id="lab_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseNextRolling12Months_label_en-US" xlink:label="lab_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseNextRolling12Months" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Finite-Lived Intangible Assets And Liability, Net, Amortization Expense, Next Rolling 12 Months</link:label>
    <link:label id="lab_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseNextRolling12Months_documentation_en-US" xlink:label="lab_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseNextRolling12Months" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Finite-Lived Intangible Assets And Liability, Net, Amortization Expense, Next Rolling 12 Months</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseNextRolling12Months" xlink:href="tgen-20241231.xsd#tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseNextRolling12Months"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseNextRolling12Months" xlink:to="lab_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseNextRolling12Months" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PreferredStockSharesOutstanding_8ddfc0ad-fa47-43a6-9d9b-16d2ea0dfd0d_terseLabel_en-US" xlink:label="lab_us-gaap_PreferredStockSharesOutstanding" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Preferred stock, outstanding (in shares)</link:label>
    <link:label id="lab_us-gaap_PreferredStockSharesOutstanding_label_en-US" xlink:label="lab_us-gaap_PreferredStockSharesOutstanding" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Preferred Stock, Shares Outstanding</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PreferredStockSharesOutstanding" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PreferredStockSharesOutstanding"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PreferredStockSharesOutstanding" xlink:to="lab_us-gaap_PreferredStockSharesOutstanding" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_StandardProductWarrantyAccrualPayments_93d7f1e3-585d-4763-8f8f-9f37c65f2ec8_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_StandardProductWarrantyAccrualPayments" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Costs of warranty incurred</link:label>
    <link:label id="lab_us-gaap_StandardProductWarrantyAccrualPayments_label_en-US" xlink:label="lab_us-gaap_StandardProductWarrantyAccrualPayments" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Standard Product Warranty Accrual, Decrease for Payments</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StandardProductWarrantyAccrualPayments" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StandardProductWarrantyAccrualPayments"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StandardProductWarrantyAccrualPayments" xlink:to="lab_us-gaap_StandardProductWarrantyAccrualPayments" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_IncreaseDecreaseInBacklog_f63a4e27-af2e-45cd-8f86-75970eaeb8cb_terseLabel_en-US" xlink:label="lab_tgen_IncreaseDecreaseInBacklog" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Increase in backlog</link:label>
    <link:label id="lab_tgen_IncreaseDecreaseInBacklog_label_en-US" xlink:label="lab_tgen_IncreaseDecreaseInBacklog" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Increase (Decrease) In Backlog</link:label>
    <link:label id="lab_tgen_IncreaseDecreaseInBacklog_documentation_en-US" xlink:label="lab_tgen_IncreaseDecreaseInBacklog" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Increase (Decrease) In Backlog</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_IncreaseDecreaseInBacklog" xlink:href="tgen-20241231.xsd#tgen_IncreaseDecreaseInBacklog"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_IncreaseDecreaseInBacklog" xlink:to="lab_tgen_IncreaseDecreaseInBacklog" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RelatedPartyTransactionDomain_f65067cc-a673-437e-bfae-aac9fe278971_terseLabel_en-US" xlink:label="lab_us-gaap_RelatedPartyTransactionDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Related Party Transaction [Domain]</link:label>
    <link:label id="lab_us-gaap_RelatedPartyTransactionDomain_label_en-US" xlink:label="lab_us-gaap_RelatedPartyTransactionDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Related Party Transaction [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyTransactionDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RelatedPartyTransactionDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RelatedPartyTransactionDomain" xlink:to="lab_us-gaap_RelatedPartyTransactionDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice_23753346-c07e-4cc5-a710-9d94fc4b4d4c_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Exercised (usd per share)</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangements by Share-Based Payment Award, Options, Exercises in Period, Weighted Average Exercise Price</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_UnfavorableContractLiabilityMember_b3bef50a-ff0c-4e87-b76e-506766c25ccc_terseLabel_en-US" xlink:label="lab_tgen_UnfavorableContractLiabilityMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Unfavorable Contract Liability</link:label>
    <link:label id="lab_tgen_UnfavorableContractLiabilityMember_label_en-US" xlink:label="lab_tgen_UnfavorableContractLiabilityMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Unfavorable Contract Liability [Member]</link:label>
    <link:label id="lab_tgen_UnfavorableContractLiabilityMember_documentation_en-US" xlink:label="lab_tgen_UnfavorableContractLiabilityMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Unfavorable Contract Liability [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_UnfavorableContractLiabilityMember" xlink:href="tgen-20241231.xsd#tgen_UnfavorableContractLiabilityMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_UnfavorableContractLiabilityMember" xlink:to="lab_tgen_UnfavorableContractLiabilityMember" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_JohnN.HatsopoulosMember_8bb02151-18f0-4baf-8ce5-0c888ab967cd_terseLabel_en-US" xlink:label="lab_tgen_JohnN.HatsopoulosMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">John N. Hatsopoulos</link:label>
    <link:label id="lab_tgen_JohnN.HatsopoulosMember_label_en-US" xlink:label="lab_tgen_JohnN.HatsopoulosMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">John N. Hatsopoulos [Member]</link:label>
    <link:label id="lab_tgen_JohnN.HatsopoulosMember_documentation_en-US" xlink:label="lab_tgen_JohnN.HatsopoulosMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">John N. Hatsopoulos</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_JohnN.HatsopoulosMember" xlink:href="tgen-20241231.xsd#tgen_JohnN.HatsopoulosMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_JohnN.HatsopoulosMember" xlink:to="lab_tgen_JohnN.HatsopoulosMember" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_ForgoneRecoveryExplanationOfImpracticabilityTextBlock_terseLabel_en-US" xlink:label="lab_ecd_ForgoneRecoveryExplanationOfImpracticabilityTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Forgone Recovery, Explanation of Impracticability</link:label>
    <link:label id="lab_ecd_ForgoneRecoveryExplanationOfImpracticabilityTextBlock_label_en-US" xlink:label="lab_ecd_ForgoneRecoveryExplanationOfImpracticabilityTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Forgone Recovery, Explanation of Impracticability [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_ForgoneRecoveryExplanationOfImpracticabilityTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_ForgoneRecoveryExplanationOfImpracticabilityTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_ForgoneRecoveryExplanationOfImpracticabilityTextBlock" xlink:to="lab_ecd_ForgoneRecoveryExplanationOfImpracticabilityTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ResearchAndDevelopmentExpense_282b6139-2d9e-4799-a044-dec1dad9fe82_terseLabel_en-US" xlink:label="lab_us-gaap_ResearchAndDevelopmentExpense" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Research and development</link:label>
    <link:label id="lab_us-gaap_ResearchAndDevelopmentExpense_label_en-US" xlink:label="lab_us-gaap_ResearchAndDevelopmentExpense" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Research and Development Expense</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ResearchAndDevelopmentExpense" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ResearchAndDevelopmentExpense"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ResearchAndDevelopmentExpense" xlink:to="lab_us-gaap_ResearchAndDevelopmentExpense" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedFinancialLiabilitiesCurrent_dd48822a-3788-436a-bf68-c61def068a68_terseLabel_en-US" xlink:label="lab_tgen_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedFinancialLiabilitiesCurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Unfavorable contract liabilities, current</link:label>
    <link:label id="lab_tgen_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedFinancialLiabilitiesCurrent_label_en-US" xlink:label="lab_tgen_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedFinancialLiabilitiesCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Financial Liabilities, Current</link:label>
    <link:label id="lab_tgen_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedFinancialLiabilitiesCurrent_documentation_en-US" xlink:label="lab_tgen_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedFinancialLiabilitiesCurrent" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Financial Liabilities, Current</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedFinancialLiabilitiesCurrent" xlink:href="tgen-20241231.xsd#tgen_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedFinancialLiabilitiesCurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedFinancialLiabilitiesCurrent" xlink:to="lab_tgen_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedFinancialLiabilitiesCurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSales_c4b9e87b-2775-4cd4-bb46-6732f66230b4_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSales" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Sales</link:label>
    <link:label id="lab_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSales_label_en-US" xlink:label="lab_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSales" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Fair Value, Measurement with Unobservable Inputs Reconciliation, Recurring Basis, Asset, Sales</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSales" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSales"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSales" xlink:to="lab_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSales" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RightOfUseAssetObtainedInExchangeForFinanceLeaseLiability_998fd179-4bc3-4a4d-b534-dcf32a55a9c5_terseLabel_en-US" xlink:label="lab_us-gaap_RightOfUseAssetObtainedInExchangeForFinanceLeaseLiability" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Right-of-use assets obtained in exchange for finance lease liabilities</link:label>
    <link:label id="lab_us-gaap_RightOfUseAssetObtainedInExchangeForFinanceLeaseLiability_label_en-US" xlink:label="lab_us-gaap_RightOfUseAssetObtainedInExchangeForFinanceLeaseLiability" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Right-of-Use Asset Obtained in Exchange for Finance Lease Liability</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RightOfUseAssetObtainedInExchangeForFinanceLeaseLiability" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RightOfUseAssetObtainedInExchangeForFinanceLeaseLiability"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RightOfUseAssetObtainedInExchangeForFinanceLeaseLiability" xlink:to="lab_us-gaap_RightOfUseAssetObtainedInExchangeForFinanceLeaseLiability" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_515245b6-bcc8-46ee-92d0-4dee22d5831a_terseLabel_en-US" xlink:label="lab_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Goodwill and Intangible Assets Disclosure [Abstract]</link:label>
    <link:label id="lab_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_label_en-US" xlink:label="lab_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Goodwill and Intangible Assets Disclosure [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:to="lab_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CommonStockSharesIssued_80137ece-0a7e-4c55-83b0-dff7f5aabf8f_terseLabel_en-US" xlink:label="lab_us-gaap_CommonStockSharesIssued" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Common Stock, Shares, Issued</link:label>
    <link:label id="lab_us-gaap_CommonStockSharesIssued_label_en-US" xlink:label="lab_us-gaap_CommonStockSharesIssued" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Common Stock, Shares, Issued</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockSharesIssued" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockSharesIssued"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CommonStockSharesIssued" xlink:to="lab_us-gaap_CommonStockSharesIssued" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntityDomain_bc3342d2-c3c2-47e0-8d21-2f82f2ff86ed_terseLabel_en-US" xlink:label="lab_dei_EntityDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Entity [Domain]</link:label>
    <link:label id="lab_dei_EntityDomain_label_en-US" xlink:label="lab_dei_EntityDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityDomain" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityDomain" xlink:to="lab_dei_EntityDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_EnergyProductionSegmentMember_dca9bffa-20e2-465c-8ffd-9d88d3403d17_terseLabel_en-US" xlink:label="lab_tgen_EnergyProductionSegmentMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Energy Production Segment</link:label>
    <link:label id="lab_tgen_EnergyProductionSegmentMember_label_en-US" xlink:label="lab_tgen_EnergyProductionSegmentMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Energy Production Segment [Member]</link:label>
    <link:label id="lab_tgen_EnergyProductionSegmentMember_documentation_en-US" xlink:label="lab_tgen_EnergyProductionSegmentMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Energy Production Segment</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_EnergyProductionSegmentMember" xlink:href="tgen-20241231.xsd#tgen_EnergyProductionSegmentMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_EnergyProductionSegmentMember" xlink:to="lab_tgen_EnergyProductionSegmentMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ConcentrationRiskPercentage1_7162093b-fc32-41f5-b48a-d19b83b23219_terseLabel_en-US" xlink:label="lab_us-gaap_ConcentrationRiskPercentage1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Concentration risk, percentage</link:label>
    <link:label id="lab_us-gaap_ConcentrationRiskPercentage1_label_en-US" xlink:label="lab_us-gaap_ConcentrationRiskPercentage1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Concentration Risk, Percentage</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskPercentage1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskPercentage1"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ConcentrationRiskPercentage1" xlink:to="lab_us-gaap_ConcentrationRiskPercentage1" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_AmortizationofContractRelatedIntangibleAssetsandLiabilitiesNet_dfb2926f-6029-44b3-b622-afd7a92738b7_terseLabel_en-US" xlink:label="lab_tgen_AmortizationofContractRelatedIntangibleAssetsandLiabilitiesNet" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Net credit to cost of sales related to the amortization of contract related assets and liabilities</link:label>
    <link:label id="lab_tgen_AmortizationofContractRelatedIntangibleAssetsandLiabilitiesNet_label_en-US" xlink:label="lab_tgen_AmortizationofContractRelatedIntangibleAssetsandLiabilitiesNet" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Amortization of Contract Related Intangible Assets and Liabilities, Net</link:label>
    <link:label id="lab_tgen_AmortizationofContractRelatedIntangibleAssetsandLiabilitiesNet_documentation_en-US" xlink:label="lab_tgen_AmortizationofContractRelatedIntangibleAssetsandLiabilitiesNet" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Amortization of Contract Related Intangible Assets and Liabilities, Net</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AmortizationofContractRelatedIntangibleAssetsandLiabilitiesNet" xlink:href="tgen-20241231.xsd#tgen_AmortizationofContractRelatedIntangibleAssetsandLiabilitiesNet"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_AmortizationofContractRelatedIntangibleAssetsandLiabilitiesNet" xlink:to="lab_tgen_AmortizationofContractRelatedIntangibleAssetsandLiabilitiesNet" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_VehiclesAcquiredUnderFinanceLeases_50901276-f32c-40f0-a3b2-6bc481bd054a_terseLabel_en-US" xlink:label="lab_tgen_VehiclesAcquiredUnderFinanceLeases" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Right-of-use assets acquired under finance leases</link:label>
    <link:label id="lab_tgen_VehiclesAcquiredUnderFinanceLeases_label_en-US" xlink:label="lab_tgen_VehiclesAcquiredUnderFinanceLeases" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Vehicles Acquired Under Finance Leases</link:label>
    <link:label id="lab_tgen_VehiclesAcquiredUnderFinanceLeases_documentation_en-US" xlink:label="lab_tgen_VehiclesAcquiredUnderFinanceLeases" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Vehicles Acquired Under Finance Leases</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_VehiclesAcquiredUnderFinanceLeases" xlink:href="tgen-20241231.xsd#tgen_VehiclesAcquiredUnderFinanceLeases"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_VehiclesAcquiredUnderFinanceLeases" xlink:to="lab_tgen_VehiclesAcquiredUnderFinanceLeases" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_WorkingCapitalNet_5c0aa2ac-4e8d-4c06-b02f-d685b67a6385_terseLabel_en-US" xlink:label="lab_tgen_WorkingCapitalNet" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Working capital</link:label>
    <link:label id="lab_tgen_WorkingCapitalNet_label_en-US" xlink:label="lab_tgen_WorkingCapitalNet" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Working Capital, Net</link:label>
    <link:label id="lab_tgen_WorkingCapitalNet_documentation_en-US" xlink:label="lab_tgen_WorkingCapitalNet" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Working Capital, Net</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_WorkingCapitalNet" xlink:href="tgen-20241231.xsd#tgen_WorkingCapitalNet"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_WorkingCapitalNet" xlink:to="lab_tgen_WorkingCapitalNet" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRollingYearFive_87f34c3b-2904-43a4-b1ae-d7d657b6dac0_terseLabel_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRollingYearFive" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">2029</link:label>
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRollingYearFive_label_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRollingYearFive" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Finite-Lived Intangible Assets, Amortization Expense, Rolling Year Five</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRollingYearFive" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRollingYearFive"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRollingYearFive" xlink:to="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRollingYearFive" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRollingAfterYearFive_7f4e88ed-ad46-4711-bc4d-369999bff824_terseLabel_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRollingAfterYearFive" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Thereafter</link:label>
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRollingAfterYearFive_label_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRollingAfterYearFive" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Finite-Lived Intangible Assets, Amortization Expense, Rolling after Year Five</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRollingAfterYearFive" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRollingAfterYearFive"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRollingAfterYearFive" xlink:to="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRollingAfterYearFive" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_InsiderTrdPoliciesProcAdoptedFlag_terseLabel_en-US" xlink:label="lab_ecd_InsiderTrdPoliciesProcAdoptedFlag" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Insider Trading Policies and Procedures Adopted</link:label>
    <link:label id="lab_ecd_InsiderTrdPoliciesProcAdoptedFlag_label_en-US" xlink:label="lab_ecd_InsiderTrdPoliciesProcAdoptedFlag" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Insider Trading Policies and Procedures Adopted [Flag]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_InsiderTrdPoliciesProcAdoptedFlag" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_InsiderTrdPoliciesProcAdoptedFlag"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_InsiderTrdPoliciesProcAdoptedFlag" xlink:to="lab_ecd_InsiderTrdPoliciesProcAdoptedFlag" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_66ca02f1-759a-4d09-9da3-2ad671f3b447_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Less: accumulated depreciation and amortization</link:label>
    <link:label id="lab_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_label_en-US" xlink:label="lab_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accumulated Depreciation, Depletion and Amortization, Property, Plant, and Equipment</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:to="lab_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CommonStockSharesAuthorized_8f059a0a-98f1-4ac0-a7c0-bae0e57d08b0_terseLabel_en-US" xlink:label="lab_us-gaap_CommonStockSharesAuthorized" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Common Stock, Shares Authorized</link:label>
    <link:label id="lab_us-gaap_CommonStockSharesAuthorized_label_en-US" xlink:label="lab_us-gaap_CommonStockSharesAuthorized" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Common Stock, Shares Authorized</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockSharesAuthorized" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockSharesAuthorized"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CommonStockSharesAuthorized" xlink:to="lab_us-gaap_CommonStockSharesAuthorized" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired_1f29289e-6add-4324-b04b-a9efb206f983_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Payment for business acquisition</link:label>
    <link:label id="lab_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired_label_en-US" xlink:label="lab_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Payments to Acquire Businesses, Net of Cash Acquired</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" xlink:to="lab_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_OrderOrProductionBacklogValue_a51e836b-6fd8-4062-82b4-12467b22efab_terseLabel_en-US" xlink:label="lab_tgen_OrderOrProductionBacklogValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Order or Production Backlog, Value</link:label>
    <link:label id="lab_tgen_OrderOrProductionBacklogValue_label_en-US" xlink:label="lab_tgen_OrderOrProductionBacklogValue" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Order or Production Backlog, Value</link:label>
    <link:label id="lab_tgen_OrderOrProductionBacklogValue_documentation_en-US" xlink:label="lab_tgen_OrderOrProductionBacklogValue" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Order or Production Backlog, Value</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_OrderOrProductionBacklogValue" xlink:href="tgen-20241231.xsd#tgen_OrderOrProductionBacklogValue"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_OrderOrProductionBacklogValue" xlink:to="lab_tgen_OrderOrProductionBacklogValue" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DeferredTaxAssetsGoodwillAndIntangibleAssets_db7f7e9b-2cee-4527-a33a-e91e58852713_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsGoodwillAndIntangibleAssets" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Intangibles</link:label>
    <link:label id="lab_us-gaap_DeferredTaxAssetsGoodwillAndIntangibleAssets_label_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsGoodwillAndIntangibleAssets" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred Tax Assets, Goodwill and Intangible Assets</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsGoodwillAndIntangibleAssets" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsGoodwillAndIntangibleAssets"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxAssetsGoodwillAndIntangibleAssets" xlink:to="lab_us-gaap_DeferredTaxAssetsGoodwillAndIntangibleAssets" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntityVoluntaryFilers_c06559a2-3571-454b-a273-4f65bdc07278_terseLabel_en-US" xlink:label="lab_dei_EntityVoluntaryFilers" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Entity Voluntary Filers</link:label>
    <link:label id="lab_dei_EntityVoluntaryFilers_label_en-US" xlink:label="lab_dei_EntityVoluntaryFilers" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Voluntary Filers</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityVoluntaryFilers" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityVoluntaryFilers"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityVoluntaryFilers" xlink:to="lab_dei_EntityVoluntaryFilers" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RelatedPartyMember_fa2dd373-bd56-4cbb-9c29-f53679ff9926_terseLabel_en-US" xlink:label="lab_us-gaap_RelatedPartyMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Related Party</link:label>
    <link:label id="lab_us-gaap_RelatedPartyMember_label_en-US" xlink:label="lab_us-gaap_RelatedPartyMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Related Party [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RelatedPartyMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RelatedPartyMember" xlink:to="lab_us-gaap_RelatedPartyMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseRenewalTerm_d7ba07b0-4578-47b6-a295-fa6132d53959_terseLabel_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseRenewalTerm" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Lease renewal term</link:label>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseRenewalTerm_label_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseRenewalTerm" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Lessee, Operating Lease, Renewal Term</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseRenewalTerm" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseRenewalTerm"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LesseeOperatingLeaseRenewalTerm" xlink:to="lab_us-gaap_LesseeOperatingLeaseRenewalTerm" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_InterestExpenseNonoperating_acc85bb7-2c11-4095-bd7b-d9f93dbb4a52_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_InterestExpenseNonoperating" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Interest expense</link:label>
    <link:label id="lab_us-gaap_InterestExpenseNonoperating_label_en-US" xlink:label="lab_us-gaap_InterestExpenseNonoperating" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Interest Expense, Nonoperating</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InterestExpenseNonoperating" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InterestExpenseNonoperating"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_InterestExpenseNonoperating" xlink:to="lab_us-gaap_InterestExpenseNonoperating" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_AegisEnergyServicesLLCMember_179d4de4-6a25-4768-bffb-9d3cbc97361f_terseLabel_en-US" xlink:label="lab_tgen_AegisEnergyServicesLLCMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Aegis Energy Services, LLC</link:label>
    <link:label id="lab_tgen_AegisEnergyServicesLLCMember_label_en-US" xlink:label="lab_tgen_AegisEnergyServicesLLCMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Aegis Energy Services, LLC [Member]</link:label>
    <link:label id="lab_tgen_AegisEnergyServicesLLCMember_documentation_en-US" xlink:label="lab_tgen_AegisEnergyServicesLLCMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Aegis Energy Services, LLC</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AegisEnergyServicesLLCMember" xlink:href="tgen-20241231.xsd#tgen_AegisEnergyServicesLLCMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_AegisEnergyServicesLLCMember" xlink:to="lab_tgen_AegisEnergyServicesLLCMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock_f6a7b26e-6398-41e6-97f8-f0c113776e17_terseLabel_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Property, plant and equipment</link:label>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock_label_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Property, Plant and Equipment Disclosure [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock" xlink:to="lab_us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_AssetAcquisitionMaintenanceAgreementsNumberOfAdditionalCogenerationUnits_ba946b90-7f1f-4ab0-8e51-2c006ab72435_terseLabel_en-US" xlink:label="lab_tgen_AssetAcquisitionMaintenanceAgreementsNumberOfAdditionalCogenerationUnits" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Number of additional cogeneration units</link:label>
    <link:label id="lab_tgen_AssetAcquisitionMaintenanceAgreementsNumberOfAdditionalCogenerationUnits_label_en-US" xlink:label="lab_tgen_AssetAcquisitionMaintenanceAgreementsNumberOfAdditionalCogenerationUnits" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Asset Acquisition, Maintenance Agreements, Number Of Additional Cogeneration Units</link:label>
    <link:label id="lab_tgen_AssetAcquisitionMaintenanceAgreementsNumberOfAdditionalCogenerationUnits_documentation_en-US" xlink:label="lab_tgen_AssetAcquisitionMaintenanceAgreementsNumberOfAdditionalCogenerationUnits" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Asset Acquisition, Maintenance Agreements, Number Of Additional Cogeneration Units</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AssetAcquisitionMaintenanceAgreementsNumberOfAdditionalCogenerationUnits" xlink:href="tgen-20241231.xsd#tgen_AssetAcquisitionMaintenanceAgreementsNumberOfAdditionalCogenerationUnits"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_AssetAcquisitionMaintenanceAgreementsNumberOfAdditionalCogenerationUnits" xlink:to="lab_tgen_AssetAcquisitionMaintenanceAgreementsNumberOfAdditionalCogenerationUnits" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs_c68ee71f-adc7-46a2-a7d4-f8b152cfc5fe_terseLabel_en-US" xlink:label="lab_us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Bad debt expense</link:label>
    <link:label id="lab_us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs_label_en-US" xlink:label="lab_us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accounts Receivable, Allowance for Credit Loss, Writeoff</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs" xlink:to="lab_us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_OperatingAndFinanceLeaseLiabilityToBePaidAfterYearFive_62d27a49-b771-4516-ab00-0dec326f78af_terseLabel_en-US" xlink:label="lab_tgen_OperatingAndFinanceLeaseLiabilityToBePaidAfterYearFive" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Thereafter</link:label>
    <link:label id="lab_tgen_OperatingAndFinanceLeaseLiabilityToBePaidAfterYearFive_label_en-US" xlink:label="lab_tgen_OperatingAndFinanceLeaseLiabilityToBePaidAfterYearFive" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Operating and Finance Lease, Liability, to be Paid, After Year Five</link:label>
    <link:label id="lab_tgen_OperatingAndFinanceLeaseLiabilityToBePaidAfterYearFive_documentation_en-US" xlink:label="lab_tgen_OperatingAndFinanceLeaseLiabilityToBePaidAfterYearFive" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Operating and Finance Lease, Liability, to be Paid, After Year Five</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_OperatingAndFinanceLeaseLiabilityToBePaidAfterYearFive" xlink:href="tgen-20241231.xsd#tgen_OperatingAndFinanceLeaseLiabilityToBePaidAfterYearFive"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_OperatingAndFinanceLeaseLiabilityToBePaidAfterYearFive" xlink:to="lab_tgen_OperatingAndFinanceLeaseLiabilityToBePaidAfterYearFive" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FairValueMeasurementsRecurringMember_b749532e-cbcb-4ed1-8136-718f562d7420_terseLabel_en-US" xlink:label="lab_us-gaap_FairValueMeasurementsRecurringMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Fair Value, Measurements, Recurring</link:label>
    <link:label id="lab_us-gaap_FairValueMeasurementsRecurringMember_label_en-US" xlink:label="lab_us-gaap_FairValueMeasurementsRecurringMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Fair Value, Recurring [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueMeasurementsRecurringMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueMeasurementsRecurringMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueMeasurementsRecurringMember" xlink:to="lab_us-gaap_FairValueMeasurementsRecurringMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AccountsReceivableNetCurrent_0eaaa7ef-921b-4af1-97a2-836acbc704e0_terseLabel_en-US" xlink:label="lab_us-gaap_AccountsReceivableNetCurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Accounts receivable, net</link:label>
    <link:label id="lab_us-gaap_AccountsReceivableNetCurrent_label_en-US" xlink:label="lab_us-gaap_AccountsReceivableNetCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accounts Receivable, after Allowance for Credit Loss, Current</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountsReceivableNetCurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountsReceivableNetCurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccountsReceivableNetCurrent" xlink:to="lab_us-gaap_AccountsReceivableNetCurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross_8a01c6f4-12d4-4645-8e1e-683184c763c6_verboseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Options granted</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross_25ee9c04-4757-4d91-a989-571f1ff92fce_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Granted (shares)</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Grants in Period, Gross</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems_a2bef9d8-b7d9-4bf0-87c5-ab1664d6fc21_terseLabel_en-US" xlink:label="lab_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Antidilutive Securities Excluded from Computation of Earnings Per Share [Line Items]</link:label>
    <link:label id="lab_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems_label_en-US" xlink:label="lab_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Antidilutive Securities Excluded from Computation of Earnings Per Share [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems" xlink:to="lab_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_PnsnAdjsPrrSvcCstMember_terseLabel_en-US" xlink:label="lab_ecd_PnsnAdjsPrrSvcCstMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Pension Adjustments Prior Service Cost</link:label>
    <link:label id="lab_ecd_PnsnAdjsPrrSvcCstMember_label_en-US" xlink:label="lab_ecd_PnsnAdjsPrrSvcCstMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Pension Adjustments Prior Service Cost [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_PnsnAdjsPrrSvcCstMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_PnsnAdjsPrrSvcCstMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_PnsnAdjsPrrSvcCstMember" xlink:to="lab_ecd_PnsnAdjsPrrSvcCstMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_MergersAcquisitionsAndDispositionsDisclosuresTextBlock_fab71aaf-2201-4b05-9b01-029bcea4c551_terseLabel_en-US" xlink:label="lab_us-gaap_MergersAcquisitionsAndDispositionsDisclosuresTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Acquisition of American DG Energy Inc.</link:label>
    <link:label id="lab_us-gaap_MergersAcquisitionsAndDispositionsDisclosuresTextBlock_label_en-US" xlink:label="lab_us-gaap_MergersAcquisitionsAndDispositionsDisclosuresTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Mergers, Acquisitions and Dispositions Disclosures [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MergersAcquisitionsAndDispositionsDisclosuresTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_MergersAcquisitionsAndDispositionsDisclosuresTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_MergersAcquisitionsAndDispositionsDisclosuresTextBlock" xlink:to="lab_us-gaap_MergersAcquisitionsAndDispositionsDisclosuresTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfOptionsExercisedInPeriod_90966375-ce4a-4df5-9846-3278c4fe13b5_terseLabel_en-US" xlink:label="lab_tgen_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfOptionsExercisedInPeriod" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Number of options exercised in period</link:label>
    <link:label id="lab_tgen_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfOptionsExercisedInPeriod_label_en-US" xlink:label="lab_tgen_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfOptionsExercisedInPeriod" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement By Share-Based Payment Award, Number Of Options Exercised In Period</link:label>
    <link:label id="lab_tgen_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfOptionsExercisedInPeriod_documentation_en-US" xlink:label="lab_tgen_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfOptionsExercisedInPeriod" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement By Share-Based Payment Award, Number Of Options Exercised In Period</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfOptionsExercisedInPeriod" xlink:href="tgen-20241231.xsd#tgen_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfOptionsExercisedInPeriod"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfOptionsExercisedInPeriod" xlink:to="lab_tgen_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfOptionsExercisedInPeriod" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_PnsnBnftsAdjFnTextBlock_terseLabel_en-US" xlink:label="lab_ecd_PnsnBnftsAdjFnTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Pension Benefits Adjustments, Footnote</link:label>
    <link:label id="lab_ecd_PnsnBnftsAdjFnTextBlock_label_en-US" xlink:label="lab_ecd_PnsnBnftsAdjFnTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Pension Benefits Adjustments, Footnote [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_PnsnBnftsAdjFnTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_PnsnBnftsAdjFnTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_PnsnBnftsAdjFnTextBlock" xlink:to="lab_ecd_PnsnBnftsAdjFnTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsNetAmortizationExpenseRollingMaturityAbstract_d7d644bd-b84e-4bd0-b87b-22382b577c9c_terseLabel_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsNetAmortizationExpenseRollingMaturityAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Finite-Lived Intangible Assets, Net, Amortization Expense, Rolling Maturity [Abstract]</link:label>
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsNetAmortizationExpenseRollingMaturityAbstract_label_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsNetAmortizationExpenseRollingMaturityAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Finite-Lived Intangible Assets, Net, Amortization Expense, Rolling Maturity [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsNetAmortizationExpenseRollingMaturityAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsNetAmortizationExpenseRollingMaturityAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsNetAmortizationExpenseRollingMaturityAbstract" xlink:to="lab_us-gaap_FiniteLivedIntangibleAssetsNetAmortizationExpenseRollingMaturityAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_TotalShareholderRtnVsPeerGroupTextBlock_terseLabel_en-US" xlink:label="lab_ecd_TotalShareholderRtnVsPeerGroupTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Total Shareholder Return Vs Peer Group</link:label>
    <link:label id="lab_ecd_TotalShareholderRtnVsPeerGroupTextBlock_label_en-US" xlink:label="lab_ecd_TotalShareholderRtnVsPeerGroupTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Total Shareholder Return Vs Peer Group [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TotalShareholderRtnVsPeerGroupTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_TotalShareholderRtnVsPeerGroupTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_TotalShareholderRtnVsPeerGroupTextBlock" xlink:to="lab_ecd_TotalShareholderRtnVsPeerGroupTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_DocumentAnnualReport_abdff356-ac35-423e-bdb6-a2a7f06d13c2_terseLabel_en-US" xlink:label="lab_dei_DocumentAnnualReport" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Document Annual Report</link:label>
    <link:label id="lab_dei_DocumentAnnualReport_label_en-US" xlink:label="lab_dei_DocumentAnnualReport" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Document Annual Report</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_DocumentAnnualReport" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentAnnualReport"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_DocumentAnnualReport" xlink:to="lab_dei_DocumentAnnualReport" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FinanceLeaseLiabilityPaymentsDueYearThree_de3a919e-2eb2-406b-8319-28376c6c1663_terseLabel_en-US" xlink:label="lab_us-gaap_FinanceLeaseLiabilityPaymentsDueYearThree" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">2027</link:label>
    <link:label id="lab_us-gaap_FinanceLeaseLiabilityPaymentsDueYearThree_label_en-US" xlink:label="lab_us-gaap_FinanceLeaseLiabilityPaymentsDueYearThree" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Finance Lease, Liability, to be Paid, Year Three</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinanceLeaseLiabilityPaymentsDueYearThree" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FinanceLeaseLiabilityPaymentsDueYearThree"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FinanceLeaseLiabilityPaymentsDueYearThree" xlink:to="lab_us-gaap_FinanceLeaseLiabilityPaymentsDueYearThree" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit_b16c062a-68f9-4ece-bc68-d9b7505ebc97_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Outstanding, Exercise Price Lower Range Limit (usd per share)</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Payment Arrangement, Option, Exercise Price Range, Lower Range Limit</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit" xlink:to="lab_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate_806b4a3e-aeb2-4e61-9e67-6b196474c131_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Risk-free interest rate</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Fair Value Assumptions, Risk Free Interest Rate</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_ProductsSegmentMember_17804e19-ba3a-479e-ab67-461cbcd42692_terseLabel_en-US" xlink:label="lab_tgen_ProductsSegmentMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Products Segment</link:label>
    <link:label id="lab_tgen_ProductsSegmentMember_label_en-US" xlink:label="lab_tgen_ProductsSegmentMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Products Segment [Member]</link:label>
    <link:label id="lab_tgen_ProductsSegmentMember_documentation_en-US" xlink:label="lab_tgen_ProductsSegmentMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Products Segment</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ProductsSegmentMember" xlink:href="tgen-20241231.xsd#tgen_ProductsSegmentMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_ProductsSegmentMember" xlink:to="lab_tgen_ProductsSegmentMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AmortizationOfIntangibleAssets_33f0a328-0540-467a-a031-0c6c99e56ea2_terseLabel_en-US" xlink:label="lab_us-gaap_AmortizationOfIntangibleAssets" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Amortization expense</link:label>
    <link:label id="lab_us-gaap_AmortizationOfIntangibleAssets_label_en-US" xlink:label="lab_us-gaap_AmortizationOfIntangibleAssets" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Amortization of Intangible Assets</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AmortizationOfIntangibleAssets" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AmortizationOfIntangibleAssets"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AmortizationOfIntangibleAssets" xlink:to="lab_us-gaap_AmortizationOfIntangibleAssets" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AccountingPoliciesAbstract_5757374e-07ca-497e-9749-f7fab363784b_terseLabel_en-US" xlink:label="lab_us-gaap_AccountingPoliciesAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Accounting Policies [Abstract]</link:label>
    <link:label id="lab_us-gaap_AccountingPoliciesAbstract_label_en-US" xlink:label="lab_us-gaap_AccountingPoliciesAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accounting Policies [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountingPoliciesAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountingPoliciesAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccountingPoliciesAbstract" xlink:to="lab_us-gaap_AccountingPoliciesAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LeaseholdImprovementsMember_b9676bfe-5210-43c4-903b-37f457e54a18_terseLabel_en-US" xlink:label="lab_us-gaap_LeaseholdImprovementsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Leasehold improvements</link:label>
    <link:label id="lab_us-gaap_LeaseholdImprovementsMember_label_en-US" xlink:label="lab_us-gaap_LeaseholdImprovementsMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Leasehold Improvements [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LeaseholdImprovementsMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LeaseholdImprovementsMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LeaseholdImprovementsMember" xlink:to="lab_us-gaap_LeaseholdImprovementsMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_BusinessCombinationDisclosureTextBlock_6faa17e7-e8bc-4f7f-af17-077fd1128e73_terseLabel_en-US" xlink:label="lab_us-gaap_BusinessCombinationDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Aegis Contract and Related Asset Acquisition</link:label>
    <link:label id="lab_us-gaap_BusinessCombinationDisclosureTextBlock_label_en-US" xlink:label="lab_us-gaap_BusinessCombinationDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Business Combination Disclosure [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationDisclosureTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationDisclosureTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessCombinationDisclosureTextBlock" xlink:to="lab_us-gaap_BusinessCombinationDisclosureTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_CurrentFiscalYearEndDate_89068bc0-b363-4028-8061-c58e90538604_terseLabel_en-US" xlink:label="lab_dei_CurrentFiscalYearEndDate" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Current Fiscal Year End Date</link:label>
    <link:label id="lab_dei_CurrentFiscalYearEndDate_label_en-US" xlink:label="lab_dei_CurrentFiscalYearEndDate" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Current Fiscal Year End Date</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_CurrentFiscalYearEndDate" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_CurrentFiscalYearEndDate"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_CurrentFiscalYearEndDate" xlink:to="lab_dei_CurrentFiscalYearEndDate" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount_2fbe13f6-cff0-4164-84a3-2f8aa450e47a_terseLabel_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Less: imputed interest</link:label>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount_label_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Lessee, Operating Lease, Liability, Undiscounted Excess Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" xlink:to="lab_us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansGrantedExercisePriceRangeLowerRangeLimit_d9eedb16-dd5e-4ff4-a426-12dbfb515d44_verboseLabel_en-US" xlink:label="lab_tgen_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansGrantedExercisePriceRangeLowerRangeLimit" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Options granted, exercise price range, lower limit (usd per share)</link:label>
    <link:label id="lab_tgen_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansGrantedExercisePriceRangeLowerRangeLimit_0d0c33f0-1ec9-4d87-89b1-c0202bd5b300_terseLabel_en-US" xlink:label="lab_tgen_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansGrantedExercisePriceRangeLowerRangeLimit" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Granted, Exercise Price Lower Range Limit (usd per share)</link:label>
    <link:label id="lab_tgen_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansGrantedExercisePriceRangeLowerRangeLimit_label_en-US" xlink:label="lab_tgen_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansGrantedExercisePriceRangeLowerRangeLimit" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share Based Compensation Shares Authorized Under Stock Option Plans, Granted, Exercise Price Range, Lower Range Limit</link:label>
    <link:label id="lab_tgen_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansGrantedExercisePriceRangeLowerRangeLimit_documentation_en-US" xlink:label="lab_tgen_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansGrantedExercisePriceRangeLowerRangeLimit" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Lower range of Exercise price per share of stock options granted during the period.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansGrantedExercisePriceRangeLowerRangeLimit" xlink:href="tgen-20241231.xsd#tgen_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansGrantedExercisePriceRangeLowerRangeLimit"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansGrantedExercisePriceRangeLowerRangeLimit" xlink:to="lab_tgen_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansGrantedExercisePriceRangeLowerRangeLimit" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_PeoName_terseLabel_en-US" xlink:label="lab_ecd_PeoName" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">PEO Name</link:label>
    <link:label id="lab_ecd_PeoName_label_en-US" xlink:label="lab_ecd_PeoName" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">PEO Name</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_PeoName" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_PeoName"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_PeoName" xlink:to="lab_ecd_PeoName" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_LesseeOperatingLeaseNumberOfBuildings_e69ce9eb-0f8a-4193-b95a-5b450c61331a_terseLabel_en-US" xlink:label="lab_tgen_LesseeOperatingLeaseNumberOfBuildings" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Number of buildings in lease agreements</link:label>
    <link:label id="lab_tgen_LesseeOperatingLeaseNumberOfBuildings_label_en-US" xlink:label="lab_tgen_LesseeOperatingLeaseNumberOfBuildings" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Lessee, Operating Lease, Number Of Buildings</link:label>
    <link:label id="lab_tgen_LesseeOperatingLeaseNumberOfBuildings_documentation_en-US" xlink:label="lab_tgen_LesseeOperatingLeaseNumberOfBuildings" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Lessee, Operating Lease, Number Of Buildings</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_LesseeOperatingLeaseNumberOfBuildings" xlink:href="tgen-20241231.xsd#tgen_LesseeOperatingLeaseNumberOfBuildings"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_LesseeOperatingLeaseNumberOfBuildings" xlink:to="lab_tgen_LesseeOperatingLeaseNumberOfBuildings" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_GuaranteesAbstract_935bcb1a-03f9-4c82-a482-8c507310e071_terseLabel_en-US" xlink:label="lab_us-gaap_GuaranteesAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Guarantees [Abstract]</link:label>
    <link:label id="lab_us-gaap_GuaranteesAbstract_label_en-US" xlink:label="lab_us-gaap_GuaranteesAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Guarantees [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GuaranteesAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GuaranteesAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_GuaranteesAbstract" xlink:to="lab_us-gaap_GuaranteesAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_5e3312e2-7e8f-4711-8a0f-9afc6e9003bf_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Award Type [Domain]</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Award Type [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_BusinessCombinationProvisionalInformationInitialAccountingIncompleteAdjustmentIntangibles_69d5d184-95c9-42f9-a671-0dcbd33faecf_terseLabel_en-US" xlink:label="lab_us-gaap_BusinessCombinationProvisionalInformationInitialAccountingIncompleteAdjustmentIntangibles" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Intangible adjustment</link:label>
    <link:label id="lab_us-gaap_BusinessCombinationProvisionalInformationInitialAccountingIncompleteAdjustmentIntangibles_label_en-US" xlink:label="lab_us-gaap_BusinessCombinationProvisionalInformationInitialAccountingIncompleteAdjustmentIntangibles" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Business Combination, Provisional Information, Initial Accounting Incomplete, Adjustment, Intangibles</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationProvisionalInformationInitialAccountingIncompleteAdjustmentIntangibles" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationProvisionalInformationInitialAccountingIncompleteAdjustmentIntangibles"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessCombinationProvisionalInformationInitialAccountingIncompleteAdjustmentIntangibles" xlink:to="lab_us-gaap_BusinessCombinationProvisionalInformationInitialAccountingIncompleteAdjustmentIntangibles" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_CompActuallyPaidVsCoSelectedMeasureTextBlock_terseLabel_en-US" xlink:label="lab_ecd_CompActuallyPaidVsCoSelectedMeasureTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Compensation Actually Paid vs. Company Selected Measure</link:label>
    <link:label id="lab_ecd_CompActuallyPaidVsCoSelectedMeasureTextBlock_label_en-US" xlink:label="lab_ecd_CompActuallyPaidVsCoSelectedMeasureTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Compensation Actually Paid vs. Company Selected Measure [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_CompActuallyPaidVsCoSelectedMeasureTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_CompActuallyPaidVsCoSelectedMeasureTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_CompActuallyPaidVsCoSelectedMeasureTextBlock" xlink:to="lab_ecd_CompActuallyPaidVsCoSelectedMeasureTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_srt_RestatementAxis_6ea42d00-ebcf-443b-891a-0c0a82b37809_terseLabel_en-US" xlink:label="lab_srt_RestatementAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Revision of Prior Period [Axis]</link:label>
    <link:label id="lab_srt_RestatementAxis_label_en-US" xlink:label="lab_srt_RestatementAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Revision of Prior Period [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RestatementAxis" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RestatementAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_RestatementAxis" xlink:to="lab_srt_RestatementAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_NonPeoNeoMember_terseLabel_en-US" xlink:label="lab_ecd_NonPeoNeoMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Non-PEO NEO</link:label>
    <link:label id="lab_ecd_NonPeoNeoMember_label_en-US" xlink:label="lab_ecd_NonPeoNeoMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Non-PEO NEO [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_NonPeoNeoMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_NonPeoNeoMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_NonPeoNeoMember" xlink:to="lab_ecd_NonPeoNeoMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetUsefulLife_f2fdbd3b-c3c4-4f4d-9e0d-6774b724ffe4_terseLabel_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetUsefulLife" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Finited lived intangible assets, estimated useful life</link:label>
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetUsefulLife_label_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetUsefulLife" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Finite-Lived Intangible Asset, Useful Life</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetUsefulLife" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetUsefulLife"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetUsefulLife" xlink:to="lab_us-gaap_FiniteLivedIntangibleAssetUsefulLife" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_AssetAcquisitionInventory_d867b1df-4249-4287-9409-0a755de42870_terseLabel_en-US" xlink:label="lab_tgen_AssetAcquisitionInventory" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Inventory</link:label>
    <link:label id="lab_tgen_AssetAcquisitionInventory_label_en-US" xlink:label="lab_tgen_AssetAcquisitionInventory" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Asset Acquisition, Inventory</link:label>
    <link:label id="lab_tgen_AssetAcquisitionInventory_documentation_en-US" xlink:label="lab_tgen_AssetAcquisitionInventory" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Asset Acquisition, Inventory</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AssetAcquisitionInventory" xlink:href="tgen-20241231.xsd#tgen_AssetAcquisitionInventory"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_AssetAcquisitionInventory" xlink:to="lab_tgen_AssetAcquisitionInventory" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AdditionalPaidInCapitalMember_3b153daa-de2a-407d-b3aa-053ea10c7404_terseLabel_en-US" xlink:label="lab_us-gaap_AdditionalPaidInCapitalMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Additional Paid-in Capital</link:label>
    <link:label id="lab_us-gaap_AdditionalPaidInCapitalMember_label_en-US" xlink:label="lab_us-gaap_AdditionalPaidInCapitalMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Additional Paid-in Capital [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdditionalPaidInCapitalMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AdditionalPaidInCapitalMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AdditionalPaidInCapitalMember" xlink:to="lab_us-gaap_AdditionalPaidInCapitalMember" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_ChillerMember_033a2de6-b69a-480b-91c5-95df6e2ab4ce_terseLabel_en-US" xlink:label="lab_tgen_ChillerMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Chiller</link:label>
    <link:label id="lab_tgen_ChillerMember_label_en-US" xlink:label="lab_tgen_ChillerMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Chiller [Member]</link:label>
    <link:label id="lab_tgen_ChillerMember_documentation_en-US" xlink:label="lab_tgen_ChillerMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Chiller</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ChillerMember" xlink:href="tgen-20241231.xsd#tgen_ChillerMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_ChillerMember" xlink:to="lab_tgen_ChillerMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FinanceLeaseLiabilityNoncurrent_b1b0e7c3-5434-4e5c-9809-f773af9079c1_terseLabel_en-US" xlink:label="lab_us-gaap_FinanceLeaseLiabilityNoncurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Finance lease obligations, net of current portion</link:label>
    <link:label id="lab_us-gaap_FinanceLeaseLiabilityNoncurrent_label_en-US" xlink:label="lab_us-gaap_FinanceLeaseLiabilityNoncurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Finance Lease, Liability, Noncurrent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinanceLeaseLiabilityNoncurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FinanceLeaseLiabilityNoncurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FinanceLeaseLiabilityNoncurrent" xlink:to="lab_us-gaap_FinanceLeaseLiabilityNoncurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_GoodwillDisclosureTextBlock_7dfa07b2-6632-4f0f-85fa-ed43e0d8dfd7_terseLabel_en-US" xlink:label="lab_us-gaap_GoodwillDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Goodwill</link:label>
    <link:label id="lab_us-gaap_GoodwillDisclosureTextBlock_label_en-US" xlink:label="lab_us-gaap_GoodwillDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Goodwill Disclosure [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillDisclosureTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GoodwillDisclosureTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_GoodwillDisclosureTextBlock" xlink:to="lab_us-gaap_GoodwillDisclosureTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_NotesPayable_474a6d00-dd9e-477f-b62f-1a7454adee52_terseLabel_en-US" xlink:label="lab_us-gaap_NotesPayable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Related party notes payable</link:label>
    <link:label id="lab_us-gaap_NotesPayable_label_en-US" xlink:label="lab_us-gaap_NotesPayable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Notes Payable</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NotesPayable" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NotesPayable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NotesPayable" xlink:to="lab_us-gaap_NotesPayable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock_ed23523d-84b6-42ed-abad-15499a974fe7_terseLabel_en-US" xlink:label="lab_us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Recent Accounting Pronouncements</link:label>
    <link:label id="lab_us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock_label_en-US" xlink:label="lab_us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">New Accounting Pronouncements, Policy [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" xlink:to="lab_us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_srt_TitleOfIndividualWithRelationshipToEntityDomain_e9890d87-5d13-4188-bbad-e207326f98a8_terseLabel_en-US" xlink:label="lab_srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Title and Position [Domain]</link:label>
    <link:label id="lab_srt_TitleOfIndividualWithRelationshipToEntityDomain_label_en-US" xlink:label="lab_srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Title and Position [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_TitleOfIndividualWithRelationshipToEntityDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:to="lab_srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_c6ecb79e-569b-4115-b772-bfcbd79fd488_terseLabel_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Finite-Lived Intangible Assets by Major Class [Axis]</link:label>
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_label_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Finite-Lived Intangible Assets by Major Class [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="lab_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FinanceLeaseLiabilityPaymentsDueYearFour_a623eb51-01c4-4200-9f06-839c7b41010d_terseLabel_en-US" xlink:label="lab_us-gaap_FinanceLeaseLiabilityPaymentsDueYearFour" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">2028</link:label>
    <link:label id="lab_us-gaap_FinanceLeaseLiabilityPaymentsDueYearFour_label_en-US" xlink:label="lab_us-gaap_FinanceLeaseLiabilityPaymentsDueYearFour" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Finance Lease, Liability, to be Paid, Year Four</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinanceLeaseLiabilityPaymentsDueYearFour" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FinanceLeaseLiabilityPaymentsDueYearFour"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FinanceLeaseLiabilityPaymentsDueYearFour" xlink:to="lab_us-gaap_FinanceLeaseLiabilityPaymentsDueYearFour" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_134bc4ca-ed08-4eb2-889f-3c0822661565_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Less - accumulated amortization</link:label>
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_label_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Finite-Lived Intangible Assets, Accumulated Amortization</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:to="lab_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_MeasureName_terseLabel_en-US" xlink:label="lab_ecd_MeasureName" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Name</link:label>
    <link:label id="lab_ecd_MeasureName_label_en-US" xlink:label="lab_ecd_MeasureName" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Measure Name</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_MeasureName" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_MeasureName"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_MeasureName" xlink:to="lab_ecd_MeasureName" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntityInteractiveDataCurrent_9a6960b9-e4ea-4e76-8660-2341945be6ea_terseLabel_en-US" xlink:label="lab_dei_EntityInteractiveDataCurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Entity Interactive Data Current</link:label>
    <link:label id="lab_dei_EntityInteractiveDataCurrent_label_en-US" xlink:label="lab_dei_EntityInteractiveDataCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Interactive Data Current</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityInteractiveDataCurrent" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityInteractiveDataCurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityInteractiveDataCurrent" xlink:to="lab_dei_EntityInteractiveDataCurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_CogenerationMember_0b8e94a4-acd0-468d-ba22-2592a8bd540e_terseLabel_en-US" xlink:label="lab_tgen_CogenerationMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Cogeneration</link:label>
    <link:label id="lab_tgen_CogenerationMember_label_en-US" xlink:label="lab_tgen_CogenerationMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Cogeneration [Member]</link:label>
    <link:label id="lab_tgen_CogenerationMember_documentation_en-US" xlink:label="lab_tgen_CogenerationMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Cogeneration</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_CogenerationMember" xlink:href="tgen-20241231.xsd#tgen_CogenerationMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_CogenerationMember" xlink:to="lab_tgen_CogenerationMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_NumberOfOperatingSegments_579d30e8-72ef-4768-a740-5e7bff55bd60_terseLabel_en-US" xlink:label="lab_us-gaap_NumberOfOperatingSegments" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Number of operating segments</link:label>
    <link:label id="lab_us-gaap_NumberOfOperatingSegments_label_en-US" xlink:label="lab_us-gaap_NumberOfOperatingSegments" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Number of Operating Segments</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NumberOfOperatingSegments" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NumberOfOperatingSegments"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NumberOfOperatingSegments" xlink:to="lab_us-gaap_NumberOfOperatingSegments" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncomeTaxesPaid_be6c4ca1-92a8-443a-8d69-8b0dc0a42052_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeTaxesPaid" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Cash paid for taxes</link:label>
    <link:label id="lab_us-gaap_IncomeTaxesPaid_label_en-US" xlink:label="lab_us-gaap_IncomeTaxesPaid" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Income Taxes Paid</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxesPaid" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxesPaid"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeTaxesPaid" xlink:to="lab_us-gaap_IncomeTaxesPaid" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DisaggregationOfRevenueTable_67e19b65-09d2-4e15-b070-86c9b9e69d28_terseLabel_en-US" xlink:label="lab_us-gaap_DisaggregationOfRevenueTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Disaggregation of Revenue [Table]</link:label>
    <link:label id="lab_us-gaap_DisaggregationOfRevenueTable_label_en-US" xlink:label="lab_us-gaap_DisaggregationOfRevenueTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Disaggregation of Revenue [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisaggregationOfRevenueTable" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisaggregationOfRevenueTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DisaggregationOfRevenueTable" xlink:to="lab_us-gaap_DisaggregationOfRevenueTable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensation_7331b8ce-05cf-40d8-8401-5663241ad218_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensation" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Stock-based compensation</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensation_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensation" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Payment Arrangement, Noncash Expense</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensation" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensation"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensation" xlink:to="lab_us-gaap_ShareBasedCompensation" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_MaintenanceAgreementsApplicablePercentage_6857f847-7308-4cc0-82fd-042cfa097e49_terseLabel_en-US" xlink:label="lab_tgen_MaintenanceAgreementsApplicablePercentage" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Maintenance agreements, applicable percentage</link:label>
    <link:label id="lab_tgen_MaintenanceAgreementsApplicablePercentage_label_en-US" xlink:label="lab_tgen_MaintenanceAgreementsApplicablePercentage" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Maintenance Agreements, Applicable Percentage</link:label>
    <link:label id="lab_tgen_MaintenanceAgreementsApplicablePercentage_documentation_en-US" xlink:label="lab_tgen_MaintenanceAgreementsApplicablePercentage" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Maintenance Agreements, Applicable Percentage</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_MaintenanceAgreementsApplicablePercentage" xlink:href="tgen-20241231.xsd#tgen_MaintenanceAgreementsApplicablePercentage"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_MaintenanceAgreementsApplicablePercentage" xlink:to="lab_tgen_MaintenanceAgreementsApplicablePercentage" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SupplementalCashFlowInformationAbstract_b2584e43-cc9a-41d9-907d-c1c048ab62ce_terseLabel_en-US" xlink:label="lab_us-gaap_SupplementalCashFlowInformationAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Supplemental disclosures of cash flows information:</link:label>
    <link:label id="lab_us-gaap_SupplementalCashFlowInformationAbstract_label_en-US" xlink:label="lab_us-gaap_SupplementalCashFlowInformationAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Supplemental Cash Flow Information [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SupplementalCashFlowInformationAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SupplementalCashFlowInformationAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SupplementalCashFlowInformationAbstract" xlink:to="lab_us-gaap_SupplementalCashFlowInformationAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_BusinessCombinationProvisionalInformationInitialAccountingIncompleteAdjustmentFinancialLiabilities_54342e8b-945e-4098-b289-f7a9663869ee_terseLabel_en-US" xlink:label="lab_us-gaap_BusinessCombinationProvisionalInformationInitialAccountingIncompleteAdjustmentFinancialLiabilities" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Accounts payable adjustment</link:label>
    <link:label id="lab_us-gaap_BusinessCombinationProvisionalInformationInitialAccountingIncompleteAdjustmentFinancialLiabilities_label_en-US" xlink:label="lab_us-gaap_BusinessCombinationProvisionalInformationInitialAccountingIncompleteAdjustmentFinancialLiabilities" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Business Combination, Provisional Information, Initial Accounting Incomplete, Adjustment, Financial Liabilities</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationProvisionalInformationInitialAccountingIncompleteAdjustmentFinancialLiabilities" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationProvisionalInformationInitialAccountingIncompleteAdjustmentFinancialLiabilities"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessCombinationProvisionalInformationInitialAccountingIncompleteAdjustmentFinancialLiabilities" xlink:to="lab_us-gaap_BusinessCombinationProvisionalInformationInitialAccountingIncompleteAdjustmentFinancialLiabilities" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_OperatingAndFinanceLeaseLiability_0919256c-f4af-450b-99e4-c4bac212cfa1_terseLabel_en-US" xlink:label="lab_tgen_OperatingAndFinanceLeaseLiability" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Total</link:label>
    <link:label id="lab_tgen_OperatingAndFinanceLeaseLiability_label_en-US" xlink:label="lab_tgen_OperatingAndFinanceLeaseLiability" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Operating and Finance Lease, Liability</link:label>
    <link:label id="lab_tgen_OperatingAndFinanceLeaseLiability_documentation_en-US" xlink:label="lab_tgen_OperatingAndFinanceLeaseLiability" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Operating and Finance Lease, Liability</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_OperatingAndFinanceLeaseLiability" xlink:href="tgen-20241231.xsd#tgen_OperatingAndFinanceLeaseLiability"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_OperatingAndFinanceLeaseLiability" xlink:to="lab_tgen_OperatingAndFinanceLeaseLiability" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_LesseeOperatingLeaseOptionToExtendPeriod_b75a396a-4e34-4398-9fff-e17f984061f9_terseLabel_en-US" xlink:label="lab_tgen_LesseeOperatingLeaseOptionToExtendPeriod" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Option to extend, period</link:label>
    <link:label id="lab_tgen_LesseeOperatingLeaseOptionToExtendPeriod_label_en-US" xlink:label="lab_tgen_LesseeOperatingLeaseOptionToExtendPeriod" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Lessee, Operating Lease, Option To Extend, Period</link:label>
    <link:label id="lab_tgen_LesseeOperatingLeaseOptionToExtendPeriod_documentation_en-US" xlink:label="lab_tgen_LesseeOperatingLeaseOptionToExtendPeriod" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Lessee, Operating Lease, Option To Extend, Period</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_LesseeOperatingLeaseOptionToExtendPeriod" xlink:href="tgen-20241231.xsd#tgen_LesseeOperatingLeaseOptionToExtendPeriod"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_LesseeOperatingLeaseOptionToExtendPeriod" xlink:to="lab_tgen_LesseeOperatingLeaseOptionToExtendPeriod" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncreaseDecreaseInOperatingLiabilitiesAbstract_41f00f64-cfdc-402f-b8c5-d587998cb633_terseLabel_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInOperatingLiabilitiesAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Increase (decrease) in:</link:label>
    <link:label id="lab_us-gaap_IncreaseDecreaseInOperatingLiabilitiesAbstract_label_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInOperatingLiabilitiesAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Increase (Decrease) in Operating Liabilities [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInOperatingLiabilitiesAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInOperatingLiabilitiesAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncreaseDecreaseInOperatingLiabilitiesAbstract" xlink:to="lab_us-gaap_IncreaseDecreaseInOperatingLiabilitiesAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_NonoperatingIncomeExpense_17d546b4-8810-40f6-a677-aec7ef420baa_totalLabel_en-US" xlink:label="lab_us-gaap_NonoperatingIncomeExpense" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Total other expense, net</link:label>
    <link:label id="lab_us-gaap_NonoperatingIncomeExpense_label_en-US" xlink:label="lab_us-gaap_NonoperatingIncomeExpense" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Nonoperating Income (Expense)</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NonoperatingIncomeExpense" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NonoperatingIncomeExpense"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NonoperatingIncomeExpense" xlink:to="lab_us-gaap_NonoperatingIncomeExpense" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ServiceMember_e873e57b-976c-4afe-9bac-91a071b52a33_terseLabel_en-US" xlink:label="lab_us-gaap_ServiceMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Services</link:label>
    <link:label id="lab_us-gaap_ServiceMember_label_en-US" xlink:label="lab_us-gaap_ServiceMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Service [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ServiceMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ServiceMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ServiceMember" xlink:to="lab_us-gaap_ServiceMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRollingYearTwo_d07db2e5-2a2a-4a2a-acbe-ebd81595ca15_terseLabel_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRollingYearTwo" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">2026</link:label>
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRollingYearTwo_label_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRollingYearTwo" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Finite-Lived Intangible Assets, Amortization Expense, Rolling Year Two</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRollingYearTwo" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRollingYearTwo"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRollingYearTwo" xlink:to="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRollingYearTwo" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ConcentrationRiskBenchmarkDomain_38c56c82-c27e-41d1-83ff-01334ed62396_terseLabel_en-US" xlink:label="lab_us-gaap_ConcentrationRiskBenchmarkDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Concentration Risk Benchmark [Domain]</link:label>
    <link:label id="lab_us-gaap_ConcentrationRiskBenchmarkDomain_label_en-US" xlink:label="lab_us-gaap_ConcentrationRiskBenchmarkDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Concentration Risk Benchmark [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskBenchmarkDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskBenchmarkDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ConcentrationRiskBenchmarkDomain" xlink:to="lab_us-gaap_ConcentrationRiskBenchmarkDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EnergyServiceMember_5afef5fe-21c5-4c5c-8853-90a0f1461187_terseLabel_en-US" xlink:label="lab_us-gaap_EnergyServiceMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Energy production</link:label>
    <link:label id="lab_us-gaap_EnergyServiceMember_label_en-US" xlink:label="lab_us-gaap_EnergyServiceMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Energy Service [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EnergyServiceMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EnergyServiceMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EnergyServiceMember" xlink:to="lab_us-gaap_EnergyServiceMember" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_AuditorFirmId_48907223-4318-4766-b66a-dd5aa6845649_terseLabel_en-US" xlink:label="lab_dei_AuditorFirmId" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Auditor Firm ID</link:label>
    <link:label id="lab_dei_AuditorFirmId_label_en-US" xlink:label="lab_dei_AuditorFirmId" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Auditor Firm ID</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_AuditorFirmId" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_AuditorFirmId"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_AuditorFirmId" xlink:to="lab_dei_AuditorFirmId" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OperatingIncomeLoss_838f7a33-6105-4c40-a78c-9c11fe708a65_totalLabel_en-US" xlink:label="lab_us-gaap_OperatingIncomeLoss" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Loss from operations</link:label>
    <link:label id="lab_us-gaap_OperatingIncomeLoss_f1a2e69a-6a6b-46b3-8417-3ea8d136b0d5_terseLabel_en-US" xlink:label="lab_us-gaap_OperatingIncomeLoss" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Loss from operations</link:label>
    <link:label id="lab_us-gaap_OperatingIncomeLoss_label_en-US" xlink:label="lab_us-gaap_OperatingIncomeLoss" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Operating Income (Loss)</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingIncomeLoss" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingIncomeLoss"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OperatingIncomeLoss" xlink:to="lab_us-gaap_OperatingIncomeLoss" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance_f6f09511-37ff-45fb-919d-148cc2d3a0ed_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Change in valuation allowance</link:label>
    <link:label id="lab_us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance_label_en-US" xlink:label="lab_us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Effective Income Tax Rate Reconciliation, Change in Deferred Tax Assets Valuation Allowance, Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance" xlink:to="lab_us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LiabilitiesAndStockholdersEquity_3491da42-39ad-4982-8e89-3e39fa63990d_totalLabel_en-US" xlink:label="lab_us-gaap_LiabilitiesAndStockholdersEquity" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">TOTAL LIABILITIES AND STOCKHOLDERS&#8217; EQUITY</link:label>
    <link:label id="lab_us-gaap_LiabilitiesAndStockholdersEquity_label_en-US" xlink:label="lab_us-gaap_LiabilitiesAndStockholdersEquity" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Liabilities and Equity</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LiabilitiesAndStockholdersEquity" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LiabilitiesAndStockholdersEquity"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LiabilitiesAndStockholdersEquity" xlink:to="lab_us-gaap_LiabilitiesAndStockholdersEquity" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SubsequentEventsTextBlock_cabce391-712e-4d27-8b01-2210b0c513af_terseLabel_en-US" xlink:label="lab_us-gaap_SubsequentEventsTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Subsequent Events</link:label>
    <link:label id="lab_us-gaap_SubsequentEventsTextBlock_label_en-US" xlink:label="lab_us-gaap_SubsequentEventsTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Subsequent Events [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventsTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsequentEventsTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SubsequentEventsTextBlock" xlink:to="lab_us-gaap_SubsequentEventsTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_AssetAcquisitionConsiderationTransferredNonCashContingentConsideration_51993d6c-360c-4377-ba9b-08a323ca3d7f_terseLabel_en-US" xlink:label="lab_tgen_AssetAcquisitionConsiderationTransferredNonCashContingentConsideration" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Contingent consideration</link:label>
    <link:label id="lab_tgen_AssetAcquisitionConsiderationTransferredNonCashContingentConsideration_label_en-US" xlink:label="lab_tgen_AssetAcquisitionConsiderationTransferredNonCashContingentConsideration" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Asset Acquisition, Consideration Transferred, Non-Cash, Contingent Consideration</link:label>
    <link:label id="lab_tgen_AssetAcquisitionConsiderationTransferredNonCashContingentConsideration_documentation_en-US" xlink:label="lab_tgen_AssetAcquisitionConsiderationTransferredNonCashContingentConsideration" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Asset Acquisition, Consideration Transferred, Non-Cash, Contingent Consideration</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AssetAcquisitionConsiderationTransferredNonCashContingentConsideration" xlink:href="tgen-20241231.xsd#tgen_AssetAcquisitionConsiderationTransferredNonCashContingentConsideration"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_AssetAcquisitionConsiderationTransferredNonCashContingentConsideration" xlink:to="lab_tgen_AssetAcquisitionConsiderationTransferredNonCashContingentConsideration" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_Rule10b51ArrTrmntdFlag_terseLabel_en-US" xlink:label="lab_ecd_Rule10b51ArrTrmntdFlag" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Rule 10b5-1 Arrangement Terminated</link:label>
    <link:label id="lab_ecd_Rule10b51ArrTrmntdFlag_label_en-US" xlink:label="lab_ecd_Rule10b51ArrTrmntdFlag" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Rule 10b5-1 Arrangement Terminated [Flag]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_Rule10b51ArrTrmntdFlag" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_Rule10b51ArrTrmntdFlag"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_Rule10b51ArrTrmntdFlag" xlink:to="lab_ecd_Rule10b51ArrTrmntdFlag" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FairValueByFairValueHierarchyLevelAxis_46d28325-f3fe-405a-8849-d82dbf2c7bdb_terseLabel_en-US" xlink:label="lab_us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Fair Value Hierarchy and NAV [Axis]</link:label>
    <link:label id="lab_us-gaap_FairValueByFairValueHierarchyLevelAxis_label_en-US" xlink:label="lab_us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Fair Value Hierarchy and NAV [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueByFairValueHierarchyLevelAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:to="lab_us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_EngineeredAccessoriesMember_2c412433-a6c5-465f-9348-7219aa9e1267_terseLabel_en-US" xlink:label="lab_tgen_EngineeredAccessoriesMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Engineered Accessories</link:label>
    <link:label id="lab_tgen_EngineeredAccessoriesMember_label_en-US" xlink:label="lab_tgen_EngineeredAccessoriesMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Engineered Accessories [Member]</link:label>
    <link:label id="lab_tgen_EngineeredAccessoriesMember_documentation_en-US" xlink:label="lab_tgen_EngineeredAccessoriesMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Engineered Accessories</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_EngineeredAccessoriesMember" xlink:href="tgen-20241231.xsd#tgen_EngineeredAccessoriesMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_EngineeredAccessoriesMember" xlink:to="lab_tgen_EngineeredAccessoriesMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FinanceLeaseLiabilityPaymentsDueYearTwo_6520697a-d8f5-4580-b052-7dc16d5b93aa_terseLabel_en-US" xlink:label="lab_us-gaap_FinanceLeaseLiabilityPaymentsDueYearTwo" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">2026</link:label>
    <link:label id="lab_us-gaap_FinanceLeaseLiabilityPaymentsDueYearTwo_label_en-US" xlink:label="lab_us-gaap_FinanceLeaseLiabilityPaymentsDueYearTwo" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Finance Lease, Liability, to be Paid, Year Two</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinanceLeaseLiabilityPaymentsDueYearTwo" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FinanceLeaseLiabilityPaymentsDueYearTwo"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FinanceLeaseLiabilityPaymentsDueYearTwo" xlink:to="lab_us-gaap_FinanceLeaseLiabilityPaymentsDueYearTwo" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansCancelledAndForfeitedExercisePriceRangeLowerRangeLimit_b27ded26-40ec-4919-b28d-5c1caee0f647_terseLabel_en-US" xlink:label="lab_tgen_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansCancelledAndForfeitedExercisePriceRangeLowerRangeLimit" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Canceled and Forfeited, Exercise Price Lower Range Limit (usd per share)</link:label>
    <link:label id="lab_tgen_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansCancelledAndForfeitedExercisePriceRangeLowerRangeLimit_label_en-US" xlink:label="lab_tgen_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansCancelledAndForfeitedExercisePriceRangeLowerRangeLimit" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share Based Compensation Shares Authorized Under Stock Option Plans, Cancelled and Forfeited, Exercise Price Range, Lower Range Limit</link:label>
    <link:label id="lab_tgen_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansCancelledAndForfeitedExercisePriceRangeLowerRangeLimit_documentation_en-US" xlink:label="lab_tgen_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansCancelledAndForfeitedExercisePriceRangeLowerRangeLimit" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Lower range of Exercise price per share of stock options cancelled and forfeited during the period.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansCancelledAndForfeitedExercisePriceRangeLowerRangeLimit" xlink:href="tgen-20241231.xsd#tgen_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansCancelledAndForfeitedExercisePriceRangeLowerRangeLimit"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansCancelledAndForfeitedExercisePriceRangeLowerRangeLimit" xlink:to="lab_tgen_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansCancelledAndForfeitedExercisePriceRangeLowerRangeLimit" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_8a992f57-8ef9-4449-a6dd-bffc4eb8eb07_terseLabel_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Finite-Lived Intangible Assets, Major Class Name [Domain]</link:label>
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_label_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Finite-Lived Intangible Assets, Major Class Name [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="lab_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_CostOfGoodsSoldShippingAndHandling_db0888fc-d590-4c63-b13e-cf53d062884b_terseLabel_en-US" xlink:label="lab_tgen_CostOfGoodsSoldShippingAndHandling" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Cost of goods sold, shipping and handling</link:label>
    <link:label id="lab_tgen_CostOfGoodsSoldShippingAndHandling_label_en-US" xlink:label="lab_tgen_CostOfGoodsSoldShippingAndHandling" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Cost Of Goods Sold, Shipping And Handling</link:label>
    <link:label id="lab_tgen_CostOfGoodsSoldShippingAndHandling_documentation_en-US" xlink:label="lab_tgen_CostOfGoodsSoldShippingAndHandling" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Cost Of Goods Sold, Shipping And Handling</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_CostOfGoodsSoldShippingAndHandling" xlink:href="tgen-20241231.xsd#tgen_CostOfGoodsSoldShippingAndHandling"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_CostOfGoodsSoldShippingAndHandling" xlink:to="lab_tgen_CostOfGoodsSoldShippingAndHandling" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability_f54d4496-4b97-42c5-889c-fe0630d6dcdf_terseLabel_en-US" xlink:label="lab_us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Right-of-use assets obtained in exchange for operating lease liabilities</link:label>
    <link:label id="lab_us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability_label_en-US" xlink:label="lab_us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Right-of-Use Asset Obtained in Exchange for Operating Lease Liability</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability" xlink:to="lab_us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ProceedsFromNotesPayable_49cc5a04-9e84-4592-8534-95f280da3f85_terseLabel_en-US" xlink:label="lab_us-gaap_ProceedsFromNotesPayable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Proceeds from related party note</link:label>
    <link:label id="lab_us-gaap_ProceedsFromNotesPayable_label_en-US" xlink:label="lab_us-gaap_ProceedsFromNotesPayable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Proceeds from Notes Payable</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProceedsFromNotesPayable" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProceedsFromNotesPayable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ProceedsFromNotesPayable" xlink:to="lab_us-gaap_ProceedsFromNotesPayable" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_UndrlygSecurityMktPriceChngPct_terseLabel_en-US" xlink:label="lab_ecd_UndrlygSecurityMktPriceChngPct" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Underlying Security Market Price Change</link:label>
    <link:label id="lab_ecd_UndrlygSecurityMktPriceChngPct_label_en-US" xlink:label="lab_ecd_UndrlygSecurityMktPriceChngPct" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Underlying Security Market Price Change, Percent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_UndrlygSecurityMktPriceChngPct" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_UndrlygSecurityMktPriceChngPct"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_UndrlygSecurityMktPriceChngPct" xlink:to="lab_ecd_UndrlygSecurityMktPriceChngPct" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRollingYearThree_1757a33b-8bc4-4500-847a-a6246d169a5f_terseLabel_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRollingYearThree" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">2027</link:label>
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRollingYearThree_label_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRollingYearThree" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Finite-Lived Intangible Assets, Amortization Expense, Rolling Year Three</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRollingYearThree" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRollingYearThree"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRollingYearThree" xlink:to="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRollingYearThree" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_MeasurementInputTypeAxis_af23ec16-a33e-4e8e-a2e2-ac258a7451a5_terseLabel_en-US" xlink:label="lab_us-gaap_MeasurementInputTypeAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Measurement Input Type [Axis]</link:label>
    <link:label id="lab_us-gaap_MeasurementInputTypeAxis_label_en-US" xlink:label="lab_us-gaap_MeasurementInputTypeAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Measurement Input Type [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MeasurementInputTypeAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_MeasurementInputTypeAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_MeasurementInputTypeAxis" xlink:to="lab_us-gaap_MeasurementInputTypeAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_IndividualAxis_terseLabel_en-US" xlink:label="lab_ecd_IndividualAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Individual:</link:label>
    <link:label id="lab_ecd_IndividualAxis_label_en-US" xlink:label="lab_ecd_IndividualAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Individual [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_IndividualAxis" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_IndividualAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_IndividualAxis" xlink:to="lab_ecd_IndividualAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_RelatedPartyTransactionPeriod_633da15d-51ec-4a3d-b6c6-25640448733e_terseLabel_en-US" xlink:label="lab_tgen_RelatedPartyTransactionPeriod" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Related party transaction, period</link:label>
    <link:label id="lab_tgen_RelatedPartyTransactionPeriod_label_en-US" xlink:label="lab_tgen_RelatedPartyTransactionPeriod" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Related Party Transaction, Period</link:label>
    <link:label id="lab_tgen_RelatedPartyTransactionPeriod_documentation_en-US" xlink:label="lab_tgen_RelatedPartyTransactionPeriod" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Related Party Transaction, Period</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_RelatedPartyTransactionPeriod" xlink:href="tgen-20241231.xsd#tgen_RelatedPartyTransactionPeriod"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_RelatedPartyTransactionPeriod" xlink:to="lab_tgen_RelatedPartyTransactionPeriod" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1_3c9c72b4-76d6-4cac-b0b3-5c6ffbc82fda_terseLabel_en-US" xlink:label="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Expected life</link:label>
    <link:label id="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1_label_en-US" xlink:label="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Fair Value Assumptions, Expected Term</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" xlink:to="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_InventoryNet_6c4dacbe-7d1e-4447-9ec5-a4f3b9d91bfb_terseLabel_en-US" xlink:label="lab_us-gaap_InventoryNet" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Inventory, net</link:label>
    <link:label id="lab_us-gaap_InventoryNet_75140c11-fcd4-483c-8d29-f0ce9e310eaa_totalLabel_en-US" xlink:label="lab_us-gaap_InventoryNet" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Inventory, Net</link:label>
    <link:label id="lab_us-gaap_InventoryNet_label_en-US" xlink:label="lab_us-gaap_InventoryNet" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Inventory, Net</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryNet" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InventoryNet"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_InventoryNet" xlink:to="lab_us-gaap_InventoryNet" xlink:type="arc" order="1"/>
    <link:label id="lab_srt_ProductOrServiceAxis_24369a16-a101-4dac-b7c8-80ccf5170474_terseLabel_en-US" xlink:label="lab_srt_ProductOrServiceAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Product and Service [Axis]</link:label>
    <link:label id="lab_srt_ProductOrServiceAxis_label_en-US" xlink:label="lab_srt_ProductOrServiceAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Product and Service [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductOrServiceAxis" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ProductOrServiceAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_ProductOrServiceAxis" xlink:to="lab_srt_ProductOrServiceAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentLineItems_466655b9-5c1b-4139-9328-3b6ea28a0c91_terseLabel_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Property, Plant and Equipment [Line Items]</link:label>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentLineItems_label_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Property, Plant and Equipment [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentLineItems" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems" xlink:to="lab_us-gaap_PropertyPlantAndEquipmentLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_StatementLineItems_439231e9-7096-49a1-a43c-254d108ee624_terseLabel_en-US" xlink:label="lab_us-gaap_StatementLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Statement [Line Items]</link:label>
    <link:label id="lab_us-gaap_StatementLineItems_label_en-US" xlink:label="lab_us-gaap_StatementLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Statement [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementLineItems" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StatementLineItems" xlink:to="lab_us-gaap_StatementLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_AssetAcquisitionConsiderationTransferredAccountsPayable_c3d18073-cf31-4a26-b9b8-c362c009d886_terseLabel_en-US" xlink:label="lab_tgen_AssetAcquisitionConsiderationTransferredAccountsPayable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Account payable</link:label>
    <link:label id="lab_tgen_AssetAcquisitionConsiderationTransferredAccountsPayable_label_en-US" xlink:label="lab_tgen_AssetAcquisitionConsiderationTransferredAccountsPayable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Asset Acquisition, Consideration Transferred, Accounts Payable</link:label>
    <link:label id="lab_tgen_AssetAcquisitionConsiderationTransferredAccountsPayable_documentation_en-US" xlink:label="lab_tgen_AssetAcquisitionConsiderationTransferredAccountsPayable" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Asset Acquisition, Consideration Transferred, Accounts Payable</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AssetAcquisitionConsiderationTransferredAccountsPayable" xlink:href="tgen-20241231.xsd#tgen_AssetAcquisitionConsiderationTransferredAccountsPayable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_AssetAcquisitionConsiderationTransferredAccountsPayable" xlink:to="lab_tgen_AssetAcquisitionConsiderationTransferredAccountsPayable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_MeasurementInputTypeDomain_0d2aa29d-c613-4f4e-a612-6cde09ab653a_terseLabel_en-US" xlink:label="lab_us-gaap_MeasurementInputTypeDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Measurement Input Type [Domain]</link:label>
    <link:label id="lab_us-gaap_MeasurementInputTypeDomain_label_en-US" xlink:label="lab_us-gaap_MeasurementInputTypeDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Measurement Input Type [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MeasurementInputTypeDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_MeasurementInputTypeDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_MeasurementInputTypeDomain" xlink:to="lab_us-gaap_MeasurementInputTypeDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OperatingExpensesAbstract_7c1fe569-b17b-4d28-8a53-4b5f150274bf_terseLabel_en-US" xlink:label="lab_us-gaap_OperatingExpensesAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Operating expenses</link:label>
    <link:label id="lab_us-gaap_OperatingExpensesAbstract_label_en-US" xlink:label="lab_us-gaap_OperatingExpensesAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Operating Expenses [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingExpensesAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingExpensesAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OperatingExpensesAbstract" xlink:to="lab_us-gaap_OperatingExpensesAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentTextBlock_30309e66-8ab6-4bde-8af7-6db88475d6cd_terseLabel_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Summary of Property, Plant and Equipment</link:label>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentTextBlock_label_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Property, Plant and Equipment [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTextBlock" xlink:to="lab_us-gaap_PropertyPlantAndEquipmentTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_CompActuallyPaidVsTotalShareholderRtnTextBlock_terseLabel_en-US" xlink:label="lab_ecd_CompActuallyPaidVsTotalShareholderRtnTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Compensation Actually Paid vs. Total Shareholder Return</link:label>
    <link:label id="lab_ecd_CompActuallyPaidVsTotalShareholderRtnTextBlock_label_en-US" xlink:label="lab_ecd_CompActuallyPaidVsTotalShareholderRtnTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Compensation Actually Paid vs. Total Shareholder Return [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_CompActuallyPaidVsTotalShareholderRtnTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_CompActuallyPaidVsTotalShareholderRtnTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_CompActuallyPaidVsTotalShareholderRtnTextBlock" xlink:to="lab_ecd_CompActuallyPaidVsTotalShareholderRtnTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_FavorableContractAssetMember_7ec4591f-56ad-4089-a3d7-e9ac69357aa0_terseLabel_en-US" xlink:label="lab_tgen_FavorableContractAssetMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Favorable contract assets</link:label>
    <link:label id="lab_tgen_FavorableContractAssetMember_label_en-US" xlink:label="lab_tgen_FavorableContractAssetMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Favorable Contract Asset [Member]</link:label>
    <link:label id="lab_tgen_FavorableContractAssetMember_documentation_en-US" xlink:label="lab_tgen_FavorableContractAssetMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Favorable Contract Asset [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_FavorableContractAssetMember" xlink:href="tgen-20241231.xsd#tgen_FavorableContractAssetMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_FavorableContractAssetMember" xlink:to="lab_tgen_FavorableContractAssetMember" xlink:type="arc" order="1"/>
    <link:label id="lab_srt_MinimumMember_4c94bd85-47d9-45cc-aab8-9f598ca83df5_terseLabel_en-US" xlink:label="lab_srt_MinimumMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Minimum</link:label>
    <link:label id="lab_srt_MinimumMember_label_en-US" xlink:label="lab_srt_MinimumMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Minimum [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MinimumMember" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MinimumMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_MinimumMember" xlink:to="lab_srt_MinimumMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AssetAcquisitionContingentConsiderationLiability_f346fc80-ca8f-4cc0-bd9c-abbc6a62ef40_terseLabel_en-US" xlink:label="lab_us-gaap_AssetAcquisitionContingentConsiderationLiability" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Contingent consideration payable</link:label>
    <link:label id="lab_us-gaap_AssetAcquisitionContingentConsiderationLiability_label_en-US" xlink:label="lab_us-gaap_AssetAcquisitionContingentConsiderationLiability" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Asset Acquisition, Contingent Consideration, Liability</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetAcquisitionContingentConsiderationLiability" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetAcquisitionContingentConsiderationLiability"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AssetAcquisitionContingentConsiderationLiability" xlink:to="lab_us-gaap_AssetAcquisitionContingentConsiderationLiability" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_TrdArrAdoptionDate_terseLabel_en-US" xlink:label="lab_ecd_TrdArrAdoptionDate" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Adoption Date</link:label>
    <link:label id="lab_ecd_TrdArrAdoptionDate_label_en-US" xlink:label="lab_ecd_TrdArrAdoptionDate" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Trading Arrangement Adoption Date</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TrdArrAdoptionDate" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_TrdArrAdoptionDate"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_TrdArrAdoptionDate" xlink:to="lab_ecd_TrdArrAdoptionDate" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RelatedPartyTransactionsAbstract_20a773d8-8eed-40a3-866f-7464d5e3e353_terseLabel_en-US" xlink:label="lab_us-gaap_RelatedPartyTransactionsAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Related Party Transactions [Abstract]</link:label>
    <link:label id="lab_us-gaap_RelatedPartyTransactionsAbstract_label_en-US" xlink:label="lab_us-gaap_RelatedPartyTransactionsAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Related Party Transactions [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyTransactionsAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RelatedPartyTransactionsAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RelatedPartyTransactionsAbstract" xlink:to="lab_us-gaap_RelatedPartyTransactionsAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_LitigationSettlementFeeExpenseBenefit_9de0dd2f-5f53-445c-a0a4-bf9ae7076b73_terseLabel_en-US" xlink:label="lab_tgen_LitigationSettlementFeeExpenseBenefit" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Litigation settlement fee expense, benefit</link:label>
    <link:label id="lab_tgen_LitigationSettlementFeeExpenseBenefit_label_en-US" xlink:label="lab_tgen_LitigationSettlementFeeExpenseBenefit" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Litigation Settlement Fee Expense, Benefit</link:label>
    <link:label id="lab_tgen_LitigationSettlementFeeExpenseBenefit_documentation_en-US" xlink:label="lab_tgen_LitigationSettlementFeeExpenseBenefit" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Litigation Settlement Fee Expense, Benefit</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_LitigationSettlementFeeExpenseBenefit" xlink:href="tgen-20241231.xsd#tgen_LitigationSettlementFeeExpenseBenefit"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_LitigationSettlementFeeExpenseBenefit" xlink:to="lab_tgen_LitigationSettlementFeeExpenseBenefit" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ProvisionForDoubtfulAccounts_3e7591d0-ad31-4d49-a5d9-ca525b894d63_terseLabel_en-US" xlink:label="lab_us-gaap_ProvisionForDoubtfulAccounts" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Provision for credit losses</link:label>
    <link:label id="lab_us-gaap_ProvisionForDoubtfulAccounts_label_en-US" xlink:label="lab_us-gaap_ProvisionForDoubtfulAccounts" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accounts Receivable, Credit Loss Expense (Reversal)</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProvisionForDoubtfulAccounts" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProvisionForDoubtfulAccounts"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ProvisionForDoubtfulAccounts" xlink:to="lab_us-gaap_ProvisionForDoubtfulAccounts" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_StatementBusinessSegmentsAxis_b8254c1c-5776-42f6-b2d8-f74de167cb27_terseLabel_en-US" xlink:label="lab_us-gaap_StatementBusinessSegmentsAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Segments [Axis]</link:label>
    <link:label id="lab_us-gaap_StatementBusinessSegmentsAxis_label_en-US" xlink:label="lab_us-gaap_StatementBusinessSegmentsAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Segments [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementBusinessSegmentsAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementBusinessSegmentsAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StatementBusinessSegmentsAxis" xlink:to="lab_us-gaap_StatementBusinessSegmentsAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_ChngInFrValAsOfVstngDtOfPrrYrEqtyAwrdsVstdInCvrdYrMember_terseLabel_en-US" xlink:label="lab_ecd_ChngInFrValAsOfVstngDtOfPrrYrEqtyAwrdsVstdInCvrdYrMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Change in Fair Value as of Vesting Date of Prior Year Equity Awards Vested in Covered Year</link:label>
    <link:label id="lab_ecd_ChngInFrValAsOfVstngDtOfPrrYrEqtyAwrdsVstdInCvrdYrMember_label_en-US" xlink:label="lab_ecd_ChngInFrValAsOfVstngDtOfPrrYrEqtyAwrdsVstdInCvrdYrMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Change in Fair Value as of Vesting Date of Prior Year Equity Awards Vested in Covered Year [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_ChngInFrValAsOfVstngDtOfPrrYrEqtyAwrdsVstdInCvrdYrMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_ChngInFrValAsOfVstngDtOfPrrYrEqtyAwrdsVstdInCvrdYrMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_ChngInFrValAsOfVstngDtOfPrrYrEqtyAwrdsVstdInCvrdYrMember" xlink:to="lab_ecd_ChngInFrValAsOfVstngDtOfPrrYrEqtyAwrdsVstdInCvrdYrMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_BusinessAcquisitionsProFormaRevenue_f6107c86-eb48-40f1-aa7d-27755db02a63_terseLabel_en-US" xlink:label="lab_us-gaap_BusinessAcquisitionsProFormaRevenue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Total revenues</link:label>
    <link:label id="lab_us-gaap_BusinessAcquisitionsProFormaRevenue_label_en-US" xlink:label="lab_us-gaap_BusinessAcquisitionsProFormaRevenue" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Business Acquisition, Pro Forma Revenue</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionsProFormaRevenue" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionsProFormaRevenue"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessAcquisitionsProFormaRevenue" xlink:to="lab_us-gaap_BusinessAcquisitionsProFormaRevenue" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_NoncashInterestExpense_278e93e8-adb5-4a2d-9f6d-012ca85aeb5e_terseLabel_en-US" xlink:label="lab_tgen_NoncashInterestExpense" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Non-cash interest expense</link:label>
    <link:label id="lab_tgen_NoncashInterestExpense_label_en-US" xlink:label="lab_tgen_NoncashInterestExpense" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Non-cash Interest Expense</link:label>
    <link:label id="lab_tgen_NoncashInterestExpense_documentation_en-US" xlink:label="lab_tgen_NoncashInterestExpense" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Non-cash Interest Expense</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_NoncashInterestExpense" xlink:href="tgen-20241231.xsd#tgen_NoncashInterestExpense"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_NoncashInterestExpense" xlink:to="lab_tgen_NoncashInterestExpense" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_78d34cb1-466c-4903-843f-a6259aaa8c1b_terseLabel_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Federal statutory income tax rate (percent)</link:label>
    <link:label id="lab_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_label_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Effective Income Tax Rate Reconciliation, at Federal Statutory Income Tax Rate, Percent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" xlink:to="lab_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AwardExrcPrice_terseLabel_en-US" xlink:label="lab_ecd_AwardExrcPrice" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Exercise Price</link:label>
    <link:label id="lab_ecd_AwardExrcPrice_label_en-US" xlink:label="lab_ecd_AwardExrcPrice" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Award Exercise Price</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardExrcPrice" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AwardExrcPrice"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AwardExrcPrice" xlink:to="lab_ecd_AwardExrcPrice" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock_840a533f-69ca-41ba-a0c4-164c7d2ad7bf_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Schedule of Deferred Tax Assets</link:label>
    <link:label id="lab_us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock_label_en-US" xlink:label="lab_us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Deferred Tax Assets and Liabilities [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" xlink:to="lab_us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AssetAcquisitionTable_7fb33b68-cb17-4c1f-a0fd-119205d7c03a_terseLabel_en-US" xlink:label="lab_us-gaap_AssetAcquisitionTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Asset Acquisition [Table]</link:label>
    <link:label id="lab_us-gaap_AssetAcquisitionTable_label_en-US" xlink:label="lab_us-gaap_AssetAcquisitionTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Asset Acquisition [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetAcquisitionTable" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetAcquisitionTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AssetAcquisitionTable" xlink:to="lab_us-gaap_AssetAcquisitionTable" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_InstallationServicesMember_65afa2a1-7355-40fd-89e4-7a8a6ffd76da_terseLabel_en-US" xlink:label="lab_tgen_InstallationServicesMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Installation Services [Member]</link:label>
    <link:label id="lab_tgen_InstallationServicesMember_label_en-US" xlink:label="lab_tgen_InstallationServicesMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Installation Services [Member]</link:label>
    <link:label id="lab_tgen_InstallationServicesMember_documentation_en-US" xlink:label="lab_tgen_InstallationServicesMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Installation Services [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_InstallationServicesMember" xlink:href="tgen-20241231.xsd#tgen_InstallationServicesMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_InstallationServicesMember" xlink:to="lab_tgen_InstallationServicesMember" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_TrdArrDuration_terseLabel_en-US" xlink:label="lab_ecd_TrdArrDuration" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Arrangement Duration</link:label>
    <link:label id="lab_ecd_TrdArrDuration_label_en-US" xlink:label="lab_ecd_TrdArrDuration" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Trading Arrangement Duration</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TrdArrDuration" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_TrdArrDuration"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_TrdArrDuration" xlink:to="lab_ecd_TrdArrDuration" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OperatingLossCarryforwards_b6f9fc5d-7172-4108-8acf-9ec4eb7324b7_terseLabel_en-US" xlink:label="lab_us-gaap_OperatingLossCarryforwards" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Operating loss carryforwards</link:label>
    <link:label id="lab_us-gaap_OperatingLossCarryforwards_label_en-US" xlink:label="lab_us-gaap_OperatingLossCarryforwards" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Operating Loss Carryforwards</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLossCarryforwards" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLossCarryforwards"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OperatingLossCarryforwards" xlink:to="lab_us-gaap_OperatingLossCarryforwards" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_StockholdersEquityAbstract_bd58a08d-eaa2-4edb-9fac-a11f3fcc0d17_terseLabel_en-US" xlink:label="lab_us-gaap_StockholdersEquityAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Tecogen Inc. shareholders&#8217; equity:</link:label>
    <link:label id="lab_us-gaap_StockholdersEquityAbstract_label_en-US" xlink:label="lab_us-gaap_StockholdersEquityAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Equity, Attributable to Parent [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockholdersEquityAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockholdersEquityAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StockholdersEquityAbstract" xlink:to="lab_us-gaap_StockholdersEquityAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_OperatingAndFinanceLeaseLiabilityToBePaidYearOne_80bdbfc7-d700-48bd-83fb-0064e0edf0e9_terseLabel_en-US" xlink:label="lab_tgen_OperatingAndFinanceLeaseLiabilityToBePaidYearOne" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">2025</link:label>
    <link:label id="lab_tgen_OperatingAndFinanceLeaseLiabilityToBePaidYearOne_label_en-US" xlink:label="lab_tgen_OperatingAndFinanceLeaseLiabilityToBePaidYearOne" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Operating and Finance Lease, Liability, to be Paid, Year One</link:label>
    <link:label id="lab_tgen_OperatingAndFinanceLeaseLiabilityToBePaidYearOne_documentation_en-US" xlink:label="lab_tgen_OperatingAndFinanceLeaseLiabilityToBePaidYearOne" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Operating and Finance Lease, Liability, to be Paid, Year One</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_OperatingAndFinanceLeaseLiabilityToBePaidYearOne" xlink:href="tgen-20241231.xsd#tgen_OperatingAndFinanceLeaseLiabilityToBePaidYearOne"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_OperatingAndFinanceLeaseLiabilityToBePaidYearOne" xlink:to="lab_tgen_OperatingAndFinanceLeaseLiabilityToBePaidYearOne" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_StandardProductWarrantyAccrualWarrantiesIssued_e93bfc9e-c60a-444a-b842-c6e7738a7c7c_terseLabel_en-US" xlink:label="lab_us-gaap_StandardProductWarrantyAccrualWarrantiesIssued" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Warranty provision for units sold</link:label>
    <link:label id="lab_us-gaap_StandardProductWarrantyAccrualWarrantiesIssued_label_en-US" xlink:label="lab_us-gaap_StandardProductWarrantyAccrualWarrantiesIssued" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Standard Product Warranty Accrual, Increase for Warranties Issued</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StandardProductWarrantyAccrualWarrantiesIssued" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StandardProductWarrantyAccrualWarrantiesIssued"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StandardProductWarrantyAccrualWarrantiesIssued" xlink:to="lab_us-gaap_StandardProductWarrantyAccrualWarrantiesIssued" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_MtrlTermsOfTrdArrTextBlock_terseLabel_en-US" xlink:label="lab_ecd_MtrlTermsOfTrdArrTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Material Terms of Trading Arrangement</link:label>
    <link:label id="lab_ecd_MtrlTermsOfTrdArrTextBlock_label_en-US" xlink:label="lab_ecd_MtrlTermsOfTrdArrTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Material Terms of Trading Arrangement [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_MtrlTermsOfTrdArrTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_MtrlTermsOfTrdArrTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_MtrlTermsOfTrdArrTextBlock" xlink:to="lab_ecd_MtrlTermsOfTrdArrTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FinanceLeaseLiability_a36cbdda-aace-477c-abcc-08809a36e415_totalLabel_en-US" xlink:label="lab_us-gaap_FinanceLeaseLiability" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Total finance lease liability</link:label>
    <link:label id="lab_us-gaap_FinanceLeaseLiability_label_en-US" xlink:label="lab_us-gaap_FinanceLeaseLiability" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Finance Lease, Liability</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinanceLeaseLiability" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FinanceLeaseLiability"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FinanceLeaseLiability" xlink:to="lab_us-gaap_FinanceLeaseLiability" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AllIndividualsMember_terseLabel_en-US" xlink:label="lab_ecd_AllIndividualsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">All Individuals</link:label>
    <link:label id="lab_ecd_AllIndividualsMember_label_en-US" xlink:label="lab_ecd_AllIndividualsMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">All Individuals [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AllIndividualsMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AllIndividualsMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AllIndividualsMember" xlink:to="lab_ecd_AllIndividualsMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_BasisOfPresentationAndSignificantAccountingPoliciesTextBlock_1da1622d-b3f7-44b0-9cb7-22411a4770b1_terseLabel_en-US" xlink:label="lab_us-gaap_BasisOfPresentationAndSignificantAccountingPoliciesTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Summary of significant accounting policies</link:label>
    <link:label id="lab_us-gaap_BasisOfPresentationAndSignificantAccountingPoliciesTextBlock_label_en-US" xlink:label="lab_us-gaap_BasisOfPresentationAndSignificantAccountingPoliciesTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Basis of Presentation and Significant Accounting Policies [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BasisOfPresentationAndSignificantAccountingPoliciesTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BasisOfPresentationAndSignificantAccountingPoliciesTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BasisOfPresentationAndSignificantAccountingPoliciesTextBlock" xlink:to="lab_us-gaap_BasisOfPresentationAndSignificantAccountingPoliciesTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncomeTaxDisclosureAbstract_9c9c007a-3640-4d75-99f2-475d796321d6_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeTaxDisclosureAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Income Tax Disclosure [Abstract]</link:label>
    <link:label id="lab_us-gaap_IncomeTaxDisclosureAbstract_label_en-US" xlink:label="lab_us-gaap_IncomeTaxDisclosureAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Income Tax Disclosure [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxDisclosureAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxDisclosureAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract" xlink:to="lab_us-gaap_IncomeTaxDisclosureAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_ProductsandServicesMember_f4cd8b53-ce92-4c29-b184-65bf69ca27fc_verboseLabel_en-US" xlink:label="lab_tgen_ProductsandServicesMember" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Product and Service</link:label>
    <link:label id="lab_tgen_ProductsandServicesMember_e6b9af41-3750-4dab-aaf4-c6fee52ea1f4_terseLabel_en-US" xlink:label="lab_tgen_ProductsandServicesMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Products and Services</link:label>
    <link:label id="lab_tgen_ProductsandServicesMember_label_en-US" xlink:label="lab_tgen_ProductsandServicesMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Products and Services [Member]</link:label>
    <link:label id="lab_tgen_ProductsandServicesMember_documentation_en-US" xlink:label="lab_tgen_ProductsandServicesMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Products and Services [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ProductsandServicesMember" xlink:href="tgen-20241231.xsd#tgen_ProductsandServicesMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_ProductsandServicesMember" xlink:to="lab_tgen_ProductsandServicesMember" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_OperatingAndFinanceLeaseLiabilityToBePaidYearFour_d4694f48-358f-400d-aa18-075b095674f1_terseLabel_en-US" xlink:label="lab_tgen_OperatingAndFinanceLeaseLiabilityToBePaidYearFour" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">2028</link:label>
    <link:label id="lab_tgen_OperatingAndFinanceLeaseLiabilityToBePaidYearFour_label_en-US" xlink:label="lab_tgen_OperatingAndFinanceLeaseLiabilityToBePaidYearFour" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Operating and Finance Lease, Liability, to be Paid, Year Four</link:label>
    <link:label id="lab_tgen_OperatingAndFinanceLeaseLiabilityToBePaidYearFour_documentation_en-US" xlink:label="lab_tgen_OperatingAndFinanceLeaseLiabilityToBePaidYearFour" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Operating and Finance Lease, Liability, to be Paid, Year Four</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_OperatingAndFinanceLeaseLiabilityToBePaidYearFour" xlink:href="tgen-20241231.xsd#tgen_OperatingAndFinanceLeaseLiabilityToBePaidYearFour"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_OperatingAndFinanceLeaseLiabilityToBePaidYearFour" xlink:to="lab_tgen_OperatingAndFinanceLeaseLiabilityToBePaidYearFour" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IntangibleAssetsNetExcludingGoodwill_1b78acdf-89fa-4468-aa9c-596ff4d1496a_totalLabel_en-US" xlink:label="lab_us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Intangible Assets, Net</link:label>
    <link:label id="lab_us-gaap_IntangibleAssetsNetExcludingGoodwill_label_en-US" xlink:label="lab_us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Intangible Assets, Net (Excluding Goodwill)</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IntangibleAssetsNetExcludingGoodwill"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:to="lab_us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_StatementOfStockholdersEquityAbstract_2230607a-c12b-4c51-83a4-328ed0d69432_terseLabel_en-US" xlink:label="lab_us-gaap_StatementOfStockholdersEquityAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Statement of Stockholders' Equity [Abstract]</link:label>
    <link:label id="lab_us-gaap_StatementOfStockholdersEquityAbstract_label_en-US" xlink:label="lab_us-gaap_StatementOfStockholdersEquityAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Statement of Stockholders' Equity [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementOfStockholdersEquityAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementOfStockholdersEquityAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StatementOfStockholdersEquityAbstract" xlink:to="lab_us-gaap_StatementOfStockholdersEquityAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_InterestPayableCurrentAndNoncurrent_da780067-d99a-41ed-85fd-66abd8f8eb75_terseLabel_en-US" xlink:label="lab_us-gaap_InterestPayableCurrentAndNoncurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Interest Payable</link:label>
    <link:label id="lab_us-gaap_InterestPayableCurrentAndNoncurrent_label_en-US" xlink:label="lab_us-gaap_InterestPayableCurrentAndNoncurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Interest Payable</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InterestPayableCurrentAndNoncurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InterestPayableCurrentAndNoncurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_InterestPayableCurrentAndNoncurrent" xlink:to="lab_us-gaap_InterestPayableCurrentAndNoncurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsCancellationsAndForfeituresInPeriodWeightedAverageExercisePrice_b48eb133-9900-45f8-a2fb-8c1ed5c5ca89_terseLabel_en-US" xlink:label="lab_tgen_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsCancellationsAndForfeituresInPeriodWeightedAverageExercisePrice" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Canceled and forfeited (usd per share)</link:label>
    <link:label id="lab_tgen_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsCancellationsAndForfeituresInPeriodWeightedAverageExercisePrice_label_en-US" xlink:label="lab_tgen_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsCancellationsAndForfeituresInPeriodWeightedAverageExercisePrice" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-based Compensation Arrangement by Share-based Payment Award, Options, Cancellations and Forfeitures in Period, Weighted Average Exercise Price</link:label>
    <link:label id="lab_tgen_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsCancellationsAndForfeituresInPeriodWeightedAverageExercisePrice_documentation_en-US" xlink:label="lab_tgen_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsCancellationsAndForfeituresInPeriodWeightedAverageExercisePrice" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Share-based Compensation Arrangement by Share-based Payment Award, Options, Cancellations and Forfeitures in Period, Weighted Average Exercise Price</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsCancellationsAndForfeituresInPeriodWeightedAverageExercisePrice" xlink:href="tgen-20241231.xsd#tgen_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsCancellationsAndForfeituresInPeriodWeightedAverageExercisePrice"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsCancellationsAndForfeituresInPeriodWeightedAverageExercisePrice" xlink:to="lab_tgen_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsCancellationsAndForfeituresInPeriodWeightedAverageExercisePrice" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsLineItems_fa64c2f0-470c-4aca-aeb9-b3ffd037aa4f_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Income Statement, Balance Sheet and Additional Disclosures by Disposal Groups, Including Discontinued Operations [Line Items]</link:label>
    <link:label id="lab_us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsLineItems_label_en-US" xlink:label="lab_us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Income Statement, Balance Sheet and Additional Disclosures by Disposal Groups, Including Discontinued Operations [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsLineItems" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsLineItems" xlink:to="lab_us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_BusinessCombinationAndAssetAcquisitionAbstract_label_en-US" xlink:label="lab_us-gaap_BusinessCombinationAndAssetAcquisitionAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Business Combination, Asset Acquisition, and Joint Venture Formation [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationAndAssetAcquisitionAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationAndAssetAcquisitionAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessCombinationAndAssetAcquisitionAbstract" xlink:to="lab_us-gaap_BusinessCombinationAndAssetAcquisitionAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_DepreciationDepletionandAmortizationPropertyPlantandEquipment_2bf041d5-575f-49ef-b43b-d7ff0d451cf2_terseLabel_en-US" xlink:label="lab_tgen_DepreciationDepletionandAmortizationPropertyPlantandEquipment" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Depreciation and amortization</link:label>
    <link:label id="lab_tgen_DepreciationDepletionandAmortizationPropertyPlantandEquipment_label_en-US" xlink:label="lab_tgen_DepreciationDepletionandAmortizationPropertyPlantandEquipment" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Depreciation, Depletion and Amortization, Property, Plant and Equipment</link:label>
    <link:label id="lab_tgen_DepreciationDepletionandAmortizationPropertyPlantandEquipment_documentation_en-US" xlink:label="lab_tgen_DepreciationDepletionandAmortizationPropertyPlantandEquipment" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Depreciation, Depletion and Amortization, Property, Plant and Equipment</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_DepreciationDepletionandAmortizationPropertyPlantandEquipment" xlink:href="tgen-20241231.xsd#tgen_DepreciationDepletionandAmortizationPropertyPlantandEquipment"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_DepreciationDepletionandAmortizationPropertyPlantandEquipment" xlink:to="lab_tgen_DepreciationDepletionandAmortizationPropertyPlantandEquipment" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LineOfCreditFacilityAxis_45b347cd-019f-4482-8c9c-9a2856529fe4_terseLabel_en-US" xlink:label="lab_us-gaap_LineOfCreditFacilityAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Lender Name [Axis]</link:label>
    <link:label id="lab_us-gaap_LineOfCreditFacilityAxis_label_en-US" xlink:label="lab_us-gaap_LineOfCreditFacilityAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Lender Name [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LineOfCreditFacilityAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LineOfCreditFacilityAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LineOfCreditFacilityAxis" xlink:to="lab_us-gaap_LineOfCreditFacilityAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsTable_d57561ca-c5ba-4176-a19d-6a71e6ee3f27_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Disposal Groups, Including Discontinued Operations [Table]</link:label>
    <link:label id="lab_us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsTable_label_en-US" xlink:label="lab_us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Disposal Groups, Including Discontinued Operations [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsTable" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsTable" xlink:to="lab_us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsTable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RelatedPartyDomain_d3333eec-56f3-4b95-86c4-a1f070dc2978_terseLabel_en-US" xlink:label="lab_us-gaap_RelatedPartyDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Related Party [Domain]</link:label>
    <link:label id="lab_us-gaap_RelatedPartyDomain_label_en-US" xlink:label="lab_us-gaap_RelatedPartyDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Related and Nonrelated Parties [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RelatedPartyDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RelatedPartyDomain" xlink:to="lab_us-gaap_RelatedPartyDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsNotSubjectToExpiration_f1b7bb7d-2150-48cb-acb9-43ffa81c8c39_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsNotSubjectToExpiration" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">NOLs with indefinite carryforward</link:label>
    <link:label id="lab_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsNotSubjectToExpiration_label_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsNotSubjectToExpiration" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred Tax Assets, Operating Loss Carryforwards, Not Subject to Expiration</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsNotSubjectToExpiration" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsNotSubjectToExpiration"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsNotSubjectToExpiration" xlink:to="lab_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsNotSubjectToExpiration" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AssetAcquisitionContingentConsiderationLiabilityCurrent_9fc8df72-08b0-4c17-afee-b6d979254a00_terseLabel_en-US" xlink:label="lab_us-gaap_AssetAcquisitionContingentConsiderationLiabilityCurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Contingent contract consideration, current</link:label>
    <link:label id="lab_us-gaap_AssetAcquisitionContingentConsiderationLiabilityCurrent_label_en-US" xlink:label="lab_us-gaap_AssetAcquisitionContingentConsiderationLiabilityCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Asset Acquisition, Contingent Consideration, Liability, Current</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetAcquisitionContingentConsiderationLiabilityCurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetAcquisitionContingentConsiderationLiabilityCurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AssetAcquisitionContingentConsiderationLiabilityCurrent" xlink:to="lab_us-gaap_AssetAcquisitionContingentConsiderationLiabilityCurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FairValueByLiabilityClassAxis_c27947cd-c014-419e-bbdb-9e0b2ba13561_terseLabel_en-US" xlink:label="lab_us-gaap_FairValueByLiabilityClassAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Liability Class [Axis]</link:label>
    <link:label id="lab_us-gaap_FairValueByLiabilityClassAxis_label_en-US" xlink:label="lab_us-gaap_FairValueByLiabilityClassAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Liability Class [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueByLiabilityClassAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueByLiabilityClassAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueByLiabilityClassAxis" xlink:to="lab_us-gaap_FairValueByLiabilityClassAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_ProductCertificationMember_9c46052f-277e-4905-9f7b-325ee3213f05_terseLabel_en-US" xlink:label="lab_tgen_ProductCertificationMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Product Certifications</link:label>
    <link:label id="lab_tgen_ProductCertificationMember_label_en-US" xlink:label="lab_tgen_ProductCertificationMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Product Certification [Member]</link:label>
    <link:label id="lab_tgen_ProductCertificationMember_documentation_en-US" xlink:label="lab_tgen_ProductCertificationMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Product Certification [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ProductCertificationMember" xlink:href="tgen-20241231.xsd#tgen_ProductCertificationMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_ProductCertificationMember" xlink:to="lab_tgen_ProductCertificationMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate_51b3d0bb-d433-4ec3-93ea-677387cc7df8_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Expected volatility</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Fair Value Assumptions, Expected Volatility Rate</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncreaseDecreaseInOtherOperatingAssets_deeb65be-da11-4c48-81fb-90e6f2e107d3_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInOtherOperatingAssets" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Other non-current assets</link:label>
    <link:label id="lab_us-gaap_IncreaseDecreaseInOtherOperatingAssets_label_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInOtherOperatingAssets" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Increase (Decrease) in Other Operating Assets</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInOtherOperatingAssets" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInOtherOperatingAssets"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncreaseDecreaseInOtherOperatingAssets" xlink:to="lab_us-gaap_IncreaseDecreaseInOtherOperatingAssets" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CashFDICInsuredAmount_69dedfba-9557-4840-833e-5b1d80a0da38_terseLabel_en-US" xlink:label="lab_us-gaap_CashFDICInsuredAmount" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Cash, FDIC Insured Amount</link:label>
    <link:label id="lab_us-gaap_CashFDICInsuredAmount_label_en-US" xlink:label="lab_us-gaap_CashFDICInsuredAmount" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Cash, FDIC Insured Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashFDICInsuredAmount" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashFDICInsuredAmount"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CashFDICInsuredAmount" xlink:to="lab_us-gaap_CashFDICInsuredAmount" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CashAndCashEquivalentsPolicyTextBlock_310a36f5-1de5-4fce-b446-7989f2b5d78b_terseLabel_en-US" xlink:label="lab_us-gaap_CashAndCashEquivalentsPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Cash and Cash Equivalents</link:label>
    <link:label id="lab_us-gaap_CashAndCashEquivalentsPolicyTextBlock_label_en-US" xlink:label="lab_us-gaap_CashAndCashEquivalentsPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Cash and Cash Equivalents, Policy [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsPolicyTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashAndCashEquivalentsPolicyTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CashAndCashEquivalentsPolicyTextBlock" xlink:to="lab_us-gaap_CashAndCashEquivalentsPolicyTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ImpairmentOfLongLivedAssetsHeldForUse_0761f26c-8a3a-4668-a76e-80ee15617645_terseLabel_en-US" xlink:label="lab_us-gaap_ImpairmentOfLongLivedAssetsHeldForUse" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Impairment of long-lived assets</link:label>
    <link:label id="lab_us-gaap_ImpairmentOfLongLivedAssetsHeldForUse_label_en-US" xlink:label="lab_us-gaap_ImpairmentOfLongLivedAssetsHeldForUse" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Impairment, Long-Lived Asset, Held-for-Use</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ImpairmentOfLongLivedAssetsHeldForUse" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ImpairmentOfLongLivedAssetsHeldForUse"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ImpairmentOfLongLivedAssetsHeldForUse" xlink:to="lab_us-gaap_ImpairmentOfLongLivedAssetsHeldForUse" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_MeasureAxis_terseLabel_en-US" xlink:label="lab_ecd_MeasureAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Measure:</link:label>
    <link:label id="lab_ecd_MeasureAxis_label_en-US" xlink:label="lab_ecd_MeasureAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Measure [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_MeasureAxis" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_MeasureAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_MeasureAxis" xlink:to="lab_ecd_MeasureAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OperatingLossCarryforwardsTable_b2365fc9-1b1a-4537-8527-c16973c0ab39_terseLabel_en-US" xlink:label="lab_us-gaap_OperatingLossCarryforwardsTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Operating Loss Carryforwards [Table]</link:label>
    <link:label id="lab_us-gaap_OperatingLossCarryforwardsTable_label_en-US" xlink:label="lab_us-gaap_OperatingLossCarryforwardsTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Operating Loss Carryforwards [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLossCarryforwardsTable" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLossCarryforwardsTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OperatingLossCarryforwardsTable" xlink:to="lab_us-gaap_OperatingLossCarryforwardsTable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PreferredStockSharesAuthorized_5d51905d-af7d-40e2-963f-54041bab5eed_terseLabel_en-US" xlink:label="lab_us-gaap_PreferredStockSharesAuthorized" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Preferred stock, shares authorized</link:label>
    <link:label id="lab_us-gaap_PreferredStockSharesAuthorized_label_en-US" xlink:label="lab_us-gaap_PreferredStockSharesAuthorized" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Preferred Stock, Shares Authorized</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PreferredStockSharesAuthorized" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PreferredStockSharesAuthorized"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PreferredStockSharesAuthorized" xlink:to="lab_us-gaap_PreferredStockSharesAuthorized" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntityEmergingGrowthCompany_0011b9c3-0ffe-46ac-9716-02d743b74293_terseLabel_en-US" xlink:label="lab_dei_EntityEmergingGrowthCompany" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Entity Emerging Growth Company</link:label>
    <link:label id="lab_dei_EntityEmergingGrowthCompany_label_en-US" xlink:label="lab_dei_EntityEmergingGrowthCompany" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Emerging Growth Company</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityEmergingGrowthCompany" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityEmergingGrowthCompany"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityEmergingGrowthCompany" xlink:to="lab_dei_EntityEmergingGrowthCompany" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IndefiniteLivedIntangibleAssetsByMajorClassAxis_3a3c6e8d-6e58-4731-9a04-656940a5a981_terseLabel_en-US" xlink:label="lab_us-gaap_IndefiniteLivedIntangibleAssetsByMajorClassAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Indefinite-lived Intangible Assets [Axis]</link:label>
    <link:label id="lab_us-gaap_IndefiniteLivedIntangibleAssetsByMajorClassAxis_label_en-US" xlink:label="lab_us-gaap_IndefiniteLivedIntangibleAssetsByMajorClassAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Indefinite-Lived Intangible Assets [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IndefiniteLivedIntangibleAssetsByMajorClassAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IndefiniteLivedIntangibleAssetsByMajorClassAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IndefiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="lab_us-gaap_IndefiniteLivedIntangibleAssetsByMajorClassAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_BusinessCombinationProvisionalInformationInitialAccountingIncompleteAdjustmentInventory_211d66b0-fe7c-41c7-a155-713625b5d292_terseLabel_en-US" xlink:label="lab_us-gaap_BusinessCombinationProvisionalInformationInitialAccountingIncompleteAdjustmentInventory" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Inventory adjustment</link:label>
    <link:label id="lab_us-gaap_BusinessCombinationProvisionalInformationInitialAccountingIncompleteAdjustmentInventory_label_en-US" xlink:label="lab_us-gaap_BusinessCombinationProvisionalInformationInitialAccountingIncompleteAdjustmentInventory" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Business Combination, Provisional Information, Initial Accounting Incomplete, Adjustment, Inventory</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationProvisionalInformationInitialAccountingIncompleteAdjustmentInventory" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationProvisionalInformationInitialAccountingIncompleteAdjustmentInventory"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessCombinationProvisionalInformationInitialAccountingIncompleteAdjustmentInventory" xlink:to="lab_us-gaap_BusinessCombinationProvisionalInformationInitialAccountingIncompleteAdjustmentInventory" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LiabilitiesFairValueDisclosure_e378a872-ec4c-4022-a460-29649626b662_totalLabel_en-US" xlink:label="lab_us-gaap_LiabilitiesFairValueDisclosure" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Total recurring fair value measurements</link:label>
    <link:label id="lab_us-gaap_LiabilitiesFairValueDisclosure_label_en-US" xlink:label="lab_us-gaap_LiabilitiesFairValueDisclosure" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Liabilities, Fair Value Disclosure</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LiabilitiesFairValueDisclosure" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LiabilitiesFairValueDisclosure"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LiabilitiesFairValueDisclosure" xlink:to="lab_us-gaap_LiabilitiesFairValueDisclosure" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LesseeLeaseDescriptionTable_7d53f4bb-b6b1-4c11-b219-976cef813246_terseLabel_en-US" xlink:label="lab_us-gaap_LesseeLeaseDescriptionTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Lessee, Lease, Description [Table]</link:label>
    <link:label id="lab_us-gaap_LesseeLeaseDescriptionTable_label_en-US" xlink:label="lab_us-gaap_LesseeLeaseDescriptionTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Lessee, Lease, Description [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeLeaseDescriptionTable" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeLeaseDescriptionTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LesseeLeaseDescriptionTable" xlink:to="lab_us-gaap_LesseeLeaseDescriptionTable" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_NonGaapMeasureDescriptionTextBlock_terseLabel_en-US" xlink:label="lab_ecd_NonGaapMeasureDescriptionTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Non-GAAP Measure Description</link:label>
    <link:label id="lab_ecd_NonGaapMeasureDescriptionTextBlock_label_en-US" xlink:label="lab_ecd_NonGaapMeasureDescriptionTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Non-GAAP Measure Description [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_NonGaapMeasureDescriptionTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_NonGaapMeasureDescriptionTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_NonGaapMeasureDescriptionTextBlock" xlink:to="lab_ecd_NonGaapMeasureDescriptionTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_NonContractRelatedIntangibleAssetsMember_21a47132-7ea3-4817-8127-68edbdcd11be_verboseLabel_en-US" xlink:label="lab_tgen_NonContractRelatedIntangibleAssetsMember" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Non-contract related intangibles</link:label>
    <link:label id="lab_tgen_NonContractRelatedIntangibleAssetsMember_label_en-US" xlink:label="lab_tgen_NonContractRelatedIntangibleAssetsMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Non-Contract Related Intangible Assets [Member]</link:label>
    <link:label id="lab_tgen_NonContractRelatedIntangibleAssetsMember_documentation_en-US" xlink:label="lab_tgen_NonContractRelatedIntangibleAssetsMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Non-Contract Related Intangible Assets</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_NonContractRelatedIntangibleAssetsMember" xlink:href="tgen-20241231.xsd#tgen_NonContractRelatedIntangibleAssetsMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_NonContractRelatedIntangibleAssetsMember" xlink:to="lab_tgen_NonContractRelatedIntangibleAssetsMember" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_ProductWarrantyPeriod_b3f10d4d-916a-4d47-aafb-6e26f165eb7f_terseLabel_en-US" xlink:label="lab_tgen_ProductWarrantyPeriod" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Product warranty period</link:label>
    <link:label id="lab_tgen_ProductWarrantyPeriod_label_en-US" xlink:label="lab_tgen_ProductWarrantyPeriod" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Product Warranty Period</link:label>
    <link:label id="lab_tgen_ProductWarrantyPeriod_documentation_en-US" xlink:label="lab_tgen_ProductWarrantyPeriod" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Product Warranty Period</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ProductWarrantyPeriod" xlink:href="tgen-20241231.xsd#tgen_ProductWarrantyPeriod"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_ProductWarrantyPeriod" xlink:to="lab_tgen_ProductWarrantyPeriod" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FinanceLeaseRightOfUseAsset_f68c0ed6-7b64-4f54-8146-7ff57f22c970_terseLabel_en-US" xlink:label="lab_us-gaap_FinanceLeaseRightOfUseAsset" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Right of use assets - finance leases</link:label>
    <link:label id="lab_us-gaap_FinanceLeaseRightOfUseAsset_label_en-US" xlink:label="lab_us-gaap_FinanceLeaseRightOfUseAsset" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Finance Lease, Right-of-Use Asset, after Accumulated Amortization</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinanceLeaseRightOfUseAsset" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FinanceLeaseRightOfUseAsset"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FinanceLeaseRightOfUseAsset" xlink:to="lab_us-gaap_FinanceLeaseRightOfUseAsset" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_ChangeInControlSeveranceBenefitPlanPeriodInForce_72f8a300-b0f8-4389-93ca-b03627b77f07_terseLabel_en-US" xlink:label="lab_tgen_ChangeInControlSeveranceBenefitPlanPeriodInForce" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Change in Control Severance Benefit Plan, period in force</link:label>
    <link:label id="lab_tgen_ChangeInControlSeveranceBenefitPlanPeriodInForce_label_en-US" xlink:label="lab_tgen_ChangeInControlSeveranceBenefitPlanPeriodInForce" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Change in Control Severance Benefit Plan, Period in Force</link:label>
    <link:label id="lab_tgen_ChangeInControlSeveranceBenefitPlanPeriodInForce_documentation_en-US" xlink:label="lab_tgen_ChangeInControlSeveranceBenefitPlanPeriodInForce" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Change in Control Severance Benefit Plan, Period in Force</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ChangeInControlSeveranceBenefitPlanPeriodInForce" xlink:href="tgen-20241231.xsd#tgen_ChangeInControlSeveranceBenefitPlanPeriodInForce"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_ChangeInControlSeveranceBenefitPlanPeriodInForce" xlink:to="lab_tgen_ChangeInControlSeveranceBenefitPlanPeriodInForce" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_AssetAcquisitionConsiderationTransferredContingentConsiderationNoncurrent_2212ad5b-b79d-492e-a97b-4779b42657b6_terseLabel_en-US" xlink:label="lab_tgen_AssetAcquisitionConsiderationTransferredContingentConsiderationNoncurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Contingent consideration</link:label>
    <link:label id="lab_tgen_AssetAcquisitionConsiderationTransferredContingentConsiderationNoncurrent_label_en-US" xlink:label="lab_tgen_AssetAcquisitionConsiderationTransferredContingentConsiderationNoncurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Asset Acquisition, Consideration Transferred, Contingent Consideration, Noncurrent</link:label>
    <link:label id="lab_tgen_AssetAcquisitionConsiderationTransferredContingentConsiderationNoncurrent_documentation_en-US" xlink:label="lab_tgen_AssetAcquisitionConsiderationTransferredContingentConsiderationNoncurrent" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Asset Acquisition, Consideration Transferred, Contingent Consideration, Noncurrent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AssetAcquisitionConsiderationTransferredContingentConsiderationNoncurrent" xlink:href="tgen-20241231.xsd#tgen_AssetAcquisitionConsiderationTransferredContingentConsiderationNoncurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_AssetAcquisitionConsiderationTransferredContingentConsiderationNoncurrent" xlink:to="lab_tgen_AssetAcquisitionConsiderationTransferredContingentConsiderationNoncurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_StandardProductWarrantyAccrual_102e9b94-a840-457d-9e05-cc55a8a12c3f_periodStartLabel_en-US" xlink:label="lab_us-gaap_StandardProductWarrantyAccrual" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xml:lang="en-US">Warranty reserve, beginning balance</link:label>
    <link:label id="lab_us-gaap_StandardProductWarrantyAccrual_021628e9-963a-455e-ab6f-66f85aeafdbd_periodEndLabel_en-US" xlink:label="lab_us-gaap_StandardProductWarrantyAccrual" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xml:lang="en-US">Warranty reserve, ending balance</link:label>
    <link:label id="lab_us-gaap_StandardProductWarrantyAccrual_label_en-US" xlink:label="lab_us-gaap_StandardProductWarrantyAccrual" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Standard Product Warranty Accrual</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StandardProductWarrantyAccrual" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StandardProductWarrantyAccrual"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StandardProductWarrantyAccrual" xlink:to="lab_us-gaap_StandardProductWarrantyAccrual" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_TheCorporationOfTheTownOfMiltonMiltonEnergyGenerationSolutionsInc.AndMiltonHydroDistributionIncMember_dfa35454-1426-4cae-9041-e29e252f72a6_terseLabel_en-US" xlink:label="lab_tgen_TheCorporationOfTheTownOfMiltonMiltonEnergyGenerationSolutionsInc.AndMiltonHydroDistributionIncMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">The Corporation Of The Town Of Milton, Milton Energy Generation Solutions Inc. And Milton Hydro Distribution Inc</link:label>
    <link:label id="lab_tgen_TheCorporationOfTheTownOfMiltonMiltonEnergyGenerationSolutionsInc.AndMiltonHydroDistributionIncMember_label_en-US" xlink:label="lab_tgen_TheCorporationOfTheTownOfMiltonMiltonEnergyGenerationSolutionsInc.AndMiltonHydroDistributionIncMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">The Corporation Of The Town Of Milton, Milton Energy Generation Solutions Inc. And Milton Hydro Distribution Inc [Member]</link:label>
    <link:label id="lab_tgen_TheCorporationOfTheTownOfMiltonMiltonEnergyGenerationSolutionsInc.AndMiltonHydroDistributionIncMember_documentation_en-US" xlink:label="lab_tgen_TheCorporationOfTheTownOfMiltonMiltonEnergyGenerationSolutionsInc.AndMiltonHydroDistributionIncMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">The Corporation Of The Town Of Milton, Milton Energy Generation Solutions Inc. And Milton Hydro Distribution Inc</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_TheCorporationOfTheTownOfMiltonMiltonEnergyGenerationSolutionsInc.AndMiltonHydroDistributionIncMember" xlink:href="tgen-20241231.xsd#tgen_TheCorporationOfTheTownOfMiltonMiltonEnergyGenerationSolutionsInc.AndMiltonHydroDistributionIncMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_TheCorporationOfTheTownOfMiltonMiltonEnergyGenerationSolutionsInc.AndMiltonHydroDistributionIncMember" xlink:to="lab_tgen_TheCorporationOfTheTownOfMiltonMiltonEnergyGenerationSolutionsInc.AndMiltonHydroDistributionIncMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EquityComponentDomain_5d3c1732-708c-498c-965b-9bc3443d5e8a_terseLabel_en-US" xlink:label="lab_us-gaap_EquityComponentDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Equity Component [Domain]</link:label>
    <link:label id="lab_us-gaap_EquityComponentDomain_label_en-US" xlink:label="lab_us-gaap_EquityComponentDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Equity Component [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquityComponentDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EquityComponentDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EquityComponentDomain" xlink:to="lab_us-gaap_EquityComponentDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_ShippingandHandlingExpenses_0026dcb6-a6e2-41c4-864d-d548bac3a3f1_terseLabel_en-US" xlink:label="lab_tgen_ShippingandHandlingExpenses" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Shipping and handling expenses</link:label>
    <link:label id="lab_tgen_ShippingandHandlingExpenses_label_en-US" xlink:label="lab_tgen_ShippingandHandlingExpenses" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Shipping and Handling Expenses</link:label>
    <link:label id="lab_tgen_ShippingandHandlingExpenses_documentation_en-US" xlink:label="lab_tgen_ShippingandHandlingExpenses" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Shipping and Handling Expenses</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ShippingandHandlingExpenses" xlink:href="tgen-20241231.xsd#tgen_ShippingandHandlingExpenses"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_ShippingandHandlingExpenses" xlink:to="lab_tgen_ShippingandHandlingExpenses" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_Additional402vDisclosureTextBlock_terseLabel_en-US" xlink:label="lab_ecd_Additional402vDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Additional 402(v) Disclosure</link:label>
    <link:label id="lab_ecd_Additional402vDisclosureTextBlock_label_en-US" xlink:label="lab_ecd_Additional402vDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Additional 402(v) Disclosure [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_Additional402vDisclosureTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_Additional402vDisclosureTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_Additional402vDisclosureTextBlock" xlink:to="lab_ecd_Additional402vDisclosureTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntityShellCompany_4a5fe762-259f-47e0-818f-693adcfba24a_terseLabel_en-US" xlink:label="lab_dei_EntityShellCompany" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Entity Shell Company</link:label>
    <link:label id="lab_dei_EntityShellCompany_label_en-US" xlink:label="lab_dei_EntityShellCompany" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Shell Company</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityShellCompany" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityShellCompany"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityShellCompany" xlink:to="lab_dei_EntityShellCompany" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntityIncorporationStateCountryCode_e6764051-8ed6-4a00-8321-dc32936e4fc7_terseLabel_en-US" xlink:label="lab_dei_EntityIncorporationStateCountryCode" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Entity Incorporation, State or Country Code</link:label>
    <link:label id="lab_dei_EntityIncorporationStateCountryCode_label_en-US" xlink:label="lab_dei_EntityIncorporationStateCountryCode" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Incorporation, State or Country Code</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityIncorporationStateCountryCode" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityIncorporationStateCountryCode"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityIncorporationStateCountryCode" xlink:to="lab_dei_EntityIncorporationStateCountryCode" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_StatementTable_93a35076-9f40-4797-9e0a-81250caf3700_terseLabel_en-US" xlink:label="lab_us-gaap_StatementTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Statement [Table]</link:label>
    <link:label id="lab_us-gaap_StatementTable_label_en-US" xlink:label="lab_us-gaap_StatementTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Statement [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementTable" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StatementTable" xlink:to="lab_us-gaap_StatementTable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FairValueMeasurementFrequencyDomain_93c3de45-d575-4e3d-8824-f88e5156be29_terseLabel_en-US" xlink:label="lab_us-gaap_FairValueMeasurementFrequencyDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Measurement Frequency [Domain]</link:label>
    <link:label id="lab_us-gaap_FairValueMeasurementFrequencyDomain_label_en-US" xlink:label="lab_us-gaap_FairValueMeasurementFrequencyDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Measurement Frequency [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueMeasurementFrequencyDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueMeasurementFrequencyDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueMeasurementFrequencyDomain" xlink:to="lab_us-gaap_FairValueMeasurementFrequencyDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_srt_CounterpartyNameAxis_ae4ddd93-f22d-49a1-8901-501a458bebfb_terseLabel_en-US" xlink:label="lab_srt_CounterpartyNameAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Counterparty Name [Axis]</link:label>
    <link:label id="lab_srt_CounterpartyNameAxis_label_en-US" xlink:label="lab_srt_CounterpartyNameAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Counterparty Name [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_srt_CounterpartyNameAxis" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_CounterpartyNameAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_CounterpartyNameAxis" xlink:to="lab_srt_CounterpartyNameAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_srt_ConsolidationItemsDomain_fb7ce190-7daa-44f9-9913-0af7f14692cd_terseLabel_en-US" xlink:label="lab_srt_ConsolidationItemsDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Consolidation Items [Domain]</link:label>
    <link:label id="lab_srt_ConsolidationItemsDomain_label_en-US" xlink:label="lab_srt_ConsolidationItemsDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Consolidation Items [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ConsolidationItemsDomain" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ConsolidationItemsDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_ConsolidationItemsDomain" xlink:to="lab_srt_ConsolidationItemsDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_EnergyProductionAgreementsAccountsReceivableFromExcessCashFlowsAboveThreshold_f0d51f3d-df69-4bf9-ae06-d60411171d23_terseLabel_en-US" xlink:label="lab_tgen_EnergyProductionAgreementsAccountsReceivableFromExcessCashFlowsAboveThreshold" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Accounts receivable from excess cash flows above threshold</link:label>
    <link:label id="lab_tgen_EnergyProductionAgreementsAccountsReceivableFromExcessCashFlowsAboveThreshold_label_en-US" xlink:label="lab_tgen_EnergyProductionAgreementsAccountsReceivableFromExcessCashFlowsAboveThreshold" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Energy Production Agreements, Accounts Receivable From Excess Cash Flows Above Threshold</link:label>
    <link:label id="lab_tgen_EnergyProductionAgreementsAccountsReceivableFromExcessCashFlowsAboveThreshold_documentation_en-US" xlink:label="lab_tgen_EnergyProductionAgreementsAccountsReceivableFromExcessCashFlowsAboveThreshold" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Energy Production Agreements, Accounts Receivable From Excess Cash Flows Above Threshold</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_EnergyProductionAgreementsAccountsReceivableFromExcessCashFlowsAboveThreshold" xlink:href="tgen-20241231.xsd#tgen_EnergyProductionAgreementsAccountsReceivableFromExcessCashFlowsAboveThreshold"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_EnergyProductionAgreementsAccountsReceivableFromExcessCashFlowsAboveThreshold" xlink:to="lab_tgen_EnergyProductionAgreementsAccountsReceivableFromExcessCashFlowsAboveThreshold" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EnergyEquipmentMember_499513b8-9e70-40d8-a9b1-e525ad4a215a_terseLabel_en-US" xlink:label="lab_us-gaap_EnergyEquipmentMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Energy systems</link:label>
    <link:label id="lab_us-gaap_EnergyEquipmentMember_label_en-US" xlink:label="lab_us-gaap_EnergyEquipmentMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Energy Equipment [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EnergyEquipmentMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EnergyEquipmentMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EnergyEquipmentMember" xlink:to="lab_us-gaap_EnergyEquipmentMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DeferredRevenueRevenueRecognized1_affe2cdd-6556-4e51-ba3e-9be8351c97a1_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredRevenueRevenueRecognized1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Deferred revenue recognized</link:label>
    <link:label id="lab_us-gaap_DeferredRevenueRevenueRecognized1_label_en-US" xlink:label="lab_us-gaap_DeferredRevenueRevenueRecognized1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred Revenue, Revenue Recognized</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredRevenueRevenueRecognized1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredRevenueRevenueRecognized1"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredRevenueRevenueRecognized1" xlink:to="lab_us-gaap_DeferredRevenueRevenueRecognized1" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncreaseDecreaseInOperatingAssetsAbstract_87dbeedf-7418-4e8c-af78-8a1f118e6295_terseLabel_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInOperatingAssetsAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">(Increase) decrease in:</link:label>
    <link:label id="lab_us-gaap_IncreaseDecreaseInOperatingAssetsAbstract_label_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInOperatingAssetsAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Increase (Decrease) in Operating Assets [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInOperatingAssetsAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInOperatingAssetsAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncreaseDecreaseInOperatingAssetsAbstract" xlink:to="lab_us-gaap_IncreaseDecreaseInOperatingAssetsAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_InterestPaidNet_ac3bb13d-cf51-4950-aefb-278744d649de_terseLabel_en-US" xlink:label="lab_us-gaap_InterestPaidNet" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Cash paid for interest</link:label>
    <link:label id="lab_us-gaap_InterestPaidNet_label_en-US" xlink:label="lab_us-gaap_InterestPaidNet" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Interest Paid, Excluding Capitalized Interest, Operating Activities</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InterestPaidNet" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InterestPaidNet"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_InterestPaidNet" xlink:to="lab_us-gaap_InterestPaidNet" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_EffectiveIncomeTaxRateReconciliationStateandLocalIncomeTaxesAmountCurrent_b809a189-f059-4373-8430-3f559a908d24_terseLabel_en-US" xlink:label="lab_tgen_EffectiveIncomeTaxRateReconciliationStateandLocalIncomeTaxesAmountCurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Current</link:label>
    <link:label id="lab_tgen_EffectiveIncomeTaxRateReconciliationStateandLocalIncomeTaxesAmountCurrent_label_en-US" xlink:label="lab_tgen_EffectiveIncomeTaxRateReconciliationStateandLocalIncomeTaxesAmountCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Effective Income Tax Rate Reconciliation, State and Local Income Taxes, Amount, Current</link:label>
    <link:label id="lab_tgen_EffectiveIncomeTaxRateReconciliationStateandLocalIncomeTaxesAmountCurrent_documentation_en-US" xlink:label="lab_tgen_EffectiveIncomeTaxRateReconciliationStateandLocalIncomeTaxesAmountCurrent" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Effective Income Tax Rate Reconciliation, State and Local Income Taxes, Amount, Current</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_EffectiveIncomeTaxRateReconciliationStateandLocalIncomeTaxesAmountCurrent" xlink:href="tgen-20241231.xsd#tgen_EffectiveIncomeTaxRateReconciliationStateandLocalIncomeTaxesAmountCurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_EffectiveIncomeTaxRateReconciliationStateandLocalIncomeTaxesAmountCurrent" xlink:to="lab_tgen_EffectiveIncomeTaxRateReconciliationStateandLocalIncomeTaxesAmountCurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FairValueInputsLevel1Member_c7cd3ed4-a3d1-4e01-b059-868a06677213_terseLabel_en-US" xlink:label="lab_us-gaap_FairValueInputsLevel1Member" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Level 1</link:label>
    <link:label id="lab_us-gaap_FairValueInputsLevel1Member_label_en-US" xlink:label="lab_us-gaap_FairValueInputsLevel1Member" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Fair Value, Inputs, Level 1 [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueInputsLevel1Member" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueInputsLevel1Member"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueInputsLevel1Member" xlink:to="lab_us-gaap_FairValueInputsLevel1Member" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ConcentrationRiskByBenchmarkAxis_814e2f8d-3b8f-4adc-9e94-ab532f121076_terseLabel_en-US" xlink:label="lab_us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Concentration Risk Benchmark [Axis]</link:label>
    <link:label id="lab_us-gaap_ConcentrationRiskByBenchmarkAxis_label_en-US" xlink:label="lab_us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Concentration Risk Benchmark [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskByBenchmarkAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:to="lab_us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefits_b8959a7a-854e-482b-8ba3-de877e242783_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefits" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Stock options</link:label>
    <link:label id="lab_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefits_label_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefits" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred Tax Assets, Tax Deferred Expense, Compensation and Benefits</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefits" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefits"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefits" xlink:to="lab_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefits" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AssetsCurrent_54019a1c-8cbb-4571-935e-98f58593cd57_totalLabel_en-US" xlink:label="lab_us-gaap_AssetsCurrent" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Total current assets</link:label>
    <link:label id="lab_us-gaap_AssetsCurrent_label_en-US" xlink:label="lab_us-gaap_AssetsCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Assets, Current</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetsCurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetsCurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AssetsCurrent" xlink:to="lab_us-gaap_AssetsCurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_StatementOfCashFlowsAbstract_a31fc5b6-fa88-4cba-b365-1c2a495a5c7e_terseLabel_en-US" xlink:label="lab_us-gaap_StatementOfCashFlowsAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Statement of Cash Flows [Abstract]</link:label>
    <link:label id="lab_us-gaap_StatementOfCashFlowsAbstract_label_en-US" xlink:label="lab_us-gaap_StatementOfCashFlowsAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Statement of Cash Flows [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementOfCashFlowsAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementOfCashFlowsAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StatementOfCashFlowsAbstract" xlink:to="lab_us-gaap_StatementOfCashFlowsAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_srt_RestatementDomain_de20707d-d764-43fd-80ac-fa56f73c72e5_terseLabel_en-US" xlink:label="lab_srt_RestatementDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Revision of Prior Period [Domain]</link:label>
    <link:label id="lab_srt_RestatementDomain_label_en-US" xlink:label="lab_srt_RestatementDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Revision of Prior Period [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RestatementDomain" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RestatementDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_RestatementDomain" xlink:to="lab_srt_RestatementDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncreaseDecreaseInAccruedLiabilities_5013afd5-0e57-4cf7-b452-1e13d9544a03_terseLabel_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInAccruedLiabilities" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Accrued expenses</link:label>
    <link:label id="lab_us-gaap_IncreaseDecreaseInAccruedLiabilities_label_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInAccruedLiabilities" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Increase (Decrease) in Accrued Liabilities</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInAccruedLiabilities" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInAccruedLiabilities"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncreaseDecreaseInAccruedLiabilities" xlink:to="lab_us-gaap_IncreaseDecreaseInAccruedLiabilities" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_d4d4876a-a9b5-470c-9e0d-24d9dedec277_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Exercisable (shares)</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercisable, Number</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_80ab1acd-5d1b-4a4e-975c-d807b93ef13b_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Weighted-average grant date fair value of options granted</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Grants in Period, Weighted Average Grant Date Fair Value</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_JohnN.HatsopoulosAndEarlR.LewisIIIMember_0ca42b85-1a6e-448c-a71c-af3d5a7c0be3_terseLabel_en-US" xlink:label="lab_tgen_JohnN.HatsopoulosAndEarlR.LewisIIIMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">John N. Hatsopoulos and Earl R. Lewis, III</link:label>
    <link:label id="lab_tgen_JohnN.HatsopoulosAndEarlR.LewisIIIMember_label_en-US" xlink:label="lab_tgen_JohnN.HatsopoulosAndEarlR.LewisIIIMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">John N. Hatsopoulos and Earl R. Lewis, III [Member]</link:label>
    <link:label id="lab_tgen_JohnN.HatsopoulosAndEarlR.LewisIIIMember_documentation_en-US" xlink:label="lab_tgen_JohnN.HatsopoulosAndEarlR.LewisIIIMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">John N. Hatsopoulos and Earl R. Lewis, III</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_JohnN.HatsopoulosAndEarlR.LewisIIIMember" xlink:href="tgen-20241231.xsd#tgen_JohnN.HatsopoulosAndEarlR.LewisIIIMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_JohnN.HatsopoulosAndEarlR.LewisIIIMember" xlink:to="lab_tgen_JohnN.HatsopoulosAndEarlR.LewisIIIMember" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntityWellKnownSeasonedIssuer_cee18935-ac26-45d7-91c8-ff85dba97ed5_terseLabel_en-US" xlink:label="lab_dei_EntityWellKnownSeasonedIssuer" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Entity Well-known Seasoned Issuer</link:label>
    <link:label id="lab_dei_EntityWellKnownSeasonedIssuer_label_en-US" xlink:label="lab_dei_EntityWellKnownSeasonedIssuer" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Well-known Seasoned Issuer</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityWellKnownSeasonedIssuer" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityWellKnownSeasonedIssuer"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityWellKnownSeasonedIssuer" xlink:to="lab_dei_EntityWellKnownSeasonedIssuer" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncomeTaxDisclosureTextBlock_9d7a8ed4-58af-4b45-b31c-88af946033b3_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeTaxDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Income taxes</link:label>
    <link:label id="lab_us-gaap_IncomeTaxDisclosureTextBlock_label_en-US" xlink:label="lab_us-gaap_IncomeTaxDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Income Tax Disclosure [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxDisclosureTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxDisclosureTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeTaxDisclosureTextBlock" xlink:to="lab_us-gaap_IncomeTaxDisclosureTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour_d8817e32-9ad8-481d-b970-bf67c4648019_terseLabel_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">2028</link:label>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour_label_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Lessee, Operating Lease, Liability, to be Paid, Year Four</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:to="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_IntangibleLiabilityGross_7b52a23a-df15-4073-97d1-f11c0ba9bcb4_terseLabel_en-US" xlink:label="lab_tgen_IntangibleLiabilityGross" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Intangible liability</link:label>
    <link:label id="lab_tgen_IntangibleLiabilityGross_label_en-US" xlink:label="lab_tgen_IntangibleLiabilityGross" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Intangible Liability, Gross</link:label>
    <link:label id="lab_tgen_IntangibleLiabilityGross_documentation_en-US" xlink:label="lab_tgen_IntangibleLiabilityGross" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Intangible Liability, Gross</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_IntangibleLiabilityGross" xlink:href="tgen-20241231.xsd#tgen_IntangibleLiabilityGross"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_IntangibleLiabilityGross" xlink:to="lab_tgen_IntangibleLiabilityGross" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_AcquisitionNetOperatingLossLimitationPeriod_aaf33c5f-8474-40be-9881-1d824c2f8a9e_terseLabel_en-US" xlink:label="lab_tgen_AcquisitionNetOperatingLossLimitationPeriod" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Period of limitation on acquired NOL</link:label>
    <link:label id="lab_tgen_AcquisitionNetOperatingLossLimitationPeriod_label_en-US" xlink:label="lab_tgen_AcquisitionNetOperatingLossLimitationPeriod" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Acquisition, Net Operating Loss, Limitation Period</link:label>
    <link:label id="lab_tgen_AcquisitionNetOperatingLossLimitationPeriod_documentation_en-US" xlink:label="lab_tgen_AcquisitionNetOperatingLossLimitationPeriod" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Acquisition, Net Operating Loss, Limitation Period</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AcquisitionNetOperatingLossLimitationPeriod" xlink:href="tgen-20241231.xsd#tgen_AcquisitionNetOperatingLossLimitationPeriod"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_AcquisitionNetOperatingLossLimitationPeriod" xlink:to="lab_tgen_AcquisitionNetOperatingLossLimitationPeriod" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AssetAcquisitionTableTextBlock_9c4c01df-4154-4a0e-87b9-6f8468b6c12f_terseLabel_en-US" xlink:label="lab_us-gaap_AssetAcquisitionTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Asset Acquisition</link:label>
    <link:label id="lab_us-gaap_AssetAcquisitionTableTextBlock_label_en-US" xlink:label="lab_us-gaap_AssetAcquisitionTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Asset Acquisition [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetAcquisitionTableTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetAcquisitionTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AssetAcquisitionTableTextBlock" xlink:to="lab_us-gaap_AssetAcquisitionTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract_be75d322-53d6-4853-a4e4-096ce767b8ab_terseLabel_en-US" xlink:label="lab_us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Organization, Consolidation and Presentation of Financial Statements [Abstract]</link:label>
    <link:label id="lab_us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract_label_en-US" xlink:label="lab_us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Organization, Consolidation and Presentation of Financial Statements [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract" xlink:to="lab_us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent_e588ae5b-c161-409e-b4e1-6bf7fe398a8a_terseLabel_en-US" xlink:label="lab_us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Weighted-average discount rate - operating leases (percent)</link:label>
    <link:label id="lab_us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent_label_en-US" xlink:label="lab_us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Operating Lease, Weighted Average Discount Rate, Percent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent" xlink:to="lab_us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_LesseeOperatingLeaseOptionToExtendNumberOfOptions_0fb025d3-c689-428c-9c36-df2c6f32a916_terseLabel_en-US" xlink:label="lab_tgen_LesseeOperatingLeaseOptionToExtendNumberOfOptions" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Number of options to extend lease</link:label>
    <link:label id="lab_tgen_LesseeOperatingLeaseOptionToExtendNumberOfOptions_label_en-US" xlink:label="lab_tgen_LesseeOperatingLeaseOptionToExtendNumberOfOptions" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Lessee, Operating Lease, Option To Extend, Number Of Options</link:label>
    <link:label id="lab_tgen_LesseeOperatingLeaseOptionToExtendNumberOfOptions_documentation_en-US" xlink:label="lab_tgen_LesseeOperatingLeaseOptionToExtendNumberOfOptions" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Lessee, Operating Lease, Option To Extend, Number Of Options</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_LesseeOperatingLeaseOptionToExtendNumberOfOptions" xlink:href="tgen-20241231.xsd#tgen_LesseeOperatingLeaseOptionToExtendNumberOfOptions"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_LesseeOperatingLeaseOptionToExtendNumberOfOptions" xlink:to="lab_tgen_LesseeOperatingLeaseOptionToExtendNumberOfOptions" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearThree_355522bd-9474-4c75-90a6-b0e63c6beb54_terseLabel_en-US" xlink:label="lab_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearThree" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">2027</link:label>
    <link:label id="lab_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearThree_label_en-US" xlink:label="lab_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearThree" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Finite-Lived Intangible Assets And Liability, Net, Amortization Expense, Rolling Year Three</link:label>
    <link:label id="lab_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearThree_documentation_en-US" xlink:label="lab_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearThree" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Finite-Lived Intangible Assets And Liability, Net, Amortization Expense, Rolling Year Three</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearThree" xlink:href="tgen-20241231.xsd#tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearThree"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearThree" xlink:to="lab_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearThree" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_NetCashProvidedByUsedInFinancingActivities_5b2395e0-cba2-4ba1-8b01-6a656050f059_totalLabel_en-US" xlink:label="lab_us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Net cash provided by financing activities</link:label>
    <link:label id="lab_us-gaap_NetCashProvidedByUsedInFinancingActivities_label_en-US" xlink:label="lab_us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Net Cash Provided by (Used in) Financing Activities</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivities"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:to="lab_us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncomeTaxReconciliationNondeductibleExpenseImpairmentLosses_0d82d37a-b3b9-4a7e-bea5-51ed70b01943_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeTaxReconciliationNondeductibleExpenseImpairmentLosses" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Goodwill impairment</link:label>
    <link:label id="lab_us-gaap_IncomeTaxReconciliationNondeductibleExpenseImpairmentLosses_label_en-US" xlink:label="lab_us-gaap_IncomeTaxReconciliationNondeductibleExpenseImpairmentLosses" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Effective Income Tax Rate Reconciliation, Nondeductible Expense, Impairment Losses, Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxReconciliationNondeductibleExpenseImpairmentLosses" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxReconciliationNondeductibleExpenseImpairmentLosses"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeTaxReconciliationNondeductibleExpenseImpairmentLosses" xlink:to="lab_us-gaap_IncomeTaxReconciliationNondeductibleExpenseImpairmentLosses" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_IncomeTaxExpenseBenefitState_7097a8d3-91a3-46d0-8fc2-57b00277b7b9_terseLabel_en-US" xlink:label="lab_tgen_IncomeTaxExpenseBenefitState" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">State income tax provision</link:label>
    <link:label id="lab_tgen_IncomeTaxExpenseBenefitState_label_en-US" xlink:label="lab_tgen_IncomeTaxExpenseBenefitState" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Income Tax Expense (Benefit), State</link:label>
    <link:label id="lab_tgen_IncomeTaxExpenseBenefitState_documentation_en-US" xlink:label="lab_tgen_IncomeTaxExpenseBenefitState" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Income Tax Expense (Benefit), State</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_IncomeTaxExpenseBenefitState" xlink:href="tgen-20241231.xsd#tgen_IncomeTaxExpenseBenefitState"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_IncomeTaxExpenseBenefitState" xlink:to="lab_tgen_IncomeTaxExpenseBenefitState" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OperatingLossCarryforwardsLineItems_f94e5d43-b850-4fe8-8d2f-c9a0bfedcc17_terseLabel_en-US" xlink:label="lab_us-gaap_OperatingLossCarryforwardsLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Operating Loss Carryforwards [Line Items]</link:label>
    <link:label id="lab_us-gaap_OperatingLossCarryforwardsLineItems_label_en-US" xlink:label="lab_us-gaap_OperatingLossCarryforwardsLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Operating Loss Carryforwards [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLossCarryforwardsLineItems" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLossCarryforwardsLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OperatingLossCarryforwardsLineItems" xlink:to="lab_us-gaap_OperatingLossCarryforwardsLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SellingExpense_cd77826c-c5d5-494b-919d-066e69e6fa59_terseLabel_en-US" xlink:label="lab_us-gaap_SellingExpense" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Selling</link:label>
    <link:label id="lab_us-gaap_SellingExpense_label_en-US" xlink:label="lab_us-gaap_SellingExpense" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Selling Expense</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SellingExpense" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SellingExpense"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SellingExpense" xlink:to="lab_us-gaap_SellingExpense" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntityRegistrantName_c35d3f85-be8f-4952-afbe-18b068fff026_terseLabel_en-US" xlink:label="lab_dei_EntityRegistrantName" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Entity Registrant Name</link:label>
    <link:label id="lab_dei_EntityRegistrantName_label_en-US" xlink:label="lab_dei_EntityRegistrantName" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Registrant Name</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityRegistrantName" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityRegistrantName"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityRegistrantName" xlink:to="lab_dei_EntityRegistrantName" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AdjToNonPeoNeoCompFnTextBlock_terseLabel_en-US" xlink:label="lab_ecd_AdjToNonPeoNeoCompFnTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Adjustment to Non-PEO NEO Compensation Footnote</link:label>
    <link:label id="lab_ecd_AdjToNonPeoNeoCompFnTextBlock_label_en-US" xlink:label="lab_ecd_AdjToNonPeoNeoCompFnTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Adjustment to Non-PEO NEO Compensation Footnote [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AdjToNonPeoNeoCompFnTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AdjToNonPeoNeoCompFnTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AdjToNonPeoNeoCompFnTextBlock" xlink:to="lab_ecd_AdjToNonPeoNeoCompFnTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DepreciationDepletionAndAmortization_edec2065-a30d-4532-852a-3fecf82055d6_terseLabel_en-US" xlink:label="lab_us-gaap_DepreciationDepletionAndAmortization" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Depreciation, accretion and amortization, net</link:label>
    <link:label id="lab_us-gaap_DepreciationDepletionAndAmortization_label_en-US" xlink:label="lab_us-gaap_DepreciationDepletionAndAmortization" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Depreciation, Depletion and Amortization</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DepreciationDepletionAndAmortization" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DepreciationDepletionAndAmortization"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DepreciationDepletionAndAmortization" xlink:to="lab_us-gaap_DepreciationDepletionAndAmortization" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_GrossProfit_c739b734-e1e2-4b5d-b95e-7fd213cacadf_totalLabel_en-US" xlink:label="lab_us-gaap_GrossProfit" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Gross profit</link:label>
    <link:label id="lab_us-gaap_GrossProfit_label_en-US" xlink:label="lab_us-gaap_GrossProfit" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Gross Profit</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GrossProfit" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GrossProfit"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_GrossProfit" xlink:to="lab_us-gaap_GrossProfit" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IntangibleAssetsDisclosureTextBlock_04330005-da23-4dac-a70a-372f51c6fad8_terseLabel_en-US" xlink:label="lab_us-gaap_IntangibleAssetsDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Intangible assets and liabilities other than goodwill</link:label>
    <link:label id="lab_us-gaap_IntangibleAssetsDisclosureTextBlock_label_en-US" xlink:label="lab_us-gaap_IntangibleAssetsDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Intangible Assets Disclosure [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IntangibleAssetsDisclosureTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IntangibleAssetsDisclosureTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IntangibleAssetsDisclosureTextBlock" xlink:to="lab_us-gaap_IntangibleAssetsDisclosureTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfProductWarrantyLiabilityTableTextBlock_24401f63-13cd-475f-ae56-fdd45cb82df6_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfProductWarrantyLiabilityTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Schedule of Product Warranty Reserve</link:label>
    <link:label id="lab_us-gaap_ScheduleOfProductWarrantyLiabilityTableTextBlock_label_en-US" xlink:label="lab_us-gaap_ScheduleOfProductWarrantyLiabilityTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Product Warranty Liability [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfProductWarrantyLiabilityTableTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfProductWarrantyLiabilityTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfProductWarrantyLiabilityTableTextBlock" xlink:to="lab_us-gaap_ScheduleOfProductWarrantyLiabilityTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AwardGrantDateFairValue_terseLabel_en-US" xlink:label="lab_ecd_AwardGrantDateFairValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Fair Value as of Grant Date</link:label>
    <link:label id="lab_ecd_AwardGrantDateFairValue_label_en-US" xlink:label="lab_ecd_AwardGrantDateFairValue" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Award Grant Date Fair Value</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardGrantDateFairValue" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AwardGrantDateFairValue"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AwardGrantDateFairValue" xlink:to="lab_ecd_AwardGrantDateFairValue" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CustomerConcentrationRiskMember_037994e0-56ba-4853-b24b-6d80c167b7d4_terseLabel_en-US" xlink:label="lab_us-gaap_CustomerConcentrationRiskMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Customer concentration risk</link:label>
    <link:label id="lab_us-gaap_CustomerConcentrationRiskMember_label_en-US" xlink:label="lab_us-gaap_CustomerConcentrationRiskMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Customer Concentration Risk [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CustomerConcentrationRiskMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CustomerConcentrationRiskMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CustomerConcentrationRiskMember" xlink:to="lab_us-gaap_CustomerConcentrationRiskMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FairValueInputsLevel2Member_823544ac-506b-4b51-8c8e-2c5fb3d7cca8_terseLabel_en-US" xlink:label="lab_us-gaap_FairValueInputsLevel2Member" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Level 2</link:label>
    <link:label id="lab_us-gaap_FairValueInputsLevel2Member_label_en-US" xlink:label="lab_us-gaap_FairValueInputsLevel2Member" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Fair Value, Inputs, Level 2 [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueInputsLevel2Member" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueInputsLevel2Member"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueInputsLevel2Member" xlink:to="lab_us-gaap_FairValueInputsLevel2Member" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue_0bdbd768-f57b-4218-97c3-3bca84f7b46f_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Vested and expected to vest, Aggregate Intrinsic Value</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested and Expected to Vest, Outstanding, Aggregate Intrinsic Value</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_AssetAcquisitionLiabilitiesAssumedCurrent_87bf3a04-2aa4-45f5-b9a2-84ce3d9615a4_totalLabel_en-US" xlink:label="lab_tgen_AssetAcquisitionLiabilitiesAssumedCurrent" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Liabilities assumed, current</link:label>
    <link:label id="lab_tgen_AssetAcquisitionLiabilitiesAssumedCurrent_label_en-US" xlink:label="lab_tgen_AssetAcquisitionLiabilitiesAssumedCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Asset Acquisition, Liabilities Assumed, Current</link:label>
    <link:label id="lab_tgen_AssetAcquisitionLiabilitiesAssumedCurrent_documentation_en-US" xlink:label="lab_tgen_AssetAcquisitionLiabilitiesAssumedCurrent" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Asset Acquisition, Liabilities Assumed, Current</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AssetAcquisitionLiabilitiesAssumedCurrent" xlink:href="tgen-20241231.xsd#tgen_AssetAcquisitionLiabilitiesAssumedCurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_AssetAcquisitionLiabilitiesAssumedCurrent" xlink:to="lab_tgen_AssetAcquisitionLiabilitiesAssumedCurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DisaggregationOfRevenueTableTextBlock_b1f5cb0d-afeb-4e2c-a7e9-3fa567394e1e_terseLabel_en-US" xlink:label="lab_us-gaap_DisaggregationOfRevenueTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Disaggregation of Revenue</link:label>
    <link:label id="lab_us-gaap_DisaggregationOfRevenueTableTextBlock_label_en-US" xlink:label="lab_us-gaap_DisaggregationOfRevenueTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Disaggregation of Revenue [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisaggregationOfRevenueTableTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisaggregationOfRevenueTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DisaggregationOfRevenueTableTextBlock" xlink:to="lab_us-gaap_DisaggregationOfRevenueTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_AcquisitionAnnualNOLLimitationAmount_9801e911-c92f-4d8d-9690-faab3c36d136_terseLabel_en-US" xlink:label="lab_tgen_AcquisitionAnnualNOLLimitationAmount" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Annual limitation of acquired NOL</link:label>
    <link:label id="lab_tgen_AcquisitionAnnualNOLLimitationAmount_label_en-US" xlink:label="lab_tgen_AcquisitionAnnualNOLLimitationAmount" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Acquisition, Annual NOL Limitation, Amount</link:label>
    <link:label id="lab_tgen_AcquisitionAnnualNOLLimitationAmount_documentation_en-US" xlink:label="lab_tgen_AcquisitionAnnualNOLLimitationAmount" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Acquisition, Annual NOL Limitation, Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AcquisitionAnnualNOLLimitationAmount" xlink:href="tgen-20241231.xsd#tgen_AcquisitionAnnualNOLLimitationAmount"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_AcquisitionAnnualNOLLimitationAmount" xlink:to="lab_tgen_AcquisitionAnnualNOLLimitationAmount" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_RestatementDateAxis_terseLabel_en-US" xlink:label="lab_ecd_RestatementDateAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Restatement Determination Date:</link:label>
    <link:label id="lab_ecd_RestatementDateAxis_label_en-US" xlink:label="lab_ecd_RestatementDateAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Restatement Determination Date [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_RestatementDateAxis" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_RestatementDateAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_RestatementDateAxis" xlink:to="lab_ecd_RestatementDateAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ConcentrationRiskByTypeAxis_beddbc72-893a-4b08-b9aa-7be5b720e9cc_terseLabel_en-US" xlink:label="lab_us-gaap_ConcentrationRiskByTypeAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Concentration Risk Type [Axis]</link:label>
    <link:label id="lab_us-gaap_ConcentrationRiskByTypeAxis_label_en-US" xlink:label="lab_us-gaap_ConcentrationRiskByTypeAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Concentration Risk Type [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskByTypeAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskByTypeAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ConcentrationRiskByTypeAxis" xlink:to="lab_us-gaap_ConcentrationRiskByTypeAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CommonStockValue_51ae22aa-7542-4470-a439-8e7307ed55ee_terseLabel_en-US" xlink:label="lab_us-gaap_CommonStockValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Stockholders&#8217; equity:</link:label>
    <link:label id="lab_us-gaap_CommonStockValue_label_en-US" xlink:label="lab_us-gaap_CommonStockValue" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Common Stock, Value, Issued</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockValue" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockValue"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CommonStockValue" xlink:to="lab_us-gaap_CommonStockValue" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_DocumentFinStmtErrorCorrectionFlag_af82b3df-9009-46aa-b098-7582069e4f36_terseLabel_en-US" xlink:label="lab_dei_DocumentFinStmtErrorCorrectionFlag" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Document Financial Statement Error Correction [Flag]</link:label>
    <link:label id="lab_dei_DocumentFinStmtErrorCorrectionFlag_label_en-US" xlink:label="lab_dei_DocumentFinStmtErrorCorrectionFlag" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Document Financial Statement Error Correction [Flag]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_DocumentFinStmtErrorCorrectionFlag" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentFinStmtErrorCorrectionFlag"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_DocumentFinStmtErrorCorrectionFlag" xlink:to="lab_dei_DocumentFinStmtErrorCorrectionFlag" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_AssetAcquisitionReservesNoncurrent_2cb7d203-7e81-4ebc-bdac-9f58ebadc174_terseLabel_en-US" xlink:label="lab_tgen_AssetAcquisitionReservesNoncurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Deferred maintenance reserve</link:label>
    <link:label id="lab_tgen_AssetAcquisitionReservesNoncurrent_label_en-US" xlink:label="lab_tgen_AssetAcquisitionReservesNoncurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Asset Acquisition, Reserves, Noncurrent</link:label>
    <link:label id="lab_tgen_AssetAcquisitionReservesNoncurrent_documentation_en-US" xlink:label="lab_tgen_AssetAcquisitionReservesNoncurrent" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Asset Acquisition, Reserves, Noncurrent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AssetAcquisitionReservesNoncurrent" xlink:href="tgen-20241231.xsd#tgen_AssetAcquisitionReservesNoncurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_AssetAcquisitionReservesNoncurrent" xlink:to="lab_tgen_AssetAcquisitionReservesNoncurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DeferredTaxAssetsOther_73866ef8-7a53-4be2-a3b6-8ae79f9202f9_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsOther" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Other</link:label>
    <link:label id="lab_us-gaap_DeferredTaxAssetsOther_label_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsOther" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred Tax Assets, Other</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsOther" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsOther"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxAssetsOther" xlink:to="lab_us-gaap_DeferredTaxAssetsOther" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsLineItems_11cabd61-7e3c-4b35-a616-7e2ad642f690_terseLabel_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Finite-Lived Intangible Assets [Line Items]</link:label>
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsLineItems_label_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Finite-Lived Intangible Assets [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:to="lab_us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill_9fe94fe9-d66a-4d49-bd0c-02895986a04d_terseLabel_en-US" xlink:label="lab_us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Long-lived asset impairment</link:label>
    <link:label id="lab_us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill_label_en-US" xlink:label="lab_us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Impairment of Intangible Assets (Excluding Goodwill)</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill" xlink:to="lab_us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationByLiabilityClassDomain_8aa8bf44-70fa-45fe-bdae-001f34c92f8e_terseLabel_en-US" xlink:label="lab_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationByLiabilityClassDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Fair Value by Liability Class [Domain]</link:label>
    <link:label id="lab_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationByLiabilityClassDomain_label_en-US" xlink:label="lab_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationByLiabilityClassDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Fair Value by Liability Class [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationByLiabilityClassDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationByLiabilityClassDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationByLiabilityClassDomain" xlink:to="lab_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationByLiabilityClassDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_52ff7dfc-d864-4636-84ac-5416ceea4f6e_terseLabel_en-US" xlink:label="lab_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">CASH FLOWS FROM FINANCING ACTIVITIES:</link:label>
    <link:label id="lab_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_label_en-US" xlink:label="lab_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Net Cash Provided by (Used in) Financing Activities [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="lab_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ConcentrationRiskLineItems_de7e6e38-bf6a-4cc6-bf47-728266b2671d_terseLabel_en-US" xlink:label="lab_us-gaap_ConcentrationRiskLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Concentration Risk [Line Items]</link:label>
    <link:label id="lab_us-gaap_ConcentrationRiskLineItems_label_en-US" xlink:label="lab_us-gaap_ConcentrationRiskLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Concentration Risk [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskLineItems" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ConcentrationRiskLineItems" xlink:to="lab_us-gaap_ConcentrationRiskLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EarningsPerShareBasic_3f9126a9-6505-4db0-8a00-607fbc566bfd_terseLabel_en-US" xlink:label="lab_us-gaap_EarningsPerShareBasic" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Net income (loss) per share - basic (in USD per share)</link:label>
    <link:label id="lab_us-gaap_EarningsPerShareBasic_label_en-US" xlink:label="lab_us-gaap_EarningsPerShareBasic" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Earnings Per Share, Basic</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EarningsPerShareBasic" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EarningsPerShareBasic"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EarningsPerShareBasic" xlink:to="lab_us-gaap_EarningsPerShareBasic" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OperatingLeasePayments_b4ccab86-8bde-40e6-9a59-cdef3b7918fe_terseLabel_en-US" xlink:label="lab_us-gaap_OperatingLeasePayments" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Cash paid for amounts included in the measurement of operating lease liabilities</link:label>
    <link:label id="lab_us-gaap_OperatingLeasePayments_label_en-US" xlink:label="lab_us-gaap_OperatingLeasePayments" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Operating Lease, Payments</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeasePayments" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeasePayments"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OperatingLeasePayments" xlink:to="lab_us-gaap_OperatingLeasePayments" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AwardTmgMnpiDiscTextBlock_terseLabel_en-US" xlink:label="lab_ecd_AwardTmgMnpiDiscTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Award Timing MNPI Disclosure</link:label>
    <link:label id="lab_ecd_AwardTmgMnpiDiscTextBlock_label_en-US" xlink:label="lab_ecd_AwardTmgMnpiDiscTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Award Timing MNPI Disclosure [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardTmgMnpiDiscTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AwardTmgMnpiDiscTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AwardTmgMnpiDiscTextBlock" xlink:to="lab_ecd_AwardTmgMnpiDiscTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod_a4714d21-d0f8-407f-a4dc-7fdaf436b1fd_terseLabel_en-US" xlink:label="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Award expiration period</link:label>
    <link:label id="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod_label_en-US" xlink:label="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Expiration Period</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" xlink:to="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" xlink:type="arc" order="1"/>
    <link:label id="lab_srt_OwnershipDomain_71b2ec9f-1e63-4453-8b2b-382b312ef018_terseLabel_en-US" xlink:label="lab_srt_OwnershipDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Ownership [Domain]</link:label>
    <link:label id="lab_srt_OwnershipDomain_label_en-US" xlink:label="lab_srt_OwnershipDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Ownership [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_srt_OwnershipDomain" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_OwnershipDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_OwnershipDomain" xlink:to="lab_srt_OwnershipDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_TrademarksMember_dd9761a7-c2fd-46ae-9c2d-c5e2dd381055_terseLabel_en-US" xlink:label="lab_us-gaap_TrademarksMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Trademarks</link:label>
    <link:label id="lab_us-gaap_TrademarksMember_label_en-US" xlink:label="lab_us-gaap_TrademarksMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Trademarks [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TrademarksMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TrademarksMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_TrademarksMember" xlink:to="lab_us-gaap_TrademarksMember" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AggtPnsnAdjsSvcCstMember_terseLabel_en-US" xlink:label="lab_ecd_AggtPnsnAdjsSvcCstMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Aggregate Pension Adjustments Service Cost</link:label>
    <link:label id="lab_ecd_AggtPnsnAdjsSvcCstMember_label_en-US" xlink:label="lab_ecd_AggtPnsnAdjsSvcCstMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Aggregate Pension Adjustments Service Cost [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AggtPnsnAdjsSvcCstMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AggtPnsnAdjsSvcCstMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AggtPnsnAdjsSvcCstMember" xlink:to="lab_ecd_AggtPnsnAdjsSvcCstMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfGoodwillTable_20b4656a-d77f-4e76-8748-2c57bd1b61de_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfGoodwillTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Goodwill [Table]</link:label>
    <link:label id="lab_us-gaap_ScheduleOfGoodwillTable_label_en-US" xlink:label="lab_us-gaap_ScheduleOfGoodwillTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Goodwill [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfGoodwillTable" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfGoodwillTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfGoodwillTable" xlink:to="lab_us-gaap_ScheduleOfGoodwillTable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRollingYearFour_57022244-f132-4f6a-8750-1aa8802ad865_terseLabel_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRollingYearFour" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">2028</link:label>
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRollingYearFour_label_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRollingYearFour" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Finite-Lived Intangible Assets, Amortization Expense, Rolling Year Four</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRollingYearFour" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRollingYearFour"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRollingYearFour" xlink:to="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRollingYearFour" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentPolicyTextBlock_8500cafa-d0c1-4c59-846c-33c1d0b27e86_terseLabel_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Property, Plant and Equipment</link:label>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentPolicyTextBlock_label_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Property, Plant and Equipment, Policy [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentPolicyTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentPolicyTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentPolicyTextBlock" xlink:to="lab_us-gaap_PropertyPlantAndEquipmentPolicyTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LiabilitiesCurrent_49fbd66b-b802-431a-b182-f25ee21c9019_totalLabel_en-US" xlink:label="lab_us-gaap_LiabilitiesCurrent" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Total current liabilities</link:label>
    <link:label id="lab_us-gaap_LiabilitiesCurrent_label_en-US" xlink:label="lab_us-gaap_LiabilitiesCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Liabilities, Current</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LiabilitiesCurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LiabilitiesCurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LiabilitiesCurrent" xlink:to="lab_us-gaap_LiabilitiesCurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ConcentrationRiskCreditRisk_b9cbaab4-8531-4661-9a96-ef33e3981f92_terseLabel_en-US" xlink:label="lab_us-gaap_ConcentrationRiskCreditRisk" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Concentration of Credit Risk</link:label>
    <link:label id="lab_us-gaap_ConcentrationRiskCreditRisk_label_en-US" xlink:label="lab_us-gaap_ConcentrationRiskCreditRisk" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Concentration Risk, Credit Risk, Policy [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskCreditRisk" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskCreditRisk"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ConcentrationRiskCreditRisk" xlink:to="lab_us-gaap_ConcentrationRiskCreditRisk" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_b58df437-40e4-48cd-961d-1942df0db203_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Shares of common stock granted (in shares)</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Grants in Period</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FairValueAssetsMeasuredOnRecurringBasisTextBlock_aada4dfe-9d45-4c98-8c9a-8996469d0a96_terseLabel_en-US" xlink:label="lab_us-gaap_FairValueAssetsMeasuredOnRecurringBasisTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Schedule of Fair Value, Assets Measured on Recurring Basis</link:label>
    <link:label id="lab_us-gaap_FairValueAssetsMeasuredOnRecurringBasisTextBlock_label_en-US" xlink:label="lab_us-gaap_FairValueAssetsMeasuredOnRecurringBasisTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Fair Value, Assets Measured on Recurring Basis [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueAssetsMeasuredOnRecurringBasisTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueAssetsMeasuredOnRecurringBasisTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueAssetsMeasuredOnRecurringBasisTextBlock" xlink:to="lab_us-gaap_FairValueAssetsMeasuredOnRecurringBasisTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_OperatingAndFinanceLeaseLiabilityUndiscountedExcessAmount_e7adcff8-9ea2-4eaf-91e3-9d0a6cc12e1e_terseLabel_en-US" xlink:label="lab_tgen_OperatingAndFinanceLeaseLiabilityUndiscountedExcessAmount" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Less: imputed interest</link:label>
    <link:label id="lab_tgen_OperatingAndFinanceLeaseLiabilityUndiscountedExcessAmount_label_en-US" xlink:label="lab_tgen_OperatingAndFinanceLeaseLiabilityUndiscountedExcessAmount" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Operating and Finance Lease, Liability, Undiscounted Excess Amount</link:label>
    <link:label id="lab_tgen_OperatingAndFinanceLeaseLiabilityUndiscountedExcessAmount_documentation_en-US" xlink:label="lab_tgen_OperatingAndFinanceLeaseLiabilityUndiscountedExcessAmount" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Operating and Finance Lease, Liability, Undiscounted Excess Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_OperatingAndFinanceLeaseLiabilityUndiscountedExcessAmount" xlink:href="tgen-20241231.xsd#tgen_OperatingAndFinanceLeaseLiabilityUndiscountedExcessAmount"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_OperatingAndFinanceLeaseLiabilityUndiscountedExcessAmount" xlink:to="lab_tgen_OperatingAndFinanceLeaseLiabilityUndiscountedExcessAmount" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_BusinessCombinationsPolicy_58c024da-e859-463f-a154-cb3c725524fd_terseLabel_en-US" xlink:label="lab_us-gaap_BusinessCombinationsPolicy" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Business Combinations</link:label>
    <link:label id="lab_us-gaap_BusinessCombinationsPolicy_label_en-US" xlink:label="lab_us-gaap_BusinessCombinationsPolicy" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Business Combinations Policy [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationsPolicy" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationsPolicy"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessCombinationsPolicy" xlink:to="lab_us-gaap_BusinessCombinationsPolicy" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AssetAcquisitionConsiderationTransferred_1ad45950-0102-45cd-badd-a2cda1e089e5_totalLabel_en-US" xlink:label="lab_us-gaap_AssetAcquisitionConsiderationTransferred" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Total fair value of consideration transferred</link:label>
    <link:label id="lab_us-gaap_AssetAcquisitionConsiderationTransferred_label_en-US" xlink:label="lab_us-gaap_AssetAcquisitionConsiderationTransferred" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Asset Acquisition, Consideration Transferred</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetAcquisitionConsiderationTransferred" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetAcquisitionConsiderationTransferred"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AssetAcquisitionConsiderationTransferred" xlink:to="lab_us-gaap_AssetAcquisitionConsiderationTransferred" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntityAddressCityOrTown_4d5e128d-c464-408c-8c26-16a3919241ee_terseLabel_en-US" xlink:label="lab_dei_EntityAddressCityOrTown" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Entity Address, City or Town</link:label>
    <link:label id="lab_dei_EntityAddressCityOrTown_label_en-US" xlink:label="lab_dei_EntityAddressCityOrTown" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Address, City or Town</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityAddressCityOrTown" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityAddressCityOrTown"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityAddressCityOrTown" xlink:to="lab_dei_EntityAddressCityOrTown" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LesseeLeasesPolicyTextBlock_bc2ce7e6-8752-4186-bc76-0113ae3abec1_terseLabel_en-US" xlink:label="lab_us-gaap_LesseeLeasesPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Leases</link:label>
    <link:label id="lab_us-gaap_LesseeLeasesPolicyTextBlock_label_en-US" xlink:label="lab_us-gaap_LesseeLeasesPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Lessee, Leases [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeLeasesPolicyTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeLeasesPolicyTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LesseeLeasesPolicyTextBlock" xlink:to="lab_us-gaap_LesseeLeasesPolicyTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock_ed1db4a0-d637-4918-a197-a9a5f782ef79_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Schedule of Stock Option Activity</link:label>
    <link:label id="lab_us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock_label_en-US" xlink:label="lab_us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Payment Arrangement, Option, Activity [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" xlink:to="lab_us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue_167093b1-6cb3-4496-b949-4656bee8e7a5_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Exercised, Aggregate Intrinsic Value</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercises in Period, Intrinsic Value</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AllocatedShareBasedCompensationExpense_c17477c3-e004-4b69-9f2b-bb9fbfd84f9f_terseLabel_en-US" xlink:label="lab_us-gaap_AllocatedShareBasedCompensationExpense" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Recognized stock-based compensation</link:label>
    <link:label id="lab_us-gaap_AllocatedShareBasedCompensationExpense_label_en-US" xlink:label="lab_us-gaap_AllocatedShareBasedCompensationExpense" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Payment Arrangement, Expense</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AllocatedShareBasedCompensationExpense" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AllocatedShareBasedCompensationExpense"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AllocatedShareBasedCompensationExpense" xlink:to="lab_us-gaap_AllocatedShareBasedCompensationExpense" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_PaymentsForAssetAcquisitions_6a174114-c184-4b2e-b7b4-abff15dccd40_terseLabel_en-US" xlink:label="lab_tgen_PaymentsForAssetAcquisitions" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Cash</link:label>
    <link:label id="lab_tgen_PaymentsForAssetAcquisitions_label_en-US" xlink:label="lab_tgen_PaymentsForAssetAcquisitions" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Payments for Asset Acquisitions</link:label>
    <link:label id="lab_tgen_PaymentsForAssetAcquisitions_documentation_en-US" xlink:label="lab_tgen_PaymentsForAssetAcquisitions" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Payments for Asset Acquisitions</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_PaymentsForAssetAcquisitions" xlink:href="tgen-20241231.xsd#tgen_PaymentsForAssetAcquisitions"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_PaymentsForAssetAcquisitions" xlink:to="lab_tgen_PaymentsForAssetAcquisitions" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DisposalGroupsIncludingDiscontinuedOperationsDisclosureTextBlock_51f86c22-f325-414b-a9c7-008b50872b92_terseLabel_en-US" xlink:label="lab_us-gaap_DisposalGroupsIncludingDiscontinuedOperationsDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Sale of Energy Producing Assets and Goodwill Impairment</link:label>
    <link:label id="lab_us-gaap_DisposalGroupsIncludingDiscontinuedOperationsDisclosureTextBlock_label_en-US" xlink:label="lab_us-gaap_DisposalGroupsIncludingDiscontinuedOperationsDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Disposal Groups, Including Discontinued Operations, Disclosure [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisposalGroupsIncludingDiscontinuedOperationsDisclosureTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisposalGroupsIncludingDiscontinuedOperationsDisclosureTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DisposalGroupsIncludingDiscontinuedOperationsDisclosureTextBlock" xlink:to="lab_us-gaap_DisposalGroupsIncludingDiscontinuedOperationsDisclosureTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice_142f06bc-604a-490f-8743-53341386cb60_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Granted (usd per share)</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangements by Share-Based Payment Award, Options, Grants in Period, Weighted Average Exercise Price</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LossContingenciesTable_f5debb3d-6a0b-4c9c-a3b2-892648427f18_terseLabel_en-US" xlink:label="lab_us-gaap_LossContingenciesTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Loss Contingencies [Table]</link:label>
    <link:label id="lab_us-gaap_LossContingenciesTable_label_en-US" xlink:label="lab_us-gaap_LossContingenciesTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Loss Contingencies [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LossContingenciesTable" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LossContingenciesTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LossContingenciesTable" xlink:to="lab_us-gaap_LossContingenciesTable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_BusinessAcquisitionAxis_47f31e80-a960-4210-9030-fa19178ddfd6_terseLabel_en-US" xlink:label="lab_us-gaap_BusinessAcquisitionAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Business Acquisition [Axis]</link:label>
    <link:label id="lab_us-gaap_BusinessAcquisitionAxis_label_en-US" xlink:label="lab_us-gaap_BusinessAcquisitionAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Business Acquisition [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessAcquisitionAxis" xlink:to="lab_us-gaap_BusinessAcquisitionAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock_be5e008d-c629-4fe2-b82f-c9362766e1fc_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Schedule of Finite-Lived Intangible Assets</link:label>
    <link:label id="lab_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock_label_en-US" xlink:label="lab_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Finite-Lived Intangible Assets [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" xlink:to="lab_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_DvddsOrOthrErngsPdOnEqtyAwrdsNtOthrwsRflctdInTtlCompForCvrdYrMember_terseLabel_en-US" xlink:label="lab_ecd_DvddsOrOthrErngsPdOnEqtyAwrdsNtOthrwsRflctdInTtlCompForCvrdYrMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Dividends or Other Earnings Paid on Equity Awards not Otherwise Reflected in Total Compensation for Covered Year</link:label>
    <link:label id="lab_ecd_DvddsOrOthrErngsPdOnEqtyAwrdsNtOthrwsRflctdInTtlCompForCvrdYrMember_label_en-US" xlink:label="lab_ecd_DvddsOrOthrErngsPdOnEqtyAwrdsNtOthrwsRflctdInTtlCompForCvrdYrMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Dividends or Other Earnings Paid on Equity Awards not Otherwise Reflected in Total Compensation for Covered Year [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_DvddsOrOthrErngsPdOnEqtyAwrdsNtOthrwsRflctdInTtlCompForCvrdYrMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_DvddsOrOthrErngsPdOnEqtyAwrdsNtOthrwsRflctdInTtlCompForCvrdYrMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_DvddsOrOthrErngsPdOnEqtyAwrdsNtOthrwsRflctdInTtlCompForCvrdYrMember" xlink:to="lab_ecd_DvddsOrOthrErngsPdOnEqtyAwrdsNtOthrwsRflctdInTtlCompForCvrdYrMember" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_DocumentFiscalYearFocus_587eee83-3131-45d0-b6b8-793b9cfe0b7f_terseLabel_en-US" xlink:label="lab_dei_DocumentFiscalYearFocus" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Document Fiscal Year Focus</link:label>
    <link:label id="lab_dei_DocumentFiscalYearFocus_label_en-US" xlink:label="lab_dei_DocumentFiscalYearFocus" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Document Fiscal Year Focus</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_DocumentFiscalYearFocus" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentFiscalYearFocus"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_DocumentFiscalYearFocus" xlink:to="lab_dei_DocumentFiscalYearFocus" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_FiniteLivedIntangibleAssetsAndLiabilitiesNet_351f6c45-6f4c-4c2e-9a5b-6a37092663fe_totalLabel_en-US" xlink:label="lab_tgen_FiniteLivedIntangibleAssetsAndLiabilitiesNet" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Total</link:label>
    <link:label id="lab_tgen_FiniteLivedIntangibleAssetsAndLiabilitiesNet_label_en-US" xlink:label="lab_tgen_FiniteLivedIntangibleAssetsAndLiabilitiesNet" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Finite-Lived Intangible Assets And Liabilities, Net</link:label>
    <link:label id="lab_tgen_FiniteLivedIntangibleAssetsAndLiabilitiesNet_documentation_en-US" xlink:label="lab_tgen_FiniteLivedIntangibleAssetsAndLiabilitiesNet" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Finite-Lived Intangible Assets And Liabilities, Net</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_FiniteLivedIntangibleAssetsAndLiabilitiesNet" xlink:href="tgen-20241231.xsd#tgen_FiniteLivedIntangibleAssetsAndLiabilitiesNet"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_FiniteLivedIntangibleAssetsAndLiabilitiesNet" xlink:to="lab_tgen_FiniteLivedIntangibleAssetsAndLiabilitiesNet" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_AssetAcquisitionDeferredMaintenanceCostsIncurredPeriod_646259d8-1fd8-457a-accf-147cbab8a087_terseLabel_en-US" xlink:label="lab_tgen_AssetAcquisitionDeferredMaintenanceCostsIncurredPeriod" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Deferred maintenance costs incurred, period</link:label>
    <link:label id="lab_tgen_AssetAcquisitionDeferredMaintenanceCostsIncurredPeriod_label_en-US" xlink:label="lab_tgen_AssetAcquisitionDeferredMaintenanceCostsIncurredPeriod" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Asset Acquisition, Deferred Maintenance Costs Incurred, Period</link:label>
    <link:label id="lab_tgen_AssetAcquisitionDeferredMaintenanceCostsIncurredPeriod_documentation_en-US" xlink:label="lab_tgen_AssetAcquisitionDeferredMaintenanceCostsIncurredPeriod" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Asset Acquisition, Deferred Maintenance Costs Incurred, Period</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AssetAcquisitionDeferredMaintenanceCostsIncurredPeriod" xlink:href="tgen-20241231.xsd#tgen_AssetAcquisitionDeferredMaintenanceCostsIncurredPeriod"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_AssetAcquisitionDeferredMaintenanceCostsIncurredPeriod" xlink:to="lab_tgen_AssetAcquisitionDeferredMaintenanceCostsIncurredPeriod" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DebtInstrumentNameDomain_da122195-719e-44c6-852f-ab4e152c958a_terseLabel_en-US" xlink:label="lab_us-gaap_DebtInstrumentNameDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Debt Instrument, Name [Domain]</link:label>
    <link:label id="lab_us-gaap_DebtInstrumentNameDomain_label_en-US" xlink:label="lab_us-gaap_DebtInstrumentNameDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Debt Instrument, Name [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtInstrumentNameDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentNameDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DebtInstrumentNameDomain" xlink:to="lab_us-gaap_DebtInstrumentNameDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AssetsFairValueDisclosure_ea3e8da6-afc9-41a9-8e9a-98939a7c96ec_terseLabel_en-US" xlink:label="lab_us-gaap_AssetsFairValueDisclosure" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Total recurring fair value measurements</link:label>
    <link:label id="lab_us-gaap_AssetsFairValueDisclosure_d6248d89-2ae0-4f61-992f-9f9a8849b8a6_periodStartLabel_en-US" xlink:label="lab_us-gaap_AssetsFairValueDisclosure" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xml:lang="en-US">Beginning balance</link:label>
    <link:label id="lab_us-gaap_AssetsFairValueDisclosure_a32c19e2-b99b-451c-bc35-2b5be38a7b41_periodEndLabel_en-US" xlink:label="lab_us-gaap_AssetsFairValueDisclosure" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xml:lang="en-US">Ending balance</link:label>
    <link:label id="lab_us-gaap_AssetsFairValueDisclosure_label_en-US" xlink:label="lab_us-gaap_AssetsFairValueDisclosure" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Assets, Fair Value Disclosure</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetsFairValueDisclosure" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetsFairValueDisclosure"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AssetsFairValueDisclosure" xlink:to="lab_us-gaap_AssetsFairValueDisclosure" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_DocumentPeriodEndDate_406a68ab-bbc6-4003-bd10-d6af47722d0f_terseLabel_en-US" xlink:label="lab_dei_DocumentPeriodEndDate" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Document Period End Date</link:label>
    <link:label id="lab_dei_DocumentPeriodEndDate_label_en-US" xlink:label="lab_dei_DocumentPeriodEndDate" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Document Period End Date</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_DocumentPeriodEndDate" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentPeriodEndDate"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_DocumentPeriodEndDate" xlink:to="lab_dei_DocumentPeriodEndDate" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LossContingencyAccrualProvision_01133adb-793a-4a1c-8f40-66c2c6480e5f_terseLabel_en-US" xlink:label="lab_us-gaap_LossContingencyAccrualProvision" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Provision for litigation</link:label>
    <link:label id="lab_us-gaap_LossContingencyAccrualProvision_label_en-US" xlink:label="lab_us-gaap_LossContingencyAccrualProvision" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Loss Contingency Accrual, Provision</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LossContingencyAccrualProvision" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LossContingencyAccrualProvision"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LossContingencyAccrualProvision" xlink:to="lab_us-gaap_LossContingencyAccrualProvision" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FinanceLeaseLiabilityCurrent_553389fd-fc99-45e9-a9eb-10908e13b951_terseLabel_en-US" xlink:label="lab_us-gaap_FinanceLeaseLiabilityCurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Finance lease obligations, current</link:label>
    <link:label id="lab_us-gaap_FinanceLeaseLiabilityCurrent_label_en-US" xlink:label="lab_us-gaap_FinanceLeaseLiabilityCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Finance Lease, Liability, Current</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinanceLeaseLiabilityCurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FinanceLeaseLiabilityCurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FinanceLeaseLiabilityCurrent" xlink:to="lab_us-gaap_FinanceLeaseLiabilityCurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_InventoryFinishedGoodsNetOfReserves_6806da73-7a5c-44d1-8ba4-d62287c1b24a_terseLabel_en-US" xlink:label="lab_us-gaap_InventoryFinishedGoodsNetOfReserves" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Finished goods</link:label>
    <link:label id="lab_us-gaap_InventoryFinishedGoodsNetOfReserves_label_en-US" xlink:label="lab_us-gaap_InventoryFinishedGoodsNetOfReserves" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Inventory, Finished Goods, Net of Reserves</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryFinishedGoodsNetOfReserves" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InventoryFinishedGoodsNetOfReserves"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_InventoryFinishedGoodsNetOfReserves" xlink:to="lab_us-gaap_InventoryFinishedGoodsNetOfReserves" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_67d4fbfb-7423-440b-bb0f-d2ca658aca86_totalLabel_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Total lease payments</link:label>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_label_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Lessee, Operating Lease, Liability, to be Paid</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_OfficeSpaceAndWarehouseFacilitiesMember_459132ad-f1eb-42d1-9d4b-05c72d63b048_terseLabel_en-US" xlink:label="lab_tgen_OfficeSpaceAndWarehouseFacilitiesMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Office space and warehouse facilities</link:label>
    <link:label id="lab_tgen_OfficeSpaceAndWarehouseFacilitiesMember_label_en-US" xlink:label="lab_tgen_OfficeSpaceAndWarehouseFacilitiesMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Office Space and Warehouse Facilities [Member]</link:label>
    <link:label id="lab_tgen_OfficeSpaceAndWarehouseFacilitiesMember_documentation_en-US" xlink:label="lab_tgen_OfficeSpaceAndWarehouseFacilitiesMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Office Space and Warehouse Facilities [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_OfficeSpaceAndWarehouseFacilitiesMember" xlink:href="tgen-20241231.xsd#tgen_OfficeSpaceAndWarehouseFacilitiesMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_OfficeSpaceAndWarehouseFacilitiesMember" xlink:to="lab_tgen_OfficeSpaceAndWarehouseFacilitiesMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LineOfCreditFacilityLenderDomain_f6a3ae50-cfb1-4a90-a3b2-424b258dd64d_terseLabel_en-US" xlink:label="lab_us-gaap_LineOfCreditFacilityLenderDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Line of Credit Facility, Lender [Domain]</link:label>
    <link:label id="lab_us-gaap_LineOfCreditFacilityLenderDomain_label_en-US" xlink:label="lab_us-gaap_LineOfCreditFacilityLenderDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Line of Credit Facility, Lender [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LineOfCreditFacilityLenderDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LineOfCreditFacilityLenderDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LineOfCreditFacilityLenderDomain" xlink:to="lab_us-gaap_LineOfCreditFacilityLenderDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_InsiderTradingArrLineItems_label_en-US" xlink:label="lab_ecd_InsiderTradingArrLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Insider Trading Arrangements [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_InsiderTradingArrLineItems" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_InsiderTradingArrLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_InsiderTradingArrLineItems" xlink:to="lab_ecd_InsiderTradingArrLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree_c9e23cac-d699-4e05-ba4e-c97003de993e_terseLabel_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">2027</link:label>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree_label_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Lessee, Operating Lease, Liability, to be Paid, Year Three</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:to="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_BenefitforIncomeTaxesMember_17824573-3726-4c71-97c7-9cbc3b036e1d_terseLabel_en-US" xlink:label="lab_tgen_BenefitforIncomeTaxesMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Income Tax Provision</link:label>
    <link:label id="lab_tgen_BenefitforIncomeTaxesMember_label_en-US" xlink:label="lab_tgen_BenefitforIncomeTaxesMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Benefit for Income Taxes [Member]</link:label>
    <link:label id="lab_tgen_BenefitforIncomeTaxesMember_documentation_en-US" xlink:label="lab_tgen_BenefitforIncomeTaxesMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Benefit for Income Taxes [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_BenefitforIncomeTaxesMember" xlink:href="tgen-20241231.xsd#tgen_BenefitforIncomeTaxesMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_BenefitforIncomeTaxesMember" xlink:to="lab_tgen_BenefitforIncomeTaxesMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PrepaidExpenseAndOtherAssetsCurrent_1a2f0a6e-512a-4a95-be4a-2cb3a8482da4_terseLabel_en-US" xlink:label="lab_us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Prepaid and other current assets</link:label>
    <link:label id="lab_us-gaap_PrepaidExpenseAndOtherAssetsCurrent_label_en-US" xlink:label="lab_us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Prepaid Expense and Other Assets, Current</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PrepaidExpenseAndOtherAssetsCurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:to="lab_us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AdditionalCashFlowElementsInvestingActivitiesAbstract_a7f319ba-f37e-409e-a2b7-1b0f73077e75_terseLabel_en-US" xlink:label="lab_us-gaap_AdditionalCashFlowElementsInvestingActivitiesAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Non-cash investing activities</link:label>
    <link:label id="lab_us-gaap_AdditionalCashFlowElementsInvestingActivitiesAbstract_label_en-US" xlink:label="lab_us-gaap_AdditionalCashFlowElementsInvestingActivitiesAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Additional Cash Flow Elements, Investing Activities [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdditionalCashFlowElementsInvestingActivitiesAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AdditionalCashFlowElementsInvestingActivitiesAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AdditionalCashFlowElementsInvestingActivitiesAbstract" xlink:to="lab_us-gaap_AdditionalCashFlowElementsInvestingActivitiesAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PriorPeriodReclassificationAdjustmentDescription_fd47e656-c888-40fe-b8c8-bbf44ff2b458_terseLabel_en-US" xlink:label="lab_us-gaap_PriorPeriodReclassificationAdjustmentDescription" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Reclassification of Prior Year Presentation</link:label>
    <link:label id="lab_us-gaap_PriorPeriodReclassificationAdjustmentDescription_label_en-US" xlink:label="lab_us-gaap_PriorPeriodReclassificationAdjustmentDescription" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Reclassification, Comparability Adjustment [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PriorPeriodReclassificationAdjustmentDescription" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PriorPeriodReclassificationAdjustmentDescription"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PriorPeriodReclassificationAdjustmentDescription" xlink:to="lab_us-gaap_PriorPeriodReclassificationAdjustmentDescription" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingMaturityAbstract_f527fa67-202c-4bc0-9af3-8d5c9c0c51e2_terseLabel_en-US" xlink:label="lab_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingMaturityAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Finite-Lived Intangible Assets And Liability, Net, Amortization Expense, Rolling Maturity [Abstract]</link:label>
    <link:label id="lab_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingMaturityAbstract_label_en-US" xlink:label="lab_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingMaturityAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Finite-Lived Intangible Assets And Liability, Net, Amortization Expense, Rolling Maturity [Abstract]</link:label>
    <link:label id="lab_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingMaturityAbstract_documentation_en-US" xlink:label="lab_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingMaturityAbstract" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Finite-Lived Intangible Assets And Liability, Net, Amortization Expense, Rolling Maturity</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingMaturityAbstract" xlink:href="tgen-20241231.xsd#tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingMaturityAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingMaturityAbstract" xlink:to="lab_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingMaturityAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_DocumentTransitionReport_2101dc2b-ed33-4f0c-b8d0-4aa7f7fe74cc_terseLabel_en-US" xlink:label="lab_dei_DocumentTransitionReport" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Document Transition Report</link:label>
    <link:label id="lab_dei_DocumentTransitionReport_label_en-US" xlink:label="lab_dei_DocumentTransitionReport" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Document Transition Report</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_DocumentTransitionReport" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentTransitionReport"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_DocumentTransitionReport" xlink:to="lab_dei_DocumentTransitionReport" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_b4898bea-4f8c-4a71-983e-88c7d673bf98_terseLabel_en-US" xlink:label="lab_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Fair Value, Recurring and Nonrecurring [Table]</link:label>
    <link:label id="lab_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_label_en-US" xlink:label="lab_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Fair Value, Recurring and Nonrecurring [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable" xlink:to="lab_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable" xlink:type="arc" order="1"/>
    <link:label id="lab_srt_NameOfMajorCustomerDomain_01c2ca94-659e-47e7-be52-de1d55f58e8f_terseLabel_en-US" xlink:label="lab_srt_NameOfMajorCustomerDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Customer [Domain]</link:label>
    <link:label id="lab_srt_NameOfMajorCustomerDomain_label_en-US" xlink:label="lab_srt_NameOfMajorCustomerDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Customer [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_srt_NameOfMajorCustomerDomain" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_NameOfMajorCustomerDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_NameOfMajorCustomerDomain" xlink:to="lab_srt_NameOfMajorCustomerDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntityCurrentReportingStatus_397a8889-4b1f-43a4-b56f-e346418c7fd8_terseLabel_en-US" xlink:label="lab_dei_EntityCurrentReportingStatus" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Entity Current Reporting Status</link:label>
    <link:label id="lab_dei_EntityCurrentReportingStatus_label_en-US" xlink:label="lab_dei_EntityCurrentReportingStatus" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Current Reporting Status</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityCurrentReportingStatus" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityCurrentReportingStatus"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityCurrentReportingStatus" xlink:to="lab_dei_EntityCurrentReportingStatus" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RetainedEarningsMember_c7ee61ca-bd92-49cc-bdbd-f72672483262_terseLabel_en-US" xlink:label="lab_us-gaap_RetainedEarningsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Accumulated Deficit</link:label>
    <link:label id="lab_us-gaap_RetainedEarningsMember_label_en-US" xlink:label="lab_us-gaap_RetainedEarningsMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Retained Earnings [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RetainedEarningsMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RetainedEarningsMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RetainedEarningsMember" xlink:to="lab_us-gaap_RetainedEarningsMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AssetAcquisitionDomain_05e346a8-de93-4ac7-b941-a50eca907893_terseLabel_en-US" xlink:label="lab_us-gaap_AssetAcquisitionDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Asset Acquisition [Domain]</link:label>
    <link:label id="lab_us-gaap_AssetAcquisitionDomain_label_en-US" xlink:label="lab_us-gaap_AssetAcquisitionDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Asset Acquisition [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetAcquisitionDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetAcquisitionDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AssetAcquisitionDomain" xlink:to="lab_us-gaap_AssetAcquisitionDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit_c69b92da-d74a-4f2f-b8e0-3273f7f7f2bb_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Outstanding, Exercise Price Upper Range Limit (usd per share)</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Payment Arrangement, Option, Exercise Price Range, Upper Range Limit</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit" xlink:to="lab_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_24ba0f51-a672-4e77-9725-0795fd3431c7_terseLabel_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Increase (Decrease) in Stockholders' Equity [Roll Forward]</link:label>
    <link:label id="lab_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_label_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Increase (Decrease) in Stockholders' Equity [Roll Forward]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInStockholdersEquityRollForward"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward" xlink:to="lab_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_FiniteLivedIntangibleLiabilitiesAccumulatedAmortization_8e6e38af-c013-48bc-be64-8672bd1e3c96_negatedTerseLabel_en-US" xlink:label="lab_tgen_FiniteLivedIntangibleLiabilitiesAccumulatedAmortization" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Less - accumulated amortization</link:label>
    <link:label id="lab_tgen_FiniteLivedIntangibleLiabilitiesAccumulatedAmortization_label_en-US" xlink:label="lab_tgen_FiniteLivedIntangibleLiabilitiesAccumulatedAmortization" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Finite-Lived Intangible Liabilities, Accumulated Amortization</link:label>
    <link:label id="lab_tgen_FiniteLivedIntangibleLiabilitiesAccumulatedAmortization_documentation_en-US" xlink:label="lab_tgen_FiniteLivedIntangibleLiabilitiesAccumulatedAmortization" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Finite-Lived Intangible Liabilities, Accumulated Amortization</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_FiniteLivedIntangibleLiabilitiesAccumulatedAmortization" xlink:href="tgen-20241231.xsd#tgen_FiniteLivedIntangibleLiabilitiesAccumulatedAmortization"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_FiniteLivedIntangibleLiabilitiesAccumulatedAmortization" xlink:to="lab_tgen_FiniteLivedIntangibleLiabilitiesAccumulatedAmortization" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_ExecutiveCategoryAxis_terseLabel_en-US" xlink:label="lab_ecd_ExecutiveCategoryAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Executive Category:</link:label>
    <link:label id="lab_ecd_ExecutiveCategoryAxis_label_en-US" xlink:label="lab_ecd_ExecutiveCategoryAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Executive Category [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_ExecutiveCategoryAxis" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_ExecutiveCategoryAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_ExecutiveCategoryAxis" xlink:to="lab_ecd_ExecutiveCategoryAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_OperatingAndFinanceLeaseLiabilityToBePaidYearFive_87bc27da-c0d8-454b-ae46-b49078518bcd_terseLabel_en-US" xlink:label="lab_tgen_OperatingAndFinanceLeaseLiabilityToBePaidYearFive" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">2029</link:label>
    <link:label id="lab_tgen_OperatingAndFinanceLeaseLiabilityToBePaidYearFive_label_en-US" xlink:label="lab_tgen_OperatingAndFinanceLeaseLiabilityToBePaidYearFive" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Operating and Finance Lease, Liability, to be Paid, Year Five</link:label>
    <link:label id="lab_tgen_OperatingAndFinanceLeaseLiabilityToBePaidYearFive_documentation_en-US" xlink:label="lab_tgen_OperatingAndFinanceLeaseLiabilityToBePaidYearFive" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Operating and Finance Lease, Liability, to be Paid, Year Five</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_OperatingAndFinanceLeaseLiabilityToBePaidYearFive" xlink:href="tgen-20241231.xsd#tgen_OperatingAndFinanceLeaseLiabilityToBePaidYearFive"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_OperatingAndFinanceLeaseLiabilityToBePaidYearFive" xlink:to="lab_tgen_OperatingAndFinanceLeaseLiabilityToBePaidYearFive" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ContractBasedIntangibleAssetsMember_526008cb-e125-4efd-88d8-952fcf18a814_terseLabel_en-US" xlink:label="lab_us-gaap_ContractBasedIntangibleAssetsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Contract related intangibles</link:label>
    <link:label id="lab_us-gaap_ContractBasedIntangibleAssetsMember_ee27875d-bfbd-4888-88e4-b9911aac1c6f_verboseLabel_en-US" xlink:label="lab_us-gaap_ContractBasedIntangibleAssetsMember" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Contract related intangibles</link:label>
    <link:label id="lab_us-gaap_ContractBasedIntangibleAssetsMember_label_en-US" xlink:label="lab_us-gaap_ContractBasedIntangibleAssetsMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Contract-Based Intangible Assets [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractBasedIntangibleAssetsMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ContractBasedIntangibleAssetsMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ContractBasedIntangibleAssetsMember" xlink:to="lab_us-gaap_ContractBasedIntangibleAssetsMember" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_AssetAcquisitionMaintenanceAgreementsNumberOfCogenerationSystems_d6c56fc2-dd82-41e3-927f-086e43e44102_terseLabel_en-US" xlink:label="lab_tgen_AssetAcquisitionMaintenanceAgreementsNumberOfCogenerationSystems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Number of cogeneration systems under maintenance agreements</link:label>
    <link:label id="lab_tgen_AssetAcquisitionMaintenanceAgreementsNumberOfCogenerationSystems_label_en-US" xlink:label="lab_tgen_AssetAcquisitionMaintenanceAgreementsNumberOfCogenerationSystems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Asset Acquisition, Maintenance Agreements, Number Of Cogeneration Systems</link:label>
    <link:label id="lab_tgen_AssetAcquisitionMaintenanceAgreementsNumberOfCogenerationSystems_documentation_en-US" xlink:label="lab_tgen_AssetAcquisitionMaintenanceAgreementsNumberOfCogenerationSystems" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Asset Acquisition, Maintenance Agreements, Number Of Cogeneration Systems</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AssetAcquisitionMaintenanceAgreementsNumberOfCogenerationSystems" xlink:href="tgen-20241231.xsd#tgen_AssetAcquisitionMaintenanceAgreementsNumberOfCogenerationSystems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_AssetAcquisitionMaintenanceAgreementsNumberOfCogenerationSystems" xlink:to="lab_tgen_AssetAcquisitionMaintenanceAgreementsNumberOfCogenerationSystems" xlink:type="arc" order="1"/>
    <link:label id="lab_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearFive_681f56b6-52bd-4a67-8c27-1756c728f16a_terseLabel_en-US" xlink:label="lab_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearFive" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">2029</link:label>
    <link:label id="lab_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearFive_label_en-US" xlink:label="lab_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearFive" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Finite-Lived Intangible Assets And Liability, Net, Amortization Expense, Rolling Year Five</link:label>
    <link:label id="lab_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearFive_documentation_en-US" xlink:label="lab_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearFive" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Finite-Lived Intangible Assets And Liability, Net, Amortization Expense, Rolling Year Five</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearFive" xlink:href="tgen-20241231.xsd#tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearFive"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearFive" xlink:to="lab_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearFive" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PaymentForContingentConsiderationLiabilityInvestingActivities_a2595c81-f66b-454a-bef9-7c81e7effd0e_terseLabel_en-US" xlink:label="lab_us-gaap_PaymentForContingentConsiderationLiabilityInvestingActivities" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Contingent consideration paid</link:label>
    <link:label id="lab_us-gaap_PaymentForContingentConsiderationLiabilityInvestingActivities_label_en-US" xlink:label="lab_us-gaap_PaymentForContingentConsiderationLiabilityInvestingActivities" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Payment for Contingent Consideration Liability, Investing Activities</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentForContingentConsiderationLiabilityInvestingActivities" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentForContingentConsiderationLiabilityInvestingActivities"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PaymentForContingentConsiderationLiabilityInvestingActivities" xlink:to="lab_us-gaap_PaymentForContingentConsiderationLiabilityInvestingActivities" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1_bdf8057c-957b-4fcb-a9de-92fcc377fe1e_terseLabel_en-US" xlink:label="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Fair value of options issued</link:label>
    <link:label id="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1_label_en-US" xlink:label="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested in Period, Fair Value</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1" xlink:to="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsSubjectToExpiration_04ff3eaf-6b73-4ede-b2d7-1a6fb15499e1_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsSubjectToExpiration" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">NOLs which expire</link:label>
    <link:label id="lab_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsSubjectToExpiration_label_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsSubjectToExpiration" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred Tax Assets, Operating Loss Carryforwards, Subject to Expiration</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsSubjectToExpiration" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsSubjectToExpiration"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsSubjectToExpiration" xlink:to="lab_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsSubjectToExpiration" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncomeStatementLocationDomain_40043d41-b14a-4e3e-a166-14fef5340051_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeStatementLocationDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Statement of Income Location, Balance [Domain]</link:label>
    <link:label id="lab_us-gaap_IncomeStatementLocationDomain_label_en-US" xlink:label="lab_us-gaap_IncomeStatementLocationDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Statement of Income Location, Balance [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeStatementLocationDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeStatementLocationDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeStatementLocationDomain" xlink:to="lab_us-gaap_IncomeStatementLocationDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_CoSelectedMeasureName_terseLabel_en-US" xlink:label="lab_ecd_CoSelectedMeasureName" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Company Selected Measure Name</link:label>
    <link:label id="lab_ecd_CoSelectedMeasureName_label_en-US" xlink:label="lab_ecd_CoSelectedMeasureName" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Company Selected Measure Name</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_CoSelectedMeasureName" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_CoSelectedMeasureName"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_CoSelectedMeasureName" xlink:to="lab_ecd_CoSelectedMeasureName" xlink:type="arc" order="1"/>
  </link:labelLink>
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.PRE
<SEQUENCE>11
<FILENAME>tgen-20241231_pre.xml
<DESCRIPTION>XBRL TAXONOMY EXTENSION PRESENTATION LINKBASE DOCUMENT
<TEXT>
<XBRL>
<?xml version="1.0" encoding="UTF-8"?>

<!--XBRL Document Created with the Workiva Platform-->
<!--Copyright 2025 Workiva-->
<!--r:27a45c8e-ccb7-4ee0-baf8-e027f6202253,g:a67c4460-f12d-456b-86fe-b4f9ec620b6c-->
<link:linkbase xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.xbrl.org/2003/linkbase http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd">
  <link:roleRef roleURI="http://www.tecogen.com/role/Cover" xlink:type="simple" xlink:href="tgen-20241231.xsd#Cover"/>
  <link:presentationLink xlink:role="http://www.tecogen.com/role/Cover" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_dei_CoverAbstract_62568b5d-4666-44f3-85ed-ac33a7d4d738" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_CoverAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_DocumentType_dca9b07e-1532-4e03-928e-5437849fdbc9" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentType"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_62568b5d-4666-44f3-85ed-ac33a7d4d738" xlink:to="loc_dei_DocumentType_dca9b07e-1532-4e03-928e-5437849fdbc9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_DocumentAnnualReport_af818e1d-f481-4666-aead-96c05338942b" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentAnnualReport"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_62568b5d-4666-44f3-85ed-ac33a7d4d738" xlink:to="loc_dei_DocumentAnnualReport_af818e1d-f481-4666-aead-96c05338942b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_DocumentPeriodEndDate_241681a3-f354-4fe2-a768-b51ed88dd439" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentPeriodEndDate"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_62568b5d-4666-44f3-85ed-ac33a7d4d738" xlink:to="loc_dei_DocumentPeriodEndDate_241681a3-f354-4fe2-a768-b51ed88dd439" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_CurrentFiscalYearEndDate_d6b59e1b-3df4-4555-9074-4921b2cdf2c5" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_CurrentFiscalYearEndDate"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_62568b5d-4666-44f3-85ed-ac33a7d4d738" xlink:to="loc_dei_CurrentFiscalYearEndDate_d6b59e1b-3df4-4555-9074-4921b2cdf2c5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_DocumentTransitionReport_4baab53e-9061-445a-8e54-2e12223e8992" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentTransitionReport"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_62568b5d-4666-44f3-85ed-ac33a7d4d738" xlink:to="loc_dei_DocumentTransitionReport_4baab53e-9061-445a-8e54-2e12223e8992" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityFileNumber_b0392ab9-34d0-4b8b-bdad-de05d7c7f329" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityFileNumber"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_62568b5d-4666-44f3-85ed-ac33a7d4d738" xlink:to="loc_dei_EntityFileNumber_b0392ab9-34d0-4b8b-bdad-de05d7c7f329" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityRegistrantName_d684e0ae-7913-464c-8388-4de83f1c3f44" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityRegistrantName"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_62568b5d-4666-44f3-85ed-ac33a7d4d738" xlink:to="loc_dei_EntityRegistrantName_d684e0ae-7913-464c-8388-4de83f1c3f44" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityIncorporationStateCountryCode_dfd66d77-18b1-411a-8c3c-f51a131f8927" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityIncorporationStateCountryCode"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_62568b5d-4666-44f3-85ed-ac33a7d4d738" xlink:to="loc_dei_EntityIncorporationStateCountryCode_dfd66d77-18b1-411a-8c3c-f51a131f8927" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityTaxIdentificationNumber_a3a6d87e-0306-4afd-a01e-4d396cc1bea6" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityTaxIdentificationNumber"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_62568b5d-4666-44f3-85ed-ac33a7d4d738" xlink:to="loc_dei_EntityTaxIdentificationNumber_a3a6d87e-0306-4afd-a01e-4d396cc1bea6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityAddressAddressLine1_db05ec62-001b-4b24-9116-95fc8bba63de" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityAddressAddressLine1"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_62568b5d-4666-44f3-85ed-ac33a7d4d738" xlink:to="loc_dei_EntityAddressAddressLine1_db05ec62-001b-4b24-9116-95fc8bba63de" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityAddressCityOrTown_1ad862fd-48f3-43d8-b5df-9250b2a79bd6" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityAddressCityOrTown"/>
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_62568b5d-4666-44f3-85ed-ac33a7d4d738" xlink:to="loc_dei_EntityAddressCityOrTown_1ad862fd-48f3-43d8-b5df-9250b2a79bd6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityAddressStateOrProvince_19d8df45-87f1-448e-9550-6ebb15811c91" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityAddressStateOrProvince"/>
    <link:presentationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_62568b5d-4666-44f3-85ed-ac33a7d4d738" xlink:to="loc_dei_EntityAddressStateOrProvince_19d8df45-87f1-448e-9550-6ebb15811c91" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityAddressPostalZipCode_75dce62b-0b30-47ee-afba-16af72b8209d" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityAddressPostalZipCode"/>
    <link:presentationArc order="13" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_62568b5d-4666-44f3-85ed-ac33a7d4d738" xlink:to="loc_dei_EntityAddressPostalZipCode_75dce62b-0b30-47ee-afba-16af72b8209d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_CityAreaCode_0ded5b3e-10b7-4a82-940c-449b08d35ee0" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_CityAreaCode"/>
    <link:presentationArc order="14" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_62568b5d-4666-44f3-85ed-ac33a7d4d738" xlink:to="loc_dei_CityAreaCode_0ded5b3e-10b7-4a82-940c-449b08d35ee0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_LocalPhoneNumber_16a5f463-905a-4298-b167-f5cf801007ee" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_LocalPhoneNumber"/>
    <link:presentationArc order="15" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_62568b5d-4666-44f3-85ed-ac33a7d4d738" xlink:to="loc_dei_LocalPhoneNumber_16a5f463-905a-4298-b167-f5cf801007ee" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_Security12gTitle_cc776d25-6dbc-4f13-b376-f9a76e0a148e" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_Security12gTitle"/>
    <link:presentationArc order="16" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_62568b5d-4666-44f3-85ed-ac33a7d4d738" xlink:to="loc_dei_Security12gTitle_cc776d25-6dbc-4f13-b376-f9a76e0a148e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityWellKnownSeasonedIssuer_3186fcdd-c00d-406a-b0d1-5da2d16b589c" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityWellKnownSeasonedIssuer"/>
    <link:presentationArc order="17" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_62568b5d-4666-44f3-85ed-ac33a7d4d738" xlink:to="loc_dei_EntityWellKnownSeasonedIssuer_3186fcdd-c00d-406a-b0d1-5da2d16b589c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityVoluntaryFilers_c4908cb2-331c-4980-820e-53e74fb3dc55" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityVoluntaryFilers"/>
    <link:presentationArc order="18" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_62568b5d-4666-44f3-85ed-ac33a7d4d738" xlink:to="loc_dei_EntityVoluntaryFilers_c4908cb2-331c-4980-820e-53e74fb3dc55" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityCurrentReportingStatus_fbc0ca0d-e568-47e4-a5ec-6d6d77ce570f" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityCurrentReportingStatus"/>
    <link:presentationArc order="19" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_62568b5d-4666-44f3-85ed-ac33a7d4d738" xlink:to="loc_dei_EntityCurrentReportingStatus_fbc0ca0d-e568-47e4-a5ec-6d6d77ce570f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityInteractiveDataCurrent_60e175c0-f6d4-42b3-bbf8-702f0c45cf76" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityInteractiveDataCurrent"/>
    <link:presentationArc order="20" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_62568b5d-4666-44f3-85ed-ac33a7d4d738" xlink:to="loc_dei_EntityInteractiveDataCurrent_60e175c0-f6d4-42b3-bbf8-702f0c45cf76" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityFilerCategory_c7d9e274-f5e5-4d21-aec8-a763b1ff1fc0" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityFilerCategory"/>
    <link:presentationArc order="21" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_62568b5d-4666-44f3-85ed-ac33a7d4d738" xlink:to="loc_dei_EntityFilerCategory_c7d9e274-f5e5-4d21-aec8-a763b1ff1fc0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityEmergingGrowthCompany_1b8a0133-06d8-4200-b5f9-70faf77558ca" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityEmergingGrowthCompany"/>
    <link:presentationArc order="22" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_62568b5d-4666-44f3-85ed-ac33a7d4d738" xlink:to="loc_dei_EntityEmergingGrowthCompany_1b8a0133-06d8-4200-b5f9-70faf77558ca" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntitySmallBusiness_b6bfffef-e092-4fb8-87b2-84ebda604241" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntitySmallBusiness"/>
    <link:presentationArc order="23" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_62568b5d-4666-44f3-85ed-ac33a7d4d738" xlink:to="loc_dei_EntitySmallBusiness_b6bfffef-e092-4fb8-87b2-84ebda604241" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_IcfrAuditorAttestationFlag_3bd1883f-7f7b-4861-8079-3159c10e6299" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_IcfrAuditorAttestationFlag"/>
    <link:presentationArc order="24" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_62568b5d-4666-44f3-85ed-ac33a7d4d738" xlink:to="loc_dei_IcfrAuditorAttestationFlag_3bd1883f-7f7b-4861-8079-3159c10e6299" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_DocumentFinStmtErrorCorrectionFlag_ff40f9c9-4ac2-442d-a9e4-1c6b8d31ff8c" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentFinStmtErrorCorrectionFlag"/>
    <link:presentationArc order="25" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_62568b5d-4666-44f3-85ed-ac33a7d4d738" xlink:to="loc_dei_DocumentFinStmtErrorCorrectionFlag_ff40f9c9-4ac2-442d-a9e4-1c6b8d31ff8c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityShellCompany_1e55aa8d-1065-4d23-9c20-5df3ae61a0fa" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityShellCompany"/>
    <link:presentationArc order="26" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_62568b5d-4666-44f3-85ed-ac33a7d4d738" xlink:to="loc_dei_EntityShellCompany_1e55aa8d-1065-4d23-9c20-5df3ae61a0fa" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityPublicFloat_fa2eac64-248a-444d-8b87-5dd19f299756" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityPublicFloat"/>
    <link:presentationArc order="27" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_62568b5d-4666-44f3-85ed-ac33a7d4d738" xlink:to="loc_dei_EntityPublicFloat_fa2eac64-248a-444d-8b87-5dd19f299756" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityCommonStockSharesOutstanding_99ffa658-103c-4f6b-a209-40d424086a76" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityCommonStockSharesOutstanding"/>
    <link:presentationArc order="28" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_62568b5d-4666-44f3-85ed-ac33a7d4d738" xlink:to="loc_dei_EntityCommonStockSharesOutstanding_99ffa658-103c-4f6b-a209-40d424086a76" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_DocumentsIncorporatedByReferenceTextBlock_ddd5fa01-ad00-44d1-af15-3cfd1502175d" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentsIncorporatedByReferenceTextBlock"/>
    <link:presentationArc order="29" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_62568b5d-4666-44f3-85ed-ac33a7d4d738" xlink:to="loc_dei_DocumentsIncorporatedByReferenceTextBlock_ddd5fa01-ad00-44d1-af15-3cfd1502175d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityCentralIndexKey_7bac3d62-09f0-40c7-ab8d-ecf8072b7442" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityCentralIndexKey"/>
    <link:presentationArc order="30" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_62568b5d-4666-44f3-85ed-ac33a7d4d738" xlink:to="loc_dei_EntityCentralIndexKey_7bac3d62-09f0-40c7-ab8d-ecf8072b7442" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_DocumentFiscalYearFocus_76a1d762-a7e1-482a-a16b-7ef3d1090916" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentFiscalYearFocus"/>
    <link:presentationArc order="31" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_62568b5d-4666-44f3-85ed-ac33a7d4d738" xlink:to="loc_dei_DocumentFiscalYearFocus_76a1d762-a7e1-482a-a16b-7ef3d1090916" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_DocumentFiscalPeriodFocus_54e2f672-eaa4-4609-bd1b-41745f09be35" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentFiscalPeriodFocus"/>
    <link:presentationArc order="32" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_62568b5d-4666-44f3-85ed-ac33a7d4d738" xlink:to="loc_dei_DocumentFiscalPeriodFocus_54e2f672-eaa4-4609-bd1b-41745f09be35" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_AmendmentFlag_4a5f867b-2cd6-464f-b460-5e78c265513b" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_AmendmentFlag"/>
    <link:presentationArc order="33" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_62568b5d-4666-44f3-85ed-ac33a7d4d738" xlink:to="loc_dei_AmendmentFlag_4a5f867b-2cd6-464f-b460-5e78c265513b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/AuditInformation" xlink:type="simple" xlink:href="tgen-20241231.xsd#AuditInformation"/>
  <link:presentationLink xlink:role="http://www.tecogen.com/role/AuditInformation" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AuditInformationAbstract_9e7043ee-c0a7-41f9-854f-7c5afd7c6d85" xlink:href="tgen-20241231.xsd#tgen_AuditInformationAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_AuditorName_dc4ce7d8-96e9-464a-a310-b2d48f80b131" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_AuditorName"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tgen_AuditInformationAbstract_9e7043ee-c0a7-41f9-854f-7c5afd7c6d85" xlink:to="loc_dei_AuditorName_dc4ce7d8-96e9-464a-a310-b2d48f80b131" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_AuditorFirmId_25849cf4-0e5d-4db4-879e-0b066c175c0c" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_AuditorFirmId"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tgen_AuditInformationAbstract_9e7043ee-c0a7-41f9-854f-7c5afd7c6d85" xlink:to="loc_dei_AuditorFirmId_25849cf4-0e5d-4db4-879e-0b066c175c0c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_AuditorLocation_4811cbe8-aab4-49a9-86bb-40778b900409" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_AuditorLocation"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tgen_AuditInformationAbstract_9e7043ee-c0a7-41f9-854f-7c5afd7c6d85" xlink:to="loc_dei_AuditorLocation_4811cbe8-aab4-49a9-86bb-40778b900409" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/ConsolidatedBalanceSheets" xlink:type="simple" xlink:href="tgen-20241231.xsd#ConsolidatedBalanceSheets"/>
  <link:presentationLink xlink:role="http://www.tecogen.com/role/ConsolidatedBalanceSheets" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementOfFinancialPositionAbstract_12fce5e9-af0d-4b9a-9dab-e230eebb3cbf" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementOfFinancialPositionAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetsAbstract_e9e02f8b-76a3-4d89-8276-e2842eec15c6" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetsAbstract"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfFinancialPositionAbstract_12fce5e9-af0d-4b9a-9dab-e230eebb3cbf" xlink:to="loc_us-gaap_AssetsAbstract_e9e02f8b-76a3-4d89-8276-e2842eec15c6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetsCurrentAbstract_d68d8fe1-f9c2-4ae3-9b49-d8b5c140d34a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetsCurrentAbstract"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsAbstract_e9e02f8b-76a3-4d89-8276-e2842eec15c6" xlink:to="loc_us-gaap_AssetsCurrentAbstract_d68d8fe1-f9c2-4ae3-9b49-d8b5c140d34a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue_52ca0356-9519-47ae-878c-8d0f1659c162" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsCurrentAbstract_d68d8fe1-f9c2-4ae3-9b49-d8b5c140d34a" xlink:to="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue_52ca0356-9519-47ae-878c-8d0f1659c162" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountsReceivableNetCurrent_863171bc-2f0a-4914-9ec8-76d9830326bf" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountsReceivableNetCurrent"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsCurrentAbstract_d68d8fe1-f9c2-4ae3-9b49-d8b5c140d34a" xlink:to="loc_us-gaap_AccountsReceivableNetCurrent_863171bc-2f0a-4914-9ec8-76d9830326bf" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_EmployeeRetentionCreditCurrent_9d3932e1-0343-4811-9294-52bb8b9de616" xlink:href="tgen-20241231.xsd#tgen_EmployeeRetentionCreditCurrent"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsCurrentAbstract_d68d8fe1-f9c2-4ae3-9b49-d8b5c140d34a" xlink:to="loc_tgen_EmployeeRetentionCreditCurrent_9d3932e1-0343-4811-9294-52bb8b9de616" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractWithCustomerAssetNetCurrent_116128ee-f538-478e-8414-52bc6c43953d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ContractWithCustomerAssetNetCurrent"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsCurrentAbstract_d68d8fe1-f9c2-4ae3-9b49-d8b5c140d34a" xlink:to="loc_us-gaap_ContractWithCustomerAssetNetCurrent_116128ee-f538-478e-8414-52bc6c43953d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryNet_f75c0aa3-bd23-4900-b377-5f28a0961962" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InventoryNet"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsCurrentAbstract_d68d8fe1-f9c2-4ae3-9b49-d8b5c140d34a" xlink:to="loc_us-gaap_InventoryNet_f75c0aa3-bd23-4900-b377-5f28a0961962" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PrepaidExpenseAndOtherAssetsCurrent_758efb67-31fd-454d-8fcc-d3e6fb946023" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PrepaidExpenseAndOtherAssetsCurrent"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsCurrentAbstract_d68d8fe1-f9c2-4ae3-9b49-d8b5c140d34a" xlink:to="loc_us-gaap_PrepaidExpenseAndOtherAssetsCurrent_758efb67-31fd-454d-8fcc-d3e6fb946023" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetsCurrent_284bcc68-dfd3-40c0-8e85-e6dbb06661e2" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetsCurrent"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsCurrentAbstract_d68d8fe1-f9c2-4ae3-9b49-d8b5c140d34a" xlink:to="loc_us-gaap_AssetsCurrent_284bcc68-dfd3-40c0-8e85-e6dbb06661e2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentNet_1c0af3b6-1e68-4a95-bf11-66be48c6770e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentNet"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsAbstract_e9e02f8b-76a3-4d89-8276-e2842eec15c6" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentNet_1c0af3b6-1e68-4a95-bf11-66be48c6770e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseRightOfUseAsset_447d8caf-d484-4c2b-bc6c-d2624fd21740" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseRightOfUseAsset"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsAbstract_e9e02f8b-76a3-4d89-8276-e2842eec15c6" xlink:to="loc_us-gaap_OperatingLeaseRightOfUseAsset_447d8caf-d484-4c2b-bc6c-d2624fd21740" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinanceLeaseRightOfUseAsset_fd7a1a79-fd5f-4c3a-a073-39b72eea0810" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FinanceLeaseRightOfUseAsset"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsAbstract_e9e02f8b-76a3-4d89-8276-e2842eec15c6" xlink:to="loc_us-gaap_FinanceLeaseRightOfUseAsset_fd7a1a79-fd5f-4c3a-a073-39b72eea0810" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsNet_da91f6ff-d2cd-4fca-9d04-c9dbeb2b2207" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsNet"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsAbstract_e9e02f8b-76a3-4d89-8276-e2842eec15c6" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsNet_da91f6ff-d2cd-4fca-9d04-c9dbeb2b2207" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Goodwill_bfbc75e5-4b94-4a17-a9dc-96824c959846" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Goodwill"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsAbstract_e9e02f8b-76a3-4d89-8276-e2842eec15c6" xlink:to="loc_us-gaap_Goodwill_bfbc75e5-4b94-4a17-a9dc-96824c959846" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherAssetsNoncurrent_a43c469d-dfa2-4ac7-b2ac-fcee6d59a178" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherAssetsNoncurrent"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsAbstract_e9e02f8b-76a3-4d89-8276-e2842eec15c6" xlink:to="loc_us-gaap_OtherAssetsNoncurrent_a43c469d-dfa2-4ac7-b2ac-fcee6d59a178" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Assets_c096ca2c-22e2-44a6-8dfe-6b9e49ef05a8" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Assets"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsAbstract_e9e02f8b-76a3-4d89-8276-e2842eec15c6" xlink:to="loc_us-gaap_Assets_c096ca2c-22e2-44a6-8dfe-6b9e49ef05a8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LiabilitiesAndStockholdersEquityAbstract_7ca74e60-e8de-47bd-bbdd-ec30eab8f904" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LiabilitiesAndStockholdersEquityAbstract"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfFinancialPositionAbstract_12fce5e9-af0d-4b9a-9dab-e230eebb3cbf" xlink:to="loc_us-gaap_LiabilitiesAndStockholdersEquityAbstract_7ca74e60-e8de-47bd-bbdd-ec30eab8f904" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LiabilitiesCurrentAbstract_8cf0cc3f-6079-46a9-b609-16fdb1d0ae58" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LiabilitiesCurrentAbstract"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesAndStockholdersEquityAbstract_7ca74e60-e8de-47bd-bbdd-ec30eab8f904" xlink:to="loc_us-gaap_LiabilitiesCurrentAbstract_8cf0cc3f-6079-46a9-b609-16fdb1d0ae58" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NotesPayable_0a05c298-6980-46ec-9105-77704f8cba60" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NotesPayable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesCurrentAbstract_8cf0cc3f-6079-46a9-b609-16fdb1d0ae58" xlink:to="loc_us-gaap_NotesPayable_0a05c298-6980-46ec-9105-77704f8cba60" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountsPayableCurrent_11353fb6-7243-4dff-897e-3835b1be636a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountsPayableCurrent"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesCurrentAbstract_8cf0cc3f-6079-46a9-b609-16fdb1d0ae58" xlink:to="loc_us-gaap_AccountsPayableCurrent_11353fb6-7243-4dff-897e-3835b1be636a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccruedLiabilitiesCurrent_5f87a7e6-89aa-440c-9a65-ce75aa959c9a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccruedLiabilitiesCurrent"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesCurrentAbstract_8cf0cc3f-6079-46a9-b609-16fdb1d0ae58" xlink:to="loc_us-gaap_AccruedLiabilitiesCurrent_5f87a7e6-89aa-440c-9a65-ce75aa959c9a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredRevenueCurrent_aec18c60-08f6-496d-9193-baeaf163c0df" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredRevenueCurrent"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesCurrentAbstract_8cf0cc3f-6079-46a9-b609-16fdb1d0ae58" xlink:to="loc_us-gaap_DeferredRevenueCurrent_aec18c60-08f6-496d-9193-baeaf163c0df" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseLiabilityCurrent_68c3d45c-a2c1-46bc-9569-1ff3f61dff1e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseLiabilityCurrent"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesCurrentAbstract_8cf0cc3f-6079-46a9-b609-16fdb1d0ae58" xlink:to="loc_us-gaap_OperatingLeaseLiabilityCurrent_68c3d45c-a2c1-46bc-9569-1ff3f61dff1e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinanceLeaseLiabilityCurrent_7006ea88-8a5d-4fb7-95db-9f3e9da17382" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FinanceLeaseLiabilityCurrent"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesCurrentAbstract_8cf0cc3f-6079-46a9-b609-16fdb1d0ae58" xlink:to="loc_us-gaap_FinanceLeaseLiabilityCurrent_7006ea88-8a5d-4fb7-95db-9f3e9da17382" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationContingentConsiderationLiabilityCurrent_d066c61b-a84c-42a6-b7a9-0326f956d7af" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationContingentConsiderationLiabilityCurrent"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesCurrentAbstract_8cf0cc3f-6079-46a9-b609-16fdb1d0ae58" xlink:to="loc_us-gaap_BusinessCombinationContingentConsiderationLiabilityCurrent_d066c61b-a84c-42a6-b7a9-0326f956d7af" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedFinancialLiabilitiesCurrent_d8ed4be8-95b4-497e-b39d-ce3a361c63ea" xlink:href="tgen-20241231.xsd#tgen_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedFinancialLiabilitiesCurrent"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesCurrentAbstract_8cf0cc3f-6079-46a9-b609-16fdb1d0ae58" xlink:to="loc_tgen_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedFinancialLiabilitiesCurrent_d8ed4be8-95b4-497e-b39d-ce3a361c63ea" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LiabilitiesCurrent_56ec5a69-c22f-4b38-bbdb-ab96d6d247f9" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LiabilitiesCurrent"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesCurrentAbstract_8cf0cc3f-6079-46a9-b609-16fdb1d0ae58" xlink:to="loc_us-gaap_LiabilitiesCurrent_56ec5a69-c22f-4b38-bbdb-ab96d6d247f9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LiabilitiesNoncurrentAbstract_1ed6bf8f-a296-4cc5-af9e-3779325a212c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LiabilitiesNoncurrentAbstract"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesAndStockholdersEquityAbstract_7ca74e60-e8de-47bd-bbdd-ec30eab8f904" xlink:to="loc_us-gaap_LiabilitiesNoncurrentAbstract_1ed6bf8f-a296-4cc5-af9e-3779325a212c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredRevenueNoncurrent_bd3ff3ee-a1d4-4e96-a8f8-be9d6e6d43ab" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredRevenueNoncurrent"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesNoncurrentAbstract_1ed6bf8f-a296-4cc5-af9e-3779325a212c" xlink:to="loc_us-gaap_DeferredRevenueNoncurrent_bd3ff3ee-a1d4-4e96-a8f8-be9d6e6d43ab" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseLiabilityNoncurrent_be25802c-4885-4ef5-82ed-38e0886d340f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesNoncurrentAbstract_1ed6bf8f-a296-4cc5-af9e-3779325a212c" xlink:to="loc_us-gaap_OperatingLeaseLiabilityNoncurrent_be25802c-4885-4ef5-82ed-38e0886d340f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinanceLeaseLiabilityNoncurrent_5a2cee16-b3db-46a7-8739-ac44a8f4db97" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FinanceLeaseLiabilityNoncurrent"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesNoncurrentAbstract_1ed6bf8f-a296-4cc5-af9e-3779325a212c" xlink:to="loc_us-gaap_FinanceLeaseLiabilityNoncurrent_5a2cee16-b3db-46a7-8739-ac44a8f4db97" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationContingentConsiderationLiabilityNoncurrent_1215bbf9-656f-4d44-9799-6dea269d9273" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationContingentConsiderationLiabilityNoncurrent"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesNoncurrentAbstract_1ed6bf8f-a296-4cc5-af9e-3779325a212c" xlink:to="loc_us-gaap_BusinessCombinationContingentConsiderationLiabilityNoncurrent_1215bbf9-656f-4d44-9799-6dea269d9273" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedFinancialLiabilities_b8126075-f457-4f7b-aec6-f4b40b6a955e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedFinancialLiabilities"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesNoncurrentAbstract_1ed6bf8f-a296-4cc5-af9e-3779325a212c" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedFinancialLiabilities_b8126075-f457-4f7b-aec6-f4b40b6a955e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Liabilities_1644a14d-9acd-4af5-968c-34048cd0bcd6" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Liabilities"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesAndStockholdersEquityAbstract_7ca74e60-e8de-47bd-bbdd-ec30eab8f904" xlink:to="loc_us-gaap_Liabilities_1644a14d-9acd-4af5-968c-34048cd0bcd6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommitmentsAndContingencies_c68a29af-4925-4099-8ede-9015fe3d643c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommitmentsAndContingencies"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesAndStockholdersEquityAbstract_7ca74e60-e8de-47bd-bbdd-ec30eab8f904" xlink:to="loc_us-gaap_CommitmentsAndContingencies_c68a29af-4925-4099-8ede-9015fe3d643c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquityAbstract_d1e5e168-a8db-4842-b2fa-6acf0b23cfad" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EquityAbstract"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesAndStockholdersEquityAbstract_7ca74e60-e8de-47bd-bbdd-ec30eab8f904" xlink:to="loc_us-gaap_EquityAbstract_d1e5e168-a8db-4842-b2fa-6acf0b23cfad" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockholdersEquityAbstract_6c58c4a8-f88a-47df-ac09-948b41696643" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockholdersEquityAbstract"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquityAbstract_d1e5e168-a8db-4842-b2fa-6acf0b23cfad" xlink:to="loc_us-gaap_StockholdersEquityAbstract_6c58c4a8-f88a-47df-ac09-948b41696643" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockValue_cb175c8f-0fe5-4bb8-86c5-5f4eadd32142" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockValue"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StockholdersEquityAbstract_6c58c4a8-f88a-47df-ac09-948b41696643" xlink:to="loc_us-gaap_CommonStockValue_cb175c8f-0fe5-4bb8-86c5-5f4eadd32142" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdditionalPaidInCapital_cee0afd9-4103-4f2b-b314-f654a00394d8" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AdditionalPaidInCapital"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StockholdersEquityAbstract_6c58c4a8-f88a-47df-ac09-948b41696643" xlink:to="loc_us-gaap_AdditionalPaidInCapital_cee0afd9-4103-4f2b-b314-f654a00394d8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RetainedEarningsAccumulatedDeficit_e1751d54-8cc6-4625-b1fe-723555686664" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RetainedEarningsAccumulatedDeficit"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StockholdersEquityAbstract_6c58c4a8-f88a-47df-ac09-948b41696643" xlink:to="loc_us-gaap_RetainedEarningsAccumulatedDeficit_e1751d54-8cc6-4625-b1fe-723555686664" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockholdersEquity_8052566d-d70d-4451-b012-21e4a9dbf492" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockholdersEquity"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StockholdersEquityAbstract_6c58c4a8-f88a-47df-ac09-948b41696643" xlink:to="loc_us-gaap_StockholdersEquity_8052566d-d70d-4451-b012-21e4a9dbf492" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MinorityInterest_f956f4b5-fb62-4430-ad4f-277c8098ae3d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_MinorityInterest"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquityAbstract_d1e5e168-a8db-4842-b2fa-6acf0b23cfad" xlink:to="loc_us-gaap_MinorityInterest_f956f4b5-fb62-4430-ad4f-277c8098ae3d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/netLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest_b5231047-2c18-4cd0-8aa1-6bf9fc679296" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquityAbstract_d1e5e168-a8db-4842-b2fa-6acf0b23cfad" xlink:to="loc_us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest_b5231047-2c18-4cd0-8aa1-6bf9fc679296" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LiabilitiesAndStockholdersEquity_f6a87396-1f81-451b-8905-18920621b5b1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LiabilitiesAndStockholdersEquity"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesAndStockholdersEquityAbstract_7ca74e60-e8de-47bd-bbdd-ec30eab8f904" xlink:to="loc_us-gaap_LiabilitiesAndStockholdersEquity_f6a87396-1f81-451b-8905-18920621b5b1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/ConsolidatedBalanceSheetsParenthetical" xlink:type="simple" xlink:href="tgen-20241231.xsd#ConsolidatedBalanceSheetsParenthetical"/>
  <link:presentationLink xlink:role="http://www.tecogen.com/role/ConsolidatedBalanceSheetsParenthetical" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementOfFinancialPositionAbstract_b0921067-b3df-477b-855d-4d37dfe9cd5f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementOfFinancialPositionAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockParOrStatedValuePerShare_8efbffe6-d36f-4f38-add4-771f47a42ca5" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockParOrStatedValuePerShare"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfFinancialPositionAbstract_b0921067-b3df-477b-855d-4d37dfe9cd5f" xlink:to="loc_us-gaap_CommonStockParOrStatedValuePerShare_8efbffe6-d36f-4f38-add4-771f47a42ca5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockSharesAuthorized_6bce7e06-f90c-4ff9-83d6-cc567df8cdd3" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockSharesAuthorized"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfFinancialPositionAbstract_b0921067-b3df-477b-855d-4d37dfe9cd5f" xlink:to="loc_us-gaap_CommonStockSharesAuthorized_6bce7e06-f90c-4ff9-83d6-cc567df8cdd3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockSharesIssued_622efb4f-fdd8-4df4-90a0-88d5d93ba436" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockSharesIssued"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfFinancialPositionAbstract_b0921067-b3df-477b-855d-4d37dfe9cd5f" xlink:to="loc_us-gaap_CommonStockSharesIssued_622efb4f-fdd8-4df4-90a0-88d5d93ba436" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockSharesOutstanding_48a10d57-c45b-4df9-b766-d5966fa44ddb" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockSharesOutstanding"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfFinancialPositionAbstract_b0921067-b3df-477b-855d-4d37dfe9cd5f" xlink:to="loc_us-gaap_CommonStockSharesOutstanding_48a10d57-c45b-4df9-b766-d5966fa44ddb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/ConsolidatedStatementsofOperations" xlink:type="simple" xlink:href="tgen-20241231.xsd#ConsolidatedStatementsofOperations"/>
  <link:presentationLink xlink:role="http://www.tecogen.com/role/ConsolidatedStatementsofOperations" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeStatementAbstract_3bc3b986-ccb4-4dee-ace6-0c16ddba809f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeStatementAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementTable_92097928-8a34-4d86-b6eb-494db6a87ba8" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementAbstract_3bc3b986-ccb4-4dee-ace6-0c16ddba809f" xlink:to="loc_us-gaap_StatementTable_92097928-8a34-4d86-b6eb-494db6a87ba8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductOrServiceAxis_fe32c86d-622f-435a-a901-d491c73512a9" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ProductOrServiceAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementTable_92097928-8a34-4d86-b6eb-494db6a87ba8" xlink:to="loc_srt_ProductOrServiceAxis_fe32c86d-622f-435a-a901-d491c73512a9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductsAndServicesDomain_9161e2d3-5ba7-47ba-9a6b-cbeaa292080d" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ProductsAndServicesDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ProductOrServiceAxis_fe32c86d-622f-435a-a901-d491c73512a9" xlink:to="loc_srt_ProductsAndServicesDomain_9161e2d3-5ba7-47ba-9a6b-cbeaa292080d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProductMember_ed85a16c-3141-4ea9-81bb-8bd566269a5c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProductMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ProductsAndServicesDomain_9161e2d3-5ba7-47ba-9a6b-cbeaa292080d" xlink:to="loc_us-gaap_ProductMember_ed85a16c-3141-4ea9-81bb-8bd566269a5c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ServiceMember_8520f36b-7ff5-4377-88a3-972877f1510f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ServiceMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ProductsAndServicesDomain_9161e2d3-5ba7-47ba-9a6b-cbeaa292080d" xlink:to="loc_us-gaap_ServiceMember_8520f36b-7ff5-4377-88a3-972877f1510f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EnergyServiceMember_e76f17c0-4497-4c0e-96c5-7c96befdf7f1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EnergyServiceMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ProductsAndServicesDomain_9161e2d3-5ba7-47ba-9a6b-cbeaa292080d" xlink:to="loc_us-gaap_EnergyServiceMember_e76f17c0-4497-4c0e-96c5-7c96befdf7f1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementLineItems_18d01b6c-792b-44ef-9c9f-219e4c7637a8" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementTable_92097928-8a34-4d86-b6eb-494db6a87ba8" xlink:to="loc_us-gaap_StatementLineItems_18d01b6c-792b-44ef-9c9f-219e4c7637a8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_affd65ba-ce93-4810-96b9-ad9a47d6c4a1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementLineItems_18d01b6c-792b-44ef-9c9f-219e4c7637a8" xlink:to="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_affd65ba-ce93-4810-96b9-ad9a47d6c4a1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CostOfGoodsAndServicesSold_658490aa-d9c6-4830-b703-2b68047dcbbf" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CostOfGoodsAndServicesSold"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementLineItems_18d01b6c-792b-44ef-9c9f-219e4c7637a8" xlink:to="loc_us-gaap_CostOfGoodsAndServicesSold_658490aa-d9c6-4830-b703-2b68047dcbbf" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GrossProfit_6ba22174-aa6d-46b9-880c-31d8c4bc17b8" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GrossProfit"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementLineItems_18d01b6c-792b-44ef-9c9f-219e4c7637a8" xlink:to="loc_us-gaap_GrossProfit_6ba22174-aa6d-46b9-880c-31d8c4bc17b8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingExpensesAbstract_2a843cd4-7a71-4839-8a15-4362974ab1cd" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingExpensesAbstract"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementLineItems_18d01b6c-792b-44ef-9c9f-219e4c7637a8" xlink:to="loc_us-gaap_OperatingExpensesAbstract_2a843cd4-7a71-4839-8a15-4362974ab1cd" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GeneralAndAdministrativeExpense_bdbba2ed-09e0-46f6-9f11-bc457570f215" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GeneralAndAdministrativeExpense"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_OperatingExpensesAbstract_2a843cd4-7a71-4839-8a15-4362974ab1cd" xlink:to="loc_us-gaap_GeneralAndAdministrativeExpense_bdbba2ed-09e0-46f6-9f11-bc457570f215" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SellingExpense_58878891-e75b-45b0-aab7-b8705cc438f6" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SellingExpense"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_OperatingExpensesAbstract_2a843cd4-7a71-4839-8a15-4362974ab1cd" xlink:to="loc_us-gaap_SellingExpense_58878891-e75b-45b0-aab7-b8705cc438f6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ResearchAndDevelopmentExpense_9868dcab-844a-4815-b036-e495ea4d8ced" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ResearchAndDevelopmentExpense"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_OperatingExpensesAbstract_2a843cd4-7a71-4839-8a15-4362974ab1cd" xlink:to="loc_us-gaap_ResearchAndDevelopmentExpense_9868dcab-844a-4815-b036-e495ea4d8ced" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GainLossOnDispositionOfAssets1_d6fd499c-6ffa-4efd-a2a8-e87f0bf9d74b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GainLossOnDispositionOfAssets1"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_OperatingExpensesAbstract_2a843cd4-7a71-4839-8a15-4362974ab1cd" xlink:to="loc_us-gaap_GainLossOnDispositionOfAssets1_d6fd499c-6ffa-4efd-a2a8-e87f0bf9d74b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ImpairmentOfLongLivedAssetsHeldForUse_1c04f5c0-2ac7-4376-bb76-465d84af4b13" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ImpairmentOfLongLivedAssetsHeldForUse"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_OperatingExpensesAbstract_2a843cd4-7a71-4839-8a15-4362974ab1cd" xlink:to="loc_us-gaap_ImpairmentOfLongLivedAssetsHeldForUse_1c04f5c0-2ac7-4376-bb76-465d84af4b13" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillImpairmentLoss_8246c103-7036-47c9-ade4-f5c0edd5a220" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GoodwillImpairmentLoss"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_OperatingExpensesAbstract_2a843cd4-7a71-4839-8a15-4362974ab1cd" xlink:to="loc_us-gaap_GoodwillImpairmentLoss_8246c103-7036-47c9-ade4-f5c0edd5a220" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingExpenses_1d344f3d-489f-4e5a-ba55-af84af7be802" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingExpenses"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_OperatingExpensesAbstract_2a843cd4-7a71-4839-8a15-4362974ab1cd" xlink:to="loc_us-gaap_OperatingExpenses_1d344f3d-489f-4e5a-ba55-af84af7be802" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingIncomeLoss_9aff6ef8-dd2c-41cc-9768-e45b0556748b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingIncomeLoss"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementLineItems_18d01b6c-792b-44ef-9c9f-219e4c7637a8" xlink:to="loc_us-gaap_OperatingIncomeLoss_9aff6ef8-dd2c-41cc-9768-e45b0556748b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherIncomeAndExpensesAbstract_4551e44c-7208-46f7-8478-a3fa5c670c90" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherIncomeAndExpensesAbstract"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementLineItems_18d01b6c-792b-44ef-9c9f-219e4c7637a8" xlink:to="loc_us-gaap_OtherIncomeAndExpensesAbstract_4551e44c-7208-46f7-8478-a3fa5c670c90" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_InterestAndOtherIncomeExpense_47ea3f53-963f-4f4d-aaa2-c4ea72758de2" xlink:href="tgen-20241231.xsd#tgen_InterestAndOtherIncomeExpense"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_OtherIncomeAndExpensesAbstract_4551e44c-7208-46f7-8478-a3fa5c670c90" xlink:to="loc_tgen_InterestAndOtherIncomeExpense_47ea3f53-963f-4f4d-aaa2-c4ea72758de2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InterestExpenseNonoperating_91324adb-3523-4dbf-bc07-156ef04af812" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InterestExpenseNonoperating"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_OtherIncomeAndExpensesAbstract_4551e44c-7208-46f7-8478-a3fa5c670c90" xlink:to="loc_us-gaap_InterestExpenseNonoperating_91324adb-3523-4dbf-bc07-156ef04af812" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NonoperatingIncomeExpense_bdc8959f-41af-4c0d-87f4-b1f0db8a9a68" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NonoperatingIncomeExpense"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_OtherIncomeAndExpensesAbstract_4551e44c-7208-46f7-8478-a3fa5c670c90" xlink:to="loc_us-gaap_NonoperatingIncomeExpense_bdc8959f-41af-4c0d-87f4-b1f0db8a9a68" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_735844a5-c918-4cc7-8862-65c722b40b6c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementLineItems_18d01b6c-792b-44ef-9c9f-219e4c7637a8" xlink:to="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_735844a5-c918-4cc7-8862-65c722b40b6c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_IncomeTaxExpenseBenefitState_7502c1df-2796-44a3-8dae-88770671b9c3" xlink:href="tgen-20241231.xsd#tgen_IncomeTaxExpenseBenefitState"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementLineItems_18d01b6c-792b-44ef-9c9f-219e4c7637a8" xlink:to="loc_tgen_IncomeTaxExpenseBenefitState_7502c1df-2796-44a3-8dae-88770671b9c3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProfitLoss_efbf3c96-d83f-49af-b20c-dfca5e887804" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProfitLoss"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementLineItems_18d01b6c-792b-44ef-9c9f-219e4c7637a8" xlink:to="loc_us-gaap_ProfitLoss_efbf3c96-d83f-49af-b20c-dfca5e887804" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetIncomeLossAttributableToNoncontrollingInterest_a6a58f6a-2ca0-4ac5-9122-dfe46a63ea52" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetIncomeLossAttributableToNoncontrollingInterest"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementLineItems_18d01b6c-792b-44ef-9c9f-219e4c7637a8" xlink:to="loc_us-gaap_NetIncomeLossAttributableToNoncontrollingInterest_a6a58f6a-2ca0-4ac5-9122-dfe46a63ea52" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetIncomeLoss_853c36f5-e0a4-4ec2-a8f6-733f199f9baf" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetIncomeLoss"/>
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementLineItems_18d01b6c-792b-44ef-9c9f-219e4c7637a8" xlink:to="loc_us-gaap_NetIncomeLoss_853c36f5-e0a4-4ec2-a8f6-733f199f9baf" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EarningsPerShareBasic_05bf1c3f-91b2-425e-970a-69cb034179d7" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EarningsPerShareBasic"/>
    <link:presentationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementLineItems_18d01b6c-792b-44ef-9c9f-219e4c7637a8" xlink:to="loc_us-gaap_EarningsPerShareBasic_05bf1c3f-91b2-425e-970a-69cb034179d7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_cc8f5b5f-7541-44ba-988f-e6ba4107e308" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingBasic"/>
    <link:presentationArc order="13" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementLineItems_18d01b6c-792b-44ef-9c9f-219e4c7637a8" xlink:to="loc_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_cc8f5b5f-7541-44ba-988f-e6ba4107e308" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EarningsPerShareDiluted_7bae0fe4-ef9b-4209-bfaf-4b4a1ecbf313" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EarningsPerShareDiluted"/>
    <link:presentationArc order="14" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementLineItems_18d01b6c-792b-44ef-9c9f-219e4c7637a8" xlink:to="loc_us-gaap_EarningsPerShareDiluted_7bae0fe4-ef9b-4209-bfaf-4b4a1ecbf313" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_fe9f22b6-8a72-4a04-9319-ed28956f07ab" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding"/>
    <link:presentationArc order="15" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementLineItems_18d01b6c-792b-44ef-9c9f-219e4c7637a8" xlink:to="loc_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_fe9f22b6-8a72-4a04-9319-ed28956f07ab" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/ConsolidatedStatementsofStockholdersEquity" xlink:type="simple" xlink:href="tgen-20241231.xsd#ConsolidatedStatementsofStockholdersEquity"/>
  <link:presentationLink xlink:role="http://www.tecogen.com/role/ConsolidatedStatementsofStockholdersEquity" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementOfStockholdersEquityAbstract_68f88815-135d-40f9-80ca-7c5c57790fc3" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementOfStockholdersEquityAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementTable_9e413df9-b2f4-4953-b581-7c1d303da3ac" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfStockholdersEquityAbstract_68f88815-135d-40f9-80ca-7c5c57790fc3" xlink:to="loc_us-gaap_StatementTable_9e413df9-b2f4-4953-b581-7c1d303da3ac" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementEquityComponentsAxis_53125d8d-b172-408a-995c-3640bf517361" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementEquityComponentsAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementTable_9e413df9-b2f4-4953-b581-7c1d303da3ac" xlink:to="loc_us-gaap_StatementEquityComponentsAxis_53125d8d-b172-408a-995c-3640bf517361" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquityComponentDomain_861e9da5-23a5-4d6c-94ce-fd304cbfc978" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EquityComponentDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementEquityComponentsAxis_53125d8d-b172-408a-995c-3640bf517361" xlink:to="loc_us-gaap_EquityComponentDomain_861e9da5-23a5-4d6c-94ce-fd304cbfc978" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockMember_20586d99-7563-47a6-8c99-47e31039ed96" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquityComponentDomain_861e9da5-23a5-4d6c-94ce-fd304cbfc978" xlink:to="loc_us-gaap_CommonStockMember_20586d99-7563-47a6-8c99-47e31039ed96" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdditionalPaidInCapitalMember_8edbc3aa-fa05-4480-aa01-e9267393342f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AdditionalPaidInCapitalMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquityComponentDomain_861e9da5-23a5-4d6c-94ce-fd304cbfc978" xlink:to="loc_us-gaap_AdditionalPaidInCapitalMember_8edbc3aa-fa05-4480-aa01-e9267393342f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RetainedEarningsMember_ed36c891-aeb9-485a-95dc-2181dd273b06" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RetainedEarningsMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquityComponentDomain_861e9da5-23a5-4d6c-94ce-fd304cbfc978" xlink:to="loc_us-gaap_RetainedEarningsMember_ed36c891-aeb9-485a-95dc-2181dd273b06" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NoncontrollingInterestMember_3cf6d371-656c-4fa8-b514-4257c66df653" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NoncontrollingInterestMember"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquityComponentDomain_861e9da5-23a5-4d6c-94ce-fd304cbfc978" xlink:to="loc_us-gaap_NoncontrollingInterestMember_3cf6d371-656c-4fa8-b514-4257c66df653" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementLineItems_e2f66987-a0c8-4d4d-b4cb-94d422044f4e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementTable_9e413df9-b2f4-4953-b581-7c1d303da3ac" xlink:to="loc_us-gaap_StatementLineItems_e2f66987-a0c8-4d4d-b4cb-94d422044f4e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_62e4035b-b5cd-4844-a866-c577e033e523" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInStockholdersEquityRollForward"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementLineItems_e2f66987-a0c8-4d4d-b4cb-94d422044f4e" xlink:to="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_62e4035b-b5cd-4844-a866-c577e033e523" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharesOutstanding_fd76486d-bba9-47d4-a53c-6b6e2429c5c4" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SharesOutstanding"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_62e4035b-b5cd-4844-a866-c577e033e523" xlink:to="loc_us-gaap_SharesOutstanding_fd76486d-bba9-47d4-a53c-6b6e2429c5c4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest_1ab1939e-8dd6-4b69-807f-03ebbf9b38e1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_62e4035b-b5cd-4844-a866-c577e033e523" xlink:to="loc_us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest_1ab1939e-8dd6-4b69-807f-03ebbf9b38e1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_c8f5901f-1aae-45af-9e36-f1c4492e5531" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_62e4035b-b5cd-4844-a866-c577e033e523" xlink:to="loc_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_c8f5901f-1aae-45af-9e36-f1c4492e5531" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised_0248fbf8-8e7d-4017-a831-4ffa2ff9f0d7" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_62e4035b-b5cd-4844-a866-c577e033e523" xlink:to="loc_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised_0248fbf8-8e7d-4017-a831-4ffa2ff9f0d7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MinorityInterestDecreaseFromDistributionsToNoncontrollingInterestHolders_43292ab3-473b-456d-850d-4c02fb3707f0" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_MinorityInterestDecreaseFromDistributionsToNoncontrollingInterestHolders"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_62e4035b-b5cd-4844-a866-c577e033e523" xlink:to="loc_us-gaap_MinorityInterestDecreaseFromDistributionsToNoncontrollingInterestHolders_43292ab3-473b-456d-850d-4c02fb3707f0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_83d1e0d5-d1a7-42cd-b4c9-ba412d320929" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_62e4035b-b5cd-4844-a866-c577e033e523" xlink:to="loc_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_83d1e0d5-d1a7-42cd-b4c9-ba412d320929" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProfitLoss_c45521f9-3e4a-45aa-aa6a-43686cd6a0d0" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProfitLoss"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_62e4035b-b5cd-4844-a866-c577e033e523" xlink:to="loc_us-gaap_ProfitLoss_c45521f9-3e4a-45aa-aa6a-43686cd6a0d0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharesOutstanding_bb5c30ce-edab-4da1-9b64-3f292b08cbe5" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SharesOutstanding"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_62e4035b-b5cd-4844-a866-c577e033e523" xlink:to="loc_us-gaap_SharesOutstanding_bb5c30ce-edab-4da1-9b64-3f292b08cbe5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest_3b10fd67-336d-4f60-a214-9125f83fe03b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_62e4035b-b5cd-4844-a866-c577e033e523" xlink:to="loc_us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest_3b10fd67-336d-4f60-a214-9125f83fe03b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/ConsolidatedStatementsofStockholdersEquityParenthetical" xlink:type="simple" xlink:href="tgen-20241231.xsd#ConsolidatedStatementsofStockholdersEquityParenthetical"/>
  <link:presentationLink xlink:role="http://www.tecogen.com/role/ConsolidatedStatementsofStockholdersEquityParenthetical" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementOfStockholdersEquityAbstract_8cc4297b-c4e2-45ef-8b79-aa9ce1c7f20e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementOfStockholdersEquityAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockParOrStatedValuePerShare_ec3644de-e676-4519-b65b-d7773560a581" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockParOrStatedValuePerShare"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfStockholdersEquityAbstract_8cc4297b-c4e2-45ef-8b79-aa9ce1c7f20e" xlink:to="loc_us-gaap_CommonStockParOrStatedValuePerShare_ec3644de-e676-4519-b65b-d7773560a581" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/ConsolidatedStatementsofCashFlows" xlink:type="simple" xlink:href="tgen-20241231.xsd#ConsolidatedStatementsofCashFlows"/>
  <link:presentationLink xlink:role="http://www.tecogen.com/role/ConsolidatedStatementsofCashFlows" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementOfCashFlowsAbstract_bef053bd-fd7e-44f2-981b-8b650e9d1fa6" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementOfCashFlowsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_13a63a67-4ba6-46af-9825-9f6e53b377ae" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfCashFlowsAbstract_bef053bd-fd7e-44f2-981b-8b650e9d1fa6" xlink:to="loc_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_13a63a67-4ba6-46af-9825-9f6e53b377ae" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProfitLoss_75591f24-e9e9-4388-af37-57d47c114348" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProfitLoss"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_13a63a67-4ba6-46af-9825-9f6e53b377ae" xlink:to="loc_us-gaap_ProfitLoss_75591f24-e9e9-4388-af37-57d47c114348" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_1f088f0b-d517-457b-8d08-7cce99ff6500" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_13a63a67-4ba6-46af-9825-9f6e53b377ae" xlink:to="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_1f088f0b-d517-457b-8d08-7cce99ff6500" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DepreciationDepletionAndAmortization_cee6dffe-bd29-48c5-993f-7a51cd87392b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DepreciationDepletionAndAmortization"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_1f088f0b-d517-457b-8d08-7cce99ff6500" xlink:to="loc_us-gaap_DepreciationDepletionAndAmortization_cee6dffe-bd29-48c5-993f-7a51cd87392b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GainLossOnContractTermination_19d3e9f3-2957-4e69-97b1-10033ef05960" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GainLossOnContractTermination"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_1f088f0b-d517-457b-8d08-7cce99ff6500" xlink:to="loc_us-gaap_GainLossOnContractTermination_19d3e9f3-2957-4e69-97b1-10033ef05960" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GainLossOnDispositionOfAssets1_11254441-daa1-4bd7-b244-c1a949223abc" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GainLossOnDispositionOfAssets1"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_1f088f0b-d517-457b-8d08-7cce99ff6500" xlink:to="loc_us-gaap_GainLossOnDispositionOfAssets1_11254441-daa1-4bd7-b244-c1a949223abc" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProvisionForDoubtfulAccounts_6936bb97-a5d4-4425-8200-d59da0745a83" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProvisionForDoubtfulAccounts"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_1f088f0b-d517-457b-8d08-7cce99ff6500" xlink:to="loc_us-gaap_ProvisionForDoubtfulAccounts_6936bb97-a5d4-4425-8200-d59da0745a83" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LossContingencyAccrualProvision_8c1d0306-e2d2-4ecf-b0a7-a5e486dd50e7" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LossContingencyAccrualProvision"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_1f088f0b-d517-457b-8d08-7cce99ff6500" xlink:to="loc_us-gaap_LossContingencyAccrualProvision_8c1d0306-e2d2-4ecf-b0a7-a5e486dd50e7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryWriteDown_aa0529c2-8145-4f0a-8324-1b3a0e66d0ee" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InventoryWriteDown"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_1f088f0b-d517-457b-8d08-7cce99ff6500" xlink:to="loc_us-gaap_InventoryWriteDown_aa0529c2-8145-4f0a-8324-1b3a0e66d0ee" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax_8f74cc30-e7b8-44c4-bcef-91b363c37c7b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_1f088f0b-d517-457b-8d08-7cce99ff6500" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax_8f74cc30-e7b8-44c4-bcef-91b363c37c7b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensation_125ec593-e4a5-45d4-8584-8317153f3abb" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensation"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_1f088f0b-d517-457b-8d08-7cce99ff6500" xlink:to="loc_us-gaap_ShareBasedCompensation_125ec593-e4a5-45d4-8584-8317153f3abb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillImpairmentLoss_5d2c7ae7-ff57-41b0-b7db-663608605e9d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GoodwillImpairmentLoss"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_1f088f0b-d517-457b-8d08-7cce99ff6500" xlink:to="loc_us-gaap_GoodwillImpairmentLoss_5d2c7ae7-ff57-41b0-b7db-663608605e9d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_NoncashInterestExpense_397e7aee-e1a9-4e10-a279-a5ec495eedca" xlink:href="tgen-20241231.xsd#tgen_NoncashInterestExpense"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_1f088f0b-d517-457b-8d08-7cce99ff6500" xlink:to="loc_tgen_NoncashInterestExpense_397e7aee-e1a9-4e10-a279-a5ec495eedca" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInOperatingAssetsAbstract_28954a75-9deb-4e81-8dee-f5d13cda646a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInOperatingAssetsAbstract"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_13a63a67-4ba6-46af-9825-9f6e53b377ae" xlink:to="loc_us-gaap_IncreaseDecreaseInOperatingAssetsAbstract_28954a75-9deb-4e81-8dee-f5d13cda646a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInAccountsReceivable_f8974d9c-63e9-423a-9901-fad66333a485" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInAccountsReceivable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInOperatingAssetsAbstract_28954a75-9deb-4e81-8dee-f5d13cda646a" xlink:to="loc_us-gaap_IncreaseDecreaseInAccountsReceivable_f8974d9c-63e9-423a-9901-fad66333a485" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInInventories_2feb1b01-9608-4eac-9aa8-f06d2dcc18cc" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInInventories"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInOperatingAssetsAbstract_28954a75-9deb-4e81-8dee-f5d13cda646a" xlink:to="loc_us-gaap_IncreaseDecreaseInInventories_2feb1b01-9608-4eac-9aa8-f06d2dcc18cc" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInContractWithCustomerLiability_a01a2d38-d0fd-49a7-b43d-aaee88fe93ff" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInContractWithCustomerLiability"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInOperatingAssetsAbstract_28954a75-9deb-4e81-8dee-f5d13cda646a" xlink:to="loc_us-gaap_IncreaseDecreaseInContractWithCustomerLiability_a01a2d38-d0fd-49a7-b43d-aaee88fe93ff" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_IncreaseDecreaseInPrepaidExpenseAndOtherCurrentAssets_523a23c2-b561-417a-8497-e8440b3e0442" xlink:href="tgen-20241231.xsd#tgen_IncreaseDecreaseInPrepaidExpenseAndOtherCurrentAssets"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInOperatingAssetsAbstract_28954a75-9deb-4e81-8dee-f5d13cda646a" xlink:to="loc_tgen_IncreaseDecreaseInPrepaidExpenseAndOtherCurrentAssets_523a23c2-b561-417a-8497-e8440b3e0442" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInOtherOperatingAssets_e60866cf-171a-4255-9b90-a3ead32be4b0" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInOtherOperatingAssets"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInOperatingAssetsAbstract_28954a75-9deb-4e81-8dee-f5d13cda646a" xlink:to="loc_us-gaap_IncreaseDecreaseInOtherOperatingAssets_e60866cf-171a-4255-9b90-a3ead32be4b0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInOperatingLiabilitiesAbstract_66d607e3-bc52-49d4-928f-65596a3e80e5" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInOperatingLiabilitiesAbstract"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_13a63a67-4ba6-46af-9825-9f6e53b377ae" xlink:to="loc_us-gaap_IncreaseDecreaseInOperatingLiabilitiesAbstract_66d607e3-bc52-49d4-928f-65596a3e80e5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInAccountsPayable_7bd93dfb-faff-4661-bc7c-7c770fa035fb" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInAccountsPayable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInOperatingLiabilitiesAbstract_66d607e3-bc52-49d4-928f-65596a3e80e5" xlink:to="loc_us-gaap_IncreaseDecreaseInAccountsPayable_7bd93dfb-faff-4661-bc7c-7c770fa035fb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInAccruedLiabilities_f2405447-8abf-4403-a601-77ab93c43a14" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInAccruedLiabilities"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInOperatingLiabilitiesAbstract_66d607e3-bc52-49d4-928f-65596a3e80e5" xlink:to="loc_us-gaap_IncreaseDecreaseInAccruedLiabilities_f2405447-8abf-4403-a601-77ab93c43a14" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInDeferredRevenue_e25b13f4-636b-4fd9-9543-4ac55b0a1786" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInDeferredRevenue"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInOperatingLiabilitiesAbstract_66d607e3-bc52-49d4-928f-65596a3e80e5" xlink:to="loc_us-gaap_IncreaseDecreaseInDeferredRevenue_e25b13f4-636b-4fd9-9543-4ac55b0a1786" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInOtherCurrentLiabilities_fe8c673f-e11e-438b-b229-27a3734f625e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInOtherCurrentLiabilities"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInOperatingLiabilitiesAbstract_66d607e3-bc52-49d4-928f-65596a3e80e5" xlink:to="loc_us-gaap_IncreaseDecreaseInOtherCurrentLiabilities_fe8c673f-e11e-438b-b229-27a3734f625e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_bd2775aa-9c30-415c-8cef-e716db48c419" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivities"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_13a63a67-4ba6-46af-9825-9f6e53b377ae" xlink:to="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_bd2775aa-9c30-415c-8cef-e716db48c419" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_9a9c5c4c-795a-4821-b168-dc2a27dd5dac" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfCashFlowsAbstract_bef053bd-fd7e-44f2-981b-8b650e9d1fa6" xlink:to="loc_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_9a9c5c4c-795a-4821-b168-dc2a27dd5dac" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_c425498b-fee8-4dbb-a5de-625282be2ddb" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentsToAcquirePropertyPlantAndEquipment"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_9a9c5c4c-795a-4821-b168-dc2a27dd5dac" xlink:to="loc_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_c425498b-fee8-4dbb-a5de-625282be2ddb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment_3ba0d28d-cecc-4818-9244-ba6600e2c693" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_9a9c5c4c-795a-4821-b168-dc2a27dd5dac" xlink:to="loc_us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment_3ba0d28d-cecc-4818-9244-ba6600e2c693" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsToAcquireIntangibleAssets_d6b10064-2d4b-4227-bfdb-b7547456436a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentsToAcquireIntangibleAssets"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_9a9c5c4c-795a-4821-b168-dc2a27dd5dac" xlink:to="loc_us-gaap_PaymentsToAcquireIntangibleAssets_d6b10064-2d4b-4227-bfdb-b7547456436a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired_c56bbb11-657d-4cb2-9e2a-fa1204ee2f39" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_9a9c5c4c-795a-4821-b168-dc2a27dd5dac" xlink:to="loc_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired_c56bbb11-657d-4cb2-9e2a-fa1204ee2f39" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_PaymentsToNoncontrollingInterestsInvestingActivities_2d51c094-8cb1-478d-871f-fc96e09f5ee2" xlink:href="tgen-20241231.xsd#tgen_PaymentsToNoncontrollingInterestsInvestingActivities"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_9a9c5c4c-795a-4821-b168-dc2a27dd5dac" xlink:to="loc_tgen_PaymentsToNoncontrollingInterestsInvestingActivities_2d51c094-8cb1-478d-871f-fc96e09f5ee2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInInvestingActivities_9fca8d60-95fe-407a-a7bd-e9ed68e70783" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivities"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfCashFlowsAbstract_bef053bd-fd7e-44f2-981b-8b650e9d1fa6" xlink:to="loc_us-gaap_NetCashProvidedByUsedInInvestingActivities_9fca8d60-95fe-407a-a7bd-e9ed68e70783" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_39bf4f32-bd44-45c7-97b9-e3b0f9bcc0c6" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfCashFlowsAbstract_bef053bd-fd7e-44f2-981b-8b650e9d1fa6" xlink:to="loc_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_39bf4f32-bd44-45c7-97b9-e3b0f9bcc0c6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProceedsFromNotesPayable_a52657b7-659b-4cf8-beda-05836cf1ec5c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProceedsFromNotesPayable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_39bf4f32-bd44-45c7-97b9-e3b0f9bcc0c6" xlink:to="loc_us-gaap_ProceedsFromNotesPayable_a52657b7-659b-4cf8-beda-05836cf1ec5c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinanceLeasePrincipalPayments_1e4d425d-5a2c-403f-b59a-dabd62d190c9" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FinanceLeasePrincipalPayments"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_39bf4f32-bd44-45c7-97b9-e3b0f9bcc0c6" xlink:to="loc_us-gaap_FinanceLeasePrincipalPayments_1e4d425d-5a2c-403f-b59a-dabd62d190c9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProceedsFromStockOptionsExercised_491bd732-16ea-4416-b276-b227edfff6fd" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProceedsFromStockOptionsExercised"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_39bf4f32-bd44-45c7-97b9-e3b0f9bcc0c6" xlink:to="loc_us-gaap_ProceedsFromStockOptionsExercised_491bd732-16ea-4416-b276-b227edfff6fd" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInFinancingActivities_af4b6583-327b-40b1-821a-e1ab08ac4db8" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivities"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_39bf4f32-bd44-45c7-97b9-e3b0f9bcc0c6" xlink:to="loc_us-gaap_NetCashProvidedByUsedInFinancingActivities_af4b6583-327b-40b1-821a-e1ab08ac4db8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect_7af45754-742f-4af9-9384-57c11cbe2b8a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfCashFlowsAbstract_bef053bd-fd7e-44f2-981b-8b650e9d1fa6" xlink:to="loc_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect_7af45754-742f-4af9-9384-57c11cbe2b8a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_4a5ab2e3-4200-491d-b432-eca3be110569" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfCashFlowsAbstract_bef053bd-fd7e-44f2-981b-8b650e9d1fa6" xlink:to="loc_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_4a5ab2e3-4200-491d-b432-eca3be110569" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_36743cf1-256e-4fd6-86dd-14bd8d2503fd" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfCashFlowsAbstract_bef053bd-fd7e-44f2-981b-8b650e9d1fa6" xlink:to="loc_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_36743cf1-256e-4fd6-86dd-14bd8d2503fd" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SupplementalCashFlowInformationAbstract_74ac2fd8-7379-42d5-b229-6507e4765f52" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SupplementalCashFlowInformationAbstract"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfCashFlowsAbstract_bef053bd-fd7e-44f2-981b-8b650e9d1fa6" xlink:to="loc_us-gaap_SupplementalCashFlowInformationAbstract_74ac2fd8-7379-42d5-b229-6507e4765f52" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InterestPaidNet_2d17056c-6b87-4cf8-8063-4a678462212f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InterestPaidNet"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SupplementalCashFlowInformationAbstract_74ac2fd8-7379-42d5-b229-6507e4765f52" xlink:to="loc_us-gaap_InterestPaidNet_2d17056c-6b87-4cf8-8063-4a678462212f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxesPaid_39b0f072-8d20-4034-9e0a-e8377b7d1ed7" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxesPaid"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SupplementalCashFlowInformationAbstract_74ac2fd8-7379-42d5-b229-6507e4765f52" xlink:to="loc_us-gaap_IncomeTaxesPaid_39b0f072-8d20-4034-9e0a-e8377b7d1ed7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdditionalCashFlowElementsInvestingActivitiesAbstract_0603fe24-5478-4ac5-b47d-e3cf948491cb" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AdditionalCashFlowElementsInvestingActivitiesAbstract"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SupplementalCashFlowInformationAbstract_74ac2fd8-7379-42d5-b229-6507e4765f52" xlink:to="loc_us-gaap_AdditionalCashFlowElementsInvestingActivitiesAbstract_0603fe24-5478-4ac5-b47d-e3cf948491cb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability_9b52683a-e6cb-4e2c-8c22-397f0f68c76f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdditionalCashFlowElementsInvestingActivitiesAbstract_0603fe24-5478-4ac5-b47d-e3cf948491cb" xlink:to="loc_us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability_9b52683a-e6cb-4e2c-8c22-397f0f68c76f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_VehiclesAcquiredUnderFinanceLeases_59cfc1ce-4f2d-4643-8ad1-a42de10c7367" xlink:href="tgen-20241231.xsd#tgen_VehiclesAcquiredUnderFinanceLeases"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdditionalCashFlowElementsInvestingActivitiesAbstract_0603fe24-5478-4ac5-b47d-e3cf948491cb" xlink:to="loc_tgen_VehiclesAcquiredUnderFinanceLeases_59cfc1ce-4f2d-4643-8ad1-a42de10c7367" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AssetAcquisitionConsiderationTransferredNonCashAccountsReceivableCredit_ca2b5b92-ab75-4fa5-a8dd-03255b814c83" xlink:href="tgen-20241231.xsd#tgen_AssetAcquisitionConsiderationTransferredNonCashAccountsReceivableCredit"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdditionalCashFlowElementsInvestingActivitiesAbstract_0603fe24-5478-4ac5-b47d-e3cf948491cb" xlink:to="loc_tgen_AssetAcquisitionConsiderationTransferredNonCashAccountsReceivableCredit_ca2b5b92-ab75-4fa5-a8dd-03255b814c83" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AssetAcquisitionConsiderationTransferredNonCashAccountsPayable_43f0f002-a523-4a38-95ce-cb7462e38826" xlink:href="tgen-20241231.xsd#tgen_AssetAcquisitionConsiderationTransferredNonCashAccountsPayable"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdditionalCashFlowElementsInvestingActivitiesAbstract_0603fe24-5478-4ac5-b47d-e3cf948491cb" xlink:to="loc_tgen_AssetAcquisitionConsiderationTransferredNonCashAccountsPayable_43f0f002-a523-4a38-95ce-cb7462e38826" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AssetAcquisitionConsiderationTransferredNonCashContingentConsideration_c9c57520-38fb-47cb-862a-ee3b3d246f96" xlink:href="tgen-20241231.xsd#tgen_AssetAcquisitionConsiderationTransferredNonCashContingentConsideration"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdditionalCashFlowElementsInvestingActivitiesAbstract_0603fe24-5478-4ac5-b47d-e3cf948491cb" xlink:to="loc_tgen_AssetAcquisitionConsiderationTransferredNonCashContingentConsideration_c9c57520-38fb-47cb-862a-ee3b3d246f96" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AssetAcquisitionConsiderationTransferredNonCash_cdcefecc-36fa-45b3-9af3-f4d51923b222" xlink:href="tgen-20241231.xsd#tgen_AssetAcquisitionConsiderationTransferredNonCash"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdditionalCashFlowElementsInvestingActivitiesAbstract_0603fe24-5478-4ac5-b47d-e3cf948491cb" xlink:to="loc_tgen_AssetAcquisitionConsiderationTransferredNonCash_cdcefecc-36fa-45b3-9af3-f4d51923b222" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/Natureofbusinessandoperations" xlink:type="simple" xlink:href="tgen-20241231.xsd#Natureofbusinessandoperations"/>
  <link:presentationLink xlink:role="http://www.tecogen.com/role/Natureofbusinessandoperations" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract_08849dc5-3eaf-49bf-b274-e88471abf186" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NatureOfOperations_f2437e7e-c8ed-4fc2-a7bf-c1d6aae452a1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NatureOfOperations"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract_08849dc5-3eaf-49bf-b274-e88471abf186" xlink:to="loc_us-gaap_NatureOfOperations_f2437e7e-c8ed-4fc2-a7bf-c1d6aae452a1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/Summaryofsignificantaccountingpolicies" xlink:type="simple" xlink:href="tgen-20241231.xsd#Summaryofsignificantaccountingpolicies"/>
  <link:presentationLink xlink:role="http://www.tecogen.com/role/Summaryofsignificantaccountingpolicies" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountingPoliciesAbstract_e258b9f6-658e-4804-b43b-b14bcfdb3d94" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountingPoliciesAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BasisOfPresentationAndSignificantAccountingPoliciesTextBlock_89717ba1-4f14-444f-bc7c-c3d5e80a3f1a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BasisOfPresentationAndSignificantAccountingPoliciesTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_e258b9f6-658e-4804-b43b-b14bcfdb3d94" xlink:to="loc_us-gaap_BasisOfPresentationAndSignificantAccountingPoliciesTextBlock_89717ba1-4f14-444f-bc7c-c3d5e80a3f1a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/Losspercommonshare" xlink:type="simple" xlink:href="tgen-20241231.xsd#Losspercommonshare"/>
  <link:presentationLink xlink:role="http://www.tecogen.com/role/Losspercommonshare" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EarningsPerShareAbstract_5e809329-3add-4d51-adca-1da8bdbbd824" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EarningsPerShareAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EarningsPerShareTextBlock_c111fab0-ccc5-431d-a0cb-326a5c6af59e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EarningsPerShareTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EarningsPerShareAbstract_5e809329-3add-4d51-adca-1da8bdbbd824" xlink:to="loc_us-gaap_EarningsPerShareTextBlock_c111fab0-ccc5-431d-a0cb-326a5c6af59e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/AcquisitionofAmericanDGEnergyIncNotes" xlink:type="simple" xlink:href="tgen-20241231.xsd#AcquisitionofAmericanDGEnergyIncNotes"/>
  <link:presentationLink xlink:role="http://www.tecogen.com/role/AcquisitionofAmericanDGEnergyIncNotes" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationsAbstract_6192f758-1b72-44b4-bb72-4649581ad7c2" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MergersAcquisitionsAndDispositionsDisclosuresTextBlock_c23ed6e7-e4e7-4612-8e7b-2da9d77135e4" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_MergersAcquisitionsAndDispositionsDisclosuresTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessCombinationsAbstract_6192f758-1b72-44b4-bb72-4649581ad7c2" xlink:to="loc_us-gaap_MergersAcquisitionsAndDispositionsDisclosuresTextBlock_c23ed6e7-e4e7-4612-8e7b-2da9d77135e4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/AegisContractandRelatedAssetAcquisition" xlink:type="simple" xlink:href="tgen-20241231.xsd#AegisContractandRelatedAssetAcquisition"/>
  <link:presentationLink xlink:role="http://www.tecogen.com/role/AegisContractandRelatedAssetAcquisition" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationAndAssetAcquisitionAbstract_102259a7-6315-4fb9-bce1-46377f828462" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationAndAssetAcquisitionAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationDisclosureTextBlock_d0b42fc5-0cd4-4e54-bbb2-fb4008b232b6" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationDisclosureTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessCombinationAndAssetAcquisitionAbstract_102259a7-6315-4fb9-bce1-46377f828462" xlink:to="loc_us-gaap_BusinessCombinationDisclosureTextBlock_d0b42fc5-0cd4-4e54-bbb2-fb4008b232b6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/SaleofEnergyProducingAssetsandGoodwillImpairment" xlink:type="simple" xlink:href="tgen-20241231.xsd#SaleofEnergyProducingAssetsandGoodwillImpairment"/>
  <link:presentationLink xlink:role="http://www.tecogen.com/role/SaleofEnergyProducingAssetsandGoodwillImpairment" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DiscontinuedOperationsAndDisposalGroupsAbstract_b33baa63-4223-4237-954a-704858cb2963" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DiscontinuedOperationsAndDisposalGroupsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisposalGroupsIncludingDiscontinuedOperationsDisclosureTextBlock_17695a0d-daf5-4cb5-acea-648138cfddf3" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisposalGroupsIncludingDiscontinuedOperationsDisclosureTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DiscontinuedOperationsAndDisposalGroupsAbstract_b33baa63-4223-4237-954a-704858cb2963" xlink:to="loc_us-gaap_DisposalGroupsIncludingDiscontinuedOperationsDisclosureTextBlock_17695a0d-daf5-4cb5-acea-648138cfddf3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/Inventory" xlink:type="simple" xlink:href="tgen-20241231.xsd#Inventory"/>
  <link:presentationLink xlink:role="http://www.tecogen.com/role/Inventory" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryDisclosureAbstract_ecef6488-bd5d-4977-aa45-117da6391ce9" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InventoryDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryDisclosureTextBlock_e9fce80e-d120-4c72-946e-419a0c96406c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InventoryDisclosureTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_InventoryDisclosureAbstract_ecef6488-bd5d-4977-aa45-117da6391ce9" xlink:to="loc_us-gaap_InventoryDisclosureTextBlock_e9fce80e-d120-4c72-946e-419a0c96406c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/Intangibleassetsandliabilitiesotherthangoodwill" xlink:type="simple" xlink:href="tgen-20241231.xsd#Intangibleassetsandliabilitiesotherthangoodwill"/>
  <link:presentationLink xlink:role="http://www.tecogen.com/role/Intangibleassetsandliabilitiesotherthangoodwill" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IntangibleAssetsNetExcludingGoodwillAbstract_93eec32f-0622-4e23-911c-13e1ada517bf" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IntangibleAssetsNetExcludingGoodwillAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IntangibleAssetsDisclosureTextBlock_a04168d2-067f-43ba-8d83-09fb1e4e19f3" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IntangibleAssetsDisclosureTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IntangibleAssetsNetExcludingGoodwillAbstract_93eec32f-0622-4e23-911c-13e1ada517bf" xlink:to="loc_us-gaap_IntangibleAssetsDisclosureTextBlock_a04168d2-067f-43ba-8d83-09fb1e4e19f3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/Propertyplantandequipment" xlink:type="simple" xlink:href="tgen-20241231.xsd#Propertyplantandequipment"/>
  <link:presentationLink xlink:role="http://www.tecogen.com/role/Propertyplantandequipment" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentAbstract_ea81484c-56eb-4be3-b2d9-7d7ac8714fea" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock_01b6908b-a329-4976-84f5-412d962fc923" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentAbstract_ea81484c-56eb-4be3-b2d9-7d7ac8714fea" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock_01b6908b-a329-4976-84f5-412d962fc923" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/GoodwillNotes" xlink:type="simple" xlink:href="tgen-20241231.xsd#GoodwillNotes"/>
  <link:presentationLink xlink:role="http://www.tecogen.com/role/GoodwillNotes" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_d4e92766-29fc-441b-9794-8be81aa57c9b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillDisclosureTextBlock_5b405e59-2662-4e89-a52a-1684cd161963" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GoodwillDisclosureTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_d4e92766-29fc-441b-9794-8be81aa57c9b" xlink:to="loc_us-gaap_GoodwillDisclosureTextBlock_5b405e59-2662-4e89-a52a-1684cd161963" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/RelatedPartyNotes" xlink:type="simple" xlink:href="tgen-20241231.xsd#RelatedPartyNotes"/>
  <link:presentationLink xlink:role="http://www.tecogen.com/role/RelatedPartyNotes" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyTransactionsAbstract_1e7d40f9-f8af-4729-9542-905dbdce9f8a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RelatedPartyTransactionsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtDisclosureTextBlock_1abca683-4c44-4a40-a59c-b67feab9c5a3" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtDisclosureTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RelatedPartyTransactionsAbstract_1e7d40f9-f8af-4729-9542-905dbdce9f8a" xlink:to="loc_us-gaap_DebtDisclosureTextBlock_1abca683-4c44-4a40-a59c-b67feab9c5a3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/Commitmentsandcontingencies" xlink:type="simple" xlink:href="tgen-20241231.xsd#Commitmentsandcontingencies"/>
  <link:presentationLink xlink:role="http://www.tecogen.com/role/Commitmentsandcontingencies" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommitmentsAndContingenciesDisclosureAbstract_3ca535d4-2d6a-4ef8-85df-d46192cd7fba" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommitmentsAndContingenciesDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommitmentsContingenciesAndGuaranteesTextBlock_37ee96fa-d9e1-4793-87c7-51048b9bba55" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommitmentsContingenciesAndGuaranteesTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CommitmentsAndContingenciesDisclosureAbstract_3ca535d4-2d6a-4ef8-85df-d46192cd7fba" xlink:to="loc_us-gaap_CommitmentsContingenciesAndGuaranteesTextBlock_37ee96fa-d9e1-4793-87c7-51048b9bba55" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/Productwarranty" xlink:type="simple" xlink:href="tgen-20241231.xsd#Productwarranty"/>
  <link:presentationLink xlink:role="http://www.tecogen.com/role/Productwarranty" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GuaranteesAbstract_0b3ac40a-ef84-4542-a6f9-9dcc8ae91bcb" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GuaranteesAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProductWarrantyDisclosureTextBlock_24841f4b-4b20-4cf3-abc3-56b0013d791b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProductWarrantyDisclosureTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GuaranteesAbstract_0b3ac40a-ef84-4542-a6f9-9dcc8ae91bcb" xlink:to="loc_us-gaap_ProductWarrantyDisclosureTextBlock_24841f4b-4b20-4cf3-abc3-56b0013d791b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/Leases" xlink:type="simple" xlink:href="tgen-20241231.xsd#Leases"/>
  <link:presentationLink xlink:role="http://www.tecogen.com/role/Leases" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountingPoliciesAbstract_ad8418e7-e70e-4632-9e7f-264a989a4b4f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountingPoliciesAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeasesTextBlock_64795970-12ff-421b-ab3e-365a368829c4" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeasesTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_ad8418e7-e70e-4632-9e7f-264a989a4b4f" xlink:to="loc_us-gaap_LesseeOperatingLeasesTextBlock_64795970-12ff-421b-ab3e-365a368829c4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/Stockholdersequity" xlink:type="simple" xlink:href="tgen-20241231.xsd#Stockholdersequity"/>
  <link:presentationLink xlink:role="http://www.tecogen.com/role/Stockholdersequity" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquityAbstract_c3b1803f-2523-46bb-8456-513eb05c5656" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EquityAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareholdersEquityAndShareBasedPaymentsTextBlock_dce6762f-9510-4857-bca4-b06d91db7f7b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareholdersEquityAndShareBasedPaymentsTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquityAbstract_c3b1803f-2523-46bb-8456-513eb05c5656" xlink:to="loc_us-gaap_ShareholdersEquityAndShareBasedPaymentsTextBlock_dce6762f-9510-4857-bca4-b06d91db7f7b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/FairValueMeasurementsNotes" xlink:type="simple" xlink:href="tgen-20241231.xsd#FairValueMeasurementsNotes"/>
  <link:presentationLink xlink:role="http://www.tecogen.com/role/FairValueMeasurementsNotes" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueDisclosuresAbstract_66acd3d9-623f-41a2-874f-d17650364bc7" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueDisclosuresAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueDisclosuresTextBlock_154edff4-a8c9-4874-9457-49b149592378" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueDisclosuresTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueDisclosuresAbstract_66acd3d9-623f-41a2-874f-d17650364bc7" xlink:to="loc_us-gaap_FairValueDisclosuresTextBlock_154edff4-a8c9-4874-9457-49b149592378" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/Retirementplans" xlink:type="simple" xlink:href="tgen-20241231.xsd#Retirementplans"/>
  <link:presentationLink xlink:role="http://www.tecogen.com/role/Retirementplans" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CompensationAndRetirementDisclosureAbstract_6690baca-3f87-407b-9b78-d116dca448fa" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CompensationAndRetirementDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CompensationAndEmployeeBenefitPlansTextBlock_acf0acd6-8c14-44cf-a1a7-d19eddbc2d3a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CompensationAndEmployeeBenefitPlansTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CompensationAndRetirementDisclosureAbstract_6690baca-3f87-407b-9b78-d116dca448fa" xlink:to="loc_us-gaap_CompensationAndEmployeeBenefitPlansTextBlock_acf0acd6-8c14-44cf-a1a7-d19eddbc2d3a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/SegmentsNotes" xlink:type="simple" xlink:href="tgen-20241231.xsd#SegmentsNotes"/>
  <link:presentationLink xlink:role="http://www.tecogen.com/role/SegmentsNotes" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SegmentReportingAbstract_ed6d31a8-4d14-4afd-a524-e78fa6266cce" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SegmentReportingAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SegmentReportingDisclosureTextBlock_9614868b-8212-4298-884b-b52fd8444022" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SegmentReportingDisclosureTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SegmentReportingAbstract_ed6d31a8-4d14-4afd-a524-e78fa6266cce" xlink:to="loc_us-gaap_SegmentReportingDisclosureTextBlock_9614868b-8212-4298-884b-b52fd8444022" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/Incometaxes" xlink:type="simple" xlink:href="tgen-20241231.xsd#Incometaxes"/>
  <link:presentationLink xlink:role="http://www.tecogen.com/role/Incometaxes" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxDisclosureAbstract_c271ab8d-8278-48b6-8766-4ee6b520fb0a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxDisclosureTextBlock_5f21a15f-f4c6-4928-a807-d07008187e50" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxDisclosureTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_c271ab8d-8278-48b6-8766-4ee6b520fb0a" xlink:to="loc_us-gaap_IncomeTaxDisclosureTextBlock_5f21a15f-f4c6-4928-a807-d07008187e50" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/SubsequentEvents" xlink:type="simple" xlink:href="tgen-20241231.xsd#SubsequentEvents"/>
  <link:presentationLink xlink:role="http://www.tecogen.com/role/SubsequentEvents" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventsAbstract_e7e3dbaf-216b-41d5-be36-df7a5cf34ba7" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsequentEventsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventsTextBlock_c248de82-473e-4497-939d-e91cc57e0df7" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsequentEventsTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SubsequentEventsAbstract_e7e3dbaf-216b-41d5-be36-df7a5cf34ba7" xlink:to="loc_us-gaap_SubsequentEventsTextBlock_c248de82-473e-4497-939d-e91cc57e0df7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesPolicies" xlink:type="simple" xlink:href="tgen-20241231.xsd#SummaryofsignificantaccountingpoliciesPolicies"/>
  <link:presentationLink xlink:role="http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesPolicies" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountingPoliciesAbstract_412f82b6-eb8b-420d-9b85-b74be3a8c9bc" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountingPoliciesAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_PrinciplesOfConsolidationAndBasisOfPresentationPolicyTextBlock_bc0cbe4f-2ff5-49b4-8b97-a3f68868701d" xlink:href="tgen-20241231.xsd#tgen_PrinciplesOfConsolidationAndBasisOfPresentationPolicyTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_412f82b6-eb8b-420d-9b85-b74be3a8c9bc" xlink:to="loc_tgen_PrinciplesOfConsolidationAndBasisOfPresentationPolicyTextBlock_bc0cbe4f-2ff5-49b4-8b97-a3f68868701d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UseOfEstimates_c17f02f9-0666-4e9d-957b-21bdd57639d8" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_UseOfEstimates"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_412f82b6-eb8b-420d-9b85-b74be3a8c9bc" xlink:to="loc_us-gaap_UseOfEstimates_c17f02f9-0666-4e9d-957b-21bdd57639d8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PriorPeriodReclassificationAdjustmentDescription_2ab81061-0446-4bea-b68c-da17f7081fb8" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PriorPeriodReclassificationAdjustmentDescription"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_412f82b6-eb8b-420d-9b85-b74be3a8c9bc" xlink:to="loc_us-gaap_PriorPeriodReclassificationAdjustmentDescription_2ab81061-0446-4bea-b68c-da17f7081fb8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskCreditRisk_2c5fae05-3da5-4707-bd5e-58c34000f661" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskCreditRisk"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_412f82b6-eb8b-420d-9b85-b74be3a8c9bc" xlink:to="loc_us-gaap_ConcentrationRiskCreditRisk_2c5fae05-3da5-4707-bd5e-58c34000f661" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsPolicyTextBlock_70304127-e934-4c92-903e-f9e7676259fa" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashAndCashEquivalentsPolicyTextBlock"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_412f82b6-eb8b-420d-9b85-b74be3a8c9bc" xlink:to="loc_us-gaap_CashAndCashEquivalentsPolicyTextBlock_70304127-e934-4c92-903e-f9e7676259fa" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TradeAndOtherAccountsReceivablePolicy_1674100a-c917-4456-9c9e-eedcdeff9579" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TradeAndOtherAccountsReceivablePolicy"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_412f82b6-eb8b-420d-9b85-b74be3a8c9bc" xlink:to="loc_us-gaap_TradeAndOtherAccountsReceivablePolicy_1674100a-c917-4456-9c9e-eedcdeff9579" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryPolicyTextBlock_8c3f5879-5587-45cb-9866-26547cb376c0" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InventoryPolicyTextBlock"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_412f82b6-eb8b-420d-9b85-b74be3a8c9bc" xlink:to="loc_us-gaap_InventoryPolicyTextBlock_8c3f5879-5587-45cb-9866-26547cb376c0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentPolicyTextBlock_c4189da1-b4e2-4d6b-b53e-9b6e3cdd8f8a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentPolicyTextBlock"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_412f82b6-eb8b-420d-9b85-b74be3a8c9bc" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentPolicyTextBlock_c4189da1-b4e2-4d6b-b53e-9b6e3cdd8f8a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IntangibleAssetsFiniteLivedPolicy_01d7e0d1-5b65-4bf6-b6be-ef2a75f1b91a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IntangibleAssetsFiniteLivedPolicy"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_412f82b6-eb8b-420d-9b85-b74be3a8c9bc" xlink:to="loc_us-gaap_IntangibleAssetsFiniteLivedPolicy_01d7e0d1-5b65-4bf6-b6be-ef2a75f1b91a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ImpairmentOrDisposalOfLongLivedAssetsPolicyTextBlock_831af22b-2ad6-4384-a66f-de927e18d74f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ImpairmentOrDisposalOfLongLivedAssetsPolicyTextBlock"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_412f82b6-eb8b-420d-9b85-b74be3a8c9bc" xlink:to="loc_us-gaap_ImpairmentOrDisposalOfLongLivedAssetsPolicyTextBlock_831af22b-2ad6-4384-a66f-de927e18d74f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationsPolicy_4a100fff-0c5b-4f9e-b6b8-693894022d93" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationsPolicy"/>
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_412f82b6-eb8b-420d-9b85-b74be3a8c9bc" xlink:to="loc_us-gaap_BusinessCombinationsPolicy_4a100fff-0c5b-4f9e-b6b8-693894022d93" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy_e67bbd20-8607-4674-88c2-22a593a77b6c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy"/>
    <link:presentationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_412f82b6-eb8b-420d-9b85-b74be3a8c9bc" xlink:to="loc_us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy_e67bbd20-8607-4674-88c2-22a593a77b6c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ContingentConsiderationArrangementsPolicyPolicyTextBlock_af43fa56-cad8-450e-b797-f5023abc7388" xlink:href="tgen-20241231.xsd#tgen_ContingentConsiderationArrangementsPolicyPolicyTextBlock"/>
    <link:presentationArc order="13" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_412f82b6-eb8b-420d-9b85-b74be3a8c9bc" xlink:to="loc_tgen_ContingentConsiderationArrangementsPolicyPolicyTextBlock_af43fa56-cad8-450e-b797-f5023abc7388" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeLeasesPolicyTextBlock_6f0b3dcb-8a82-4afc-a948-3e2f781112d4" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeLeasesPolicyTextBlock"/>
    <link:presentationArc order="14" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_412f82b6-eb8b-420d-9b85-b74be3a8c9bc" xlink:to="loc_us-gaap_LesseeLeasesPolicyTextBlock_6f0b3dcb-8a82-4afc-a948-3e2f781112d4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EarningsPerSharePolicyTextBlock_42219a6a-82ae-4eb5-b4f0-2730954ecb95" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EarningsPerSharePolicyTextBlock"/>
    <link:presentationArc order="15" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_412f82b6-eb8b-420d-9b85-b74be3a8c9bc" xlink:to="loc_us-gaap_EarningsPerSharePolicyTextBlock_42219a6a-82ae-4eb5-b4f0-2730954ecb95" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SegmentReportingPolicyPolicyTextBlock_0de3659f-89cc-4c0e-a6d7-a5a677f642f5" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SegmentReportingPolicyPolicyTextBlock"/>
    <link:presentationArc order="16" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_412f82b6-eb8b-420d-9b85-b74be3a8c9bc" xlink:to="loc_us-gaap_SegmentReportingPolicyPolicyTextBlock_0de3659f-89cc-4c0e-a6d7-a5a677f642f5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxPolicyTextBlock_2eaa3e48-4ee7-4416-b05e-64cd1afc5e98" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxPolicyTextBlock"/>
    <link:presentationArc order="17" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_412f82b6-eb8b-420d-9b85-b74be3a8c9bc" xlink:to="loc_us-gaap_IncomeTaxPolicyTextBlock_2eaa3e48-4ee7-4416-b05e-64cd1afc5e98" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueOfFinancialInstrumentsPolicy_ad96044f-d947-4127-9ad2-1441541efcc1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueOfFinancialInstrumentsPolicy"/>
    <link:presentationArc order="18" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_412f82b6-eb8b-420d-9b85-b74be3a8c9bc" xlink:to="loc_us-gaap_FairValueOfFinancialInstrumentsPolicy_ad96044f-d947-4127-9ad2-1441541efcc1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerPolicyTextBlock_5ddde644-f98f-4ebf-88e6-913cb9363c2a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueFromContractWithCustomerPolicyTextBlock"/>
    <link:presentationArc order="19" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_412f82b6-eb8b-420d-9b85-b74be3a8c9bc" xlink:to="loc_us-gaap_RevenueFromContractWithCustomerPolicyTextBlock_5ddde644-f98f-4ebf-88e6-913cb9363c2a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdvertisingCostsPolicyTextBlock_cbeeabb2-6634-43f1-8a99-418243ec8f42" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AdvertisingCostsPolicyTextBlock"/>
    <link:presentationArc order="20" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_412f82b6-eb8b-420d-9b85-b74be3a8c9bc" xlink:to="loc_us-gaap_AdvertisingCostsPolicyTextBlock_cbeeabb2-6634-43f1-8a99-418243ec8f42" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ResearchAndDevelopmentExpensePolicy_cbec26ee-b94b-4449-98a8-56ea437b3d6d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ResearchAndDevelopmentExpensePolicy"/>
    <link:presentationArc order="21" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_412f82b6-eb8b-420d-9b85-b74be3a8c9bc" xlink:to="loc_us-gaap_ResearchAndDevelopmentExpensePolicy_cbec26ee-b94b-4449-98a8-56ea437b3d6d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy_49957b75-27e1-4f51-8336-56b3798c3559" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy"/>
    <link:presentationArc order="22" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_412f82b6-eb8b-420d-9b85-b74be3a8c9bc" xlink:to="loc_us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy_49957b75-27e1-4f51-8336-56b3798c3559" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock_ab8901b9-d05d-4c20-9111-b8cb47bd345b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock"/>
    <link:presentationArc order="23" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_412f82b6-eb8b-420d-9b85-b74be3a8c9bc" xlink:to="loc_us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock_ab8901b9-d05d-4c20-9111-b8cb47bd345b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesSummaryofSignificantAccountingPoliciesTables" xlink:type="simple" xlink:href="tgen-20241231.xsd#SummaryofsignificantaccountingpoliciesSummaryofSignificantAccountingPoliciesTables"/>
  <link:presentationLink xlink:role="http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesSummaryofSignificantAccountingPoliciesTables" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountingPoliciesAbstract_a8faf421-c253-463f-9c4e-51ba8a1a5db3" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountingPoliciesAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisaggregationOfRevenueTableTextBlock_7ab0df6b-dfe5-4816-9f1a-85c57d172a0b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisaggregationOfRevenueTableTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_a8faf421-c253-463f-9c4e-51ba8a1a5db3" xlink:to="loc_us-gaap_DisaggregationOfRevenueTableTextBlock_7ab0df6b-dfe5-4816-9f1a-85c57d172a0b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DetailsOfImpairmentOfLongLivedAssetsHeldAndUsedByAssetTextBlock_02f1b632-c460-4b1c-bb70-826f0bbb1ba4" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DetailsOfImpairmentOfLongLivedAssetsHeldAndUsedByAssetTextBlock"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_a8faf421-c253-463f-9c4e-51ba8a1a5db3" xlink:to="loc_us-gaap_DetailsOfImpairmentOfLongLivedAssetsHeldAndUsedByAssetTextBlock_02f1b632-c460-4b1c-bb70-826f0bbb1ba4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/LosspercommonshareTables" xlink:type="simple" xlink:href="tgen-20241231.xsd#LosspercommonshareTables"/>
  <link:presentationLink xlink:role="http://www.tecogen.com/role/LosspercommonshareTables" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EarningsPerShareAbstract_535dea33-1f2a-43ac-ab7b-58eb5dd42970" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EarningsPerShareAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock_23e298ba-7944-4d79-841c-6318ce251885" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EarningsPerShareAbstract_535dea33-1f2a-43ac-ab7b-58eb5dd42970" xlink:to="loc_us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock_23e298ba-7944-4d79-841c-6318ce251885" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/AegisContractandRelatedAssetAcquisitionTables" xlink:type="simple" xlink:href="tgen-20241231.xsd#AegisContractandRelatedAssetAcquisitionTables"/>
  <link:presentationLink xlink:role="http://www.tecogen.com/role/AegisContractandRelatedAssetAcquisitionTables" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationAndAssetAcquisitionAbstract_1306a216-22f8-484f-ae14-e7ec5319ad13" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationAndAssetAcquisitionAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetAcquisitionTableTextBlock_d531e2ec-2481-43ea-9edf-1858a46896d0" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetAcquisitionTableTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessCombinationAndAssetAcquisitionAbstract_1306a216-22f8-484f-ae14-e7ec5319ad13" xlink:to="loc_us-gaap_AssetAcquisitionTableTextBlock_d531e2ec-2481-43ea-9edf-1858a46896d0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/InventoryTables" xlink:type="simple" xlink:href="tgen-20241231.xsd#InventoryTables"/>
  <link:presentationLink xlink:role="http://www.tecogen.com/role/InventoryTables" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryDisclosureAbstract_8cb0d086-db9e-4474-a81d-375ca50d6f47" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InventoryDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfInventoryCurrentTableTextBlock_8d56f4a7-9744-4053-927d-670a5e89d7e0" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfInventoryCurrentTableTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_InventoryDisclosureAbstract_8cb0d086-db9e-4474-a81d-375ca50d6f47" xlink:to="loc_us-gaap_ScheduleOfInventoryCurrentTableTextBlock_8d56f4a7-9744-4053-927d-670a5e89d7e0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/IntangibleassetsandliabilitiesotherthangoodwillTables" xlink:type="simple" xlink:href="tgen-20241231.xsd#IntangibleassetsandliabilitiesotherthangoodwillTables"/>
  <link:presentationLink xlink:role="http://www.tecogen.com/role/IntangibleassetsandliabilitiesotherthangoodwillTables" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IntangibleAssetsNetExcludingGoodwillAbstract_85a4a04c-d81e-447d-ac6f-57f3d6bdbb62" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IntangibleAssetsNetExcludingGoodwillAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock_b9041a3b-eb25-4933-84ba-86ae2522d4ba" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IntangibleAssetsNetExcludingGoodwillAbstract_85a4a04c-d81e-447d-ac6f-57f3d6bdbb62" xlink:to="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock_b9041a3b-eb25-4933-84ba-86ae2522d4ba" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock_cbf7f3c7-24c1-4925-85e9-65d3aa806eec" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IntangibleAssetsNetExcludingGoodwillAbstract_85a4a04c-d81e-447d-ac6f-57f3d6bdbb62" xlink:to="loc_us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock_cbf7f3c7-24c1-4925-85e9-65d3aa806eec" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/PropertyplantandequipmentTables" xlink:type="simple" xlink:href="tgen-20241231.xsd#PropertyplantandequipmentTables"/>
  <link:presentationLink xlink:role="http://www.tecogen.com/role/PropertyplantandequipmentTables" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentAbstract_f59eda1b-47ea-4dd4-8da6-0dcb9e464d41" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentTextBlock_c59ae5b0-134c-4c5b-a133-d7976156939f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentAbstract_f59eda1b-47ea-4dd4-8da6-0dcb9e464d41" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentTextBlock_c59ae5b0-134c-4c5b-a133-d7976156939f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/GoodwillTables" xlink:type="simple" xlink:href="tgen-20241231.xsd#GoodwillTables"/>
  <link:presentationLink xlink:role="http://www.tecogen.com/role/GoodwillTables" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_e0897f51-186c-47c2-80cc-ebbbe9d567af" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfGoodwillTextBlock_8d6b7eb6-95fe-419f-bef3-bcb515692b63" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfGoodwillTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_e0897f51-186c-47c2-80cc-ebbbe9d567af" xlink:to="loc_us-gaap_ScheduleOfGoodwillTextBlock_8d6b7eb6-95fe-419f-bef3-bcb515692b63" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/ProductwarrantyTables" xlink:type="simple" xlink:href="tgen-20241231.xsd#ProductwarrantyTables"/>
  <link:presentationLink xlink:role="http://www.tecogen.com/role/ProductwarrantyTables" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GuaranteesAbstract_c08300ef-59f1-4ff7-ae7f-366634b01e4a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GuaranteesAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfProductWarrantyLiabilityTableTextBlock_b1fba343-b101-4f5a-bce2-7973e5350a31" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfProductWarrantyLiabilityTableTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GuaranteesAbstract_c08300ef-59f1-4ff7-ae7f-366634b01e4a" xlink:to="loc_us-gaap_ScheduleOfProductWarrantyLiabilityTableTextBlock_b1fba343-b101-4f5a-bce2-7973e5350a31" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/LeasesTables" xlink:type="simple" xlink:href="tgen-20241231.xsd#LeasesTables"/>
  <link:presentationLink xlink:role="http://www.tecogen.com/role/LeasesTables" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountingPoliciesAbstract_1ac4a34a-88b0-4795-9e52-9458fde89ad3" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountingPoliciesAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LeaseCostTableTextBlock_9ac7e4ea-b7e8-4811-a38c-8bf01dee408d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LeaseCostTableTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_1ac4a34a-88b0-4795-9e52-9458fde89ad3" xlink:to="loc_us-gaap_LeaseCostTableTextBlock_9ac7e4ea-b7e8-4811-a38c-8bf01dee408d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AssetsAndLiabilitiesLesseeTableTextBlock_74b5ae50-2542-4a6a-9e09-d3acdc1b046e" xlink:href="tgen-20241231.xsd#tgen_AssetsAndLiabilitiesLesseeTableTextBlock"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_1ac4a34a-88b0-4795-9e52-9458fde89ad3" xlink:to="loc_tgen_AssetsAndLiabilitiesLesseeTableTextBlock_74b5ae50-2542-4a6a-9e09-d3acdc1b046e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock_d0d2322a-f236-4291-8d8c-ac3766fe4979" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_1ac4a34a-88b0-4795-9e52-9458fde89ad3" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock_d0d2322a-f236-4291-8d8c-ac3766fe4979" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/StockholdersequityTables" xlink:type="simple" xlink:href="tgen-20241231.xsd#StockholdersequityTables"/>
  <link:presentationLink xlink:role="http://www.tecogen.com/role/StockholdersequityTables" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquityAbstract_fcbcfa60-b6fa-4282-a145-4fa6df6a68b5" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EquityAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_5604dbfe-d1e4-44b0-bb89-fe8ae3eac7f7" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquityAbstract_fcbcfa60-b6fa-4282-a145-4fa6df6a68b5" xlink:to="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_5604dbfe-d1e4-44b0-bb89-fe8ae3eac7f7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ConsolidatedEntitiesAxis_3725f42c-eb01-46d0-a5d2-12a7b15434fc" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ConsolidatedEntitiesAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_5604dbfe-d1e4-44b0-bb89-fe8ae3eac7f7" xlink:to="loc_srt_ConsolidatedEntitiesAxis_3725f42c-eb01-46d0-a5d2-12a7b15434fc" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ConsolidatedEntitiesDomain_f5512b81-0b61-4e71-987a-b92d5923d15e" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ConsolidatedEntitiesDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ConsolidatedEntitiesAxis_3725f42c-eb01-46d0-a5d2-12a7b15434fc" xlink:to="loc_srt_ConsolidatedEntitiesDomain_f5512b81-0b61-4e71-987a-b92d5923d15e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ParentCompanyMember_e2f348ec-b49b-4d0b-bcee-a496b28cb4b3" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ParentCompanyMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ConsolidatedEntitiesDomain_f5512b81-0b61-4e71-987a-b92d5923d15e" xlink:to="loc_srt_ParentCompanyMember_e2f348ec-b49b-4d0b-bcee-a496b28cb4b3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_3146df58-ce71-4869-9fe9-c6963c85e0f0" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_5604dbfe-d1e4-44b0-bb89-fe8ae3eac7f7" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_3146df58-ce71-4869-9fe9-c6963c85e0f0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock_ba66b80b-f29a-4740-b1c9-c69699b63356" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_3146df58-ce71-4869-9fe9-c6963c85e0f0" xlink:to="loc_us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock_ba66b80b-f29a-4740-b1c9-c69699b63356" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock_1e41e750-c53a-470f-9d07-98a5b89ce9d3" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_3146df58-ce71-4869-9fe9-c6963c85e0f0" xlink:to="loc_us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock_1e41e750-c53a-470f-9d07-98a5b89ce9d3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/FairValueMeasurementsTables" xlink:type="simple" xlink:href="tgen-20241231.xsd#FairValueMeasurementsTables"/>
  <link:presentationLink xlink:role="http://www.tecogen.com/role/FairValueMeasurementsTables" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueDisclosuresAbstract_984b591f-4420-46f8-90ac-199f1e463462" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueDisclosuresAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueAssetsMeasuredOnRecurringBasisTextBlock_92c6cfef-0a99-4299-bab2-4f9b40f6dc68" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueAssetsMeasuredOnRecurringBasisTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueDisclosuresAbstract_984b591f-4420-46f8-90ac-199f1e463462" xlink:to="loc_us-gaap_FairValueAssetsMeasuredOnRecurringBasisTextBlock_92c6cfef-0a99-4299-bab2-4f9b40f6dc68" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/SegmentsTables" xlink:type="simple" xlink:href="tgen-20241231.xsd#SegmentsTables"/>
  <link:presentationLink xlink:role="http://www.tecogen.com/role/SegmentsTables" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SegmentReportingAbstract_ccde57ba-b3ba-487e-ba26-b8612c2b2c68" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SegmentReportingAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock_efa32f1b-2ff5-4bb6-964f-1112fb12553e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SegmentReportingAbstract_ccde57ba-b3ba-487e-ba26-b8612c2b2c68" xlink:to="loc_us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock_efa32f1b-2ff5-4bb6-964f-1112fb12553e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/IncometaxesTables" xlink:type="simple" xlink:href="tgen-20241231.xsd#IncometaxesTables"/>
  <link:presentationLink xlink:role="http://www.tecogen.com/role/IncometaxesTables" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxDisclosureAbstract_341d36fc-0aee-4265-8257-11bf85841926" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock_670c8e51-6d27-4f38-8611-7453d452ceec" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_341d36fc-0aee-4265-8257-11bf85841926" xlink:to="loc_us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock_670c8e51-6d27-4f38-8611-7453d452ceec" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock_9de08a39-e7f0-420c-903f-4cd8d289047e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_341d36fc-0aee-4265-8257-11bf85841926" xlink:to="loc_us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock_9de08a39-e7f0-420c-903f-4cd8d289047e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/NatureofbusinessandoperationsDetails" xlink:type="simple" xlink:href="tgen-20241231.xsd#NatureofbusinessandoperationsDetails"/>
  <link:presentationLink xlink:role="http://www.tecogen.com/role/NatureofbusinessandoperationsDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract_508adc59-56b2-402e-9293-cfc74314d57d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_cf4522e8-e602-4576-9713-b8204c5a2b68" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract_508adc59-56b2-402e-9293-cfc74314d57d" xlink:to="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_cf4522e8-e602-4576-9713-b8204c5a2b68" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_616ebbd2-714d-4f9b-b434-7e8a4a3d3946" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_cf4522e8-e602-4576-9713-b8204c5a2b68" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_616ebbd2-714d-4f9b-b434-7e8a4a3d3946" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_b5a3ca41-5bd0-46bf-9091-4b9f63438fd9" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_616ebbd2-714d-4f9b-b434-7e8a4a3d3946" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_b5a3ca41-5bd0-46bf-9091-4b9f63438fd9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OrderOrProductionBacklogMember_1dd72840-0604-4984-b26d-585f74b8cc73" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OrderOrProductionBacklogMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_b5a3ca41-5bd0-46bf-9091-4b9f63438fd9" xlink:to="loc_us-gaap_OrderOrProductionBacklogMember_1dd72840-0604-4984-b26d-585f74b8cc73" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis_c2e49d4f-30c2-4311-bc79-111f1f65fb11" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RelatedPartyTransactionsByRelatedPartyAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_cf4522e8-e602-4576-9713-b8204c5a2b68" xlink:to="loc_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis_c2e49d4f-30c2-4311-bc79-111f1f65fb11" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyDomain_63145fbb-14f5-4e5e-8a64-e0e68fa21fbb" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RelatedPartyDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis_c2e49d4f-30c2-4311-bc79-111f1f65fb11" xlink:to="loc_us-gaap_RelatedPartyDomain_63145fbb-14f5-4e5e-8a64-e0e68fa21fbb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyMember_dafc00cb-f2d3-41f7-899b-83b65aaffbdc" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RelatedPartyMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RelatedPartyDomain_63145fbb-14f5-4e5e-8a64-e0e68fa21fbb" xlink:to="loc_us-gaap_RelatedPartyMember_dafc00cb-f2d3-41f7-899b-83b65aaffbdc" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_CounterpartyNameAxis_418e6127-0fe8-45d8-bb01-f64337ba4e4c" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_CounterpartyNameAxis"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_cf4522e8-e602-4576-9713-b8204c5a2b68" xlink:to="loc_srt_CounterpartyNameAxis_418e6127-0fe8-45d8-bb01-f64337ba4e4c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RepurchaseAgreementCounterpartyNameDomain_dbe39c54-3657-4c7d-b246-f32db796026c" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RepurchaseAgreementCounterpartyNameDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_CounterpartyNameAxis_418e6127-0fe8-45d8-bb01-f64337ba4e4c" xlink:to="loc_srt_RepurchaseAgreementCounterpartyNameDomain_dbe39c54-3657-4c7d-b246-f32db796026c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_JohnN.HatsopoulosAndEarlR.LewisIIIMember_74641148-c529-4b5b-afda-8d923041d5f0" xlink:href="tgen-20241231.xsd#tgen_JohnN.HatsopoulosAndEarlR.LewisIIIMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RepurchaseAgreementCounterpartyNameDomain_dbe39c54-3657-4c7d-b246-f32db796026c" xlink:to="loc_tgen_JohnN.HatsopoulosAndEarlR.LewisIIIMember_74641148-c529-4b5b-afda-8d923041d5f0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_EarlR.LewisIIIMember_77b1ed36-801f-4c72-b38d-27c365d39c1a" xlink:href="tgen-20241231.xsd#tgen_EarlR.LewisIIIMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RepurchaseAgreementCounterpartyNameDomain_dbe39c54-3657-4c7d-b246-f32db796026c" xlink:to="loc_tgen_EarlR.LewisIIIMember_77b1ed36-801f-4c72-b38d-27c365d39c1a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_3617573e-1eae-4662-99d1-870503554a1a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsLineItems"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_cf4522e8-e602-4576-9713-b8204c5a2b68" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_3617573e-1eae-4662-99d1-870503554a1a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NumberOfOperatingSegments_c92bdf2f-056f-41df-a217-bf5c475c0ff9" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NumberOfOperatingSegments"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_3617573e-1eae-4662-99d1-870503554a1a" xlink:to="loc_us-gaap_NumberOfOperatingSegments_c92bdf2f-056f-41df-a217-bf5c475c0ff9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue_0b3c12e8-17b0-462a-b920-b6c67c287312" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_3617573e-1eae-4662-99d1-870503554a1a" xlink:to="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue_0b3c12e8-17b0-462a-b920-b6c67c287312" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect_81f06120-6d64-4924-8780-a03078fc6d70" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_3617573e-1eae-4662-99d1-870503554a1a" xlink:to="loc_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect_81f06120-6d64-4924-8780-a03078fc6d70" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_cf6153d4-b48c-49f9-b7fe-f384d519f4b0" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivities"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_3617573e-1eae-4662-99d1-870503554a1a" xlink:to="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_cf6153d4-b48c-49f9-b7fe-f384d519f4b0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingIncomeLoss_539b8e85-c537-4671-864f-9f5170775c56" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingIncomeLoss"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_3617573e-1eae-4662-99d1-870503554a1a" xlink:to="loc_us-gaap_OperatingIncomeLoss_539b8e85-c537-4671-864f-9f5170775c56" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RetainedEarningsAccumulatedDeficit_f72b0797-426c-477c-95da-5a2d1d3aa4cc" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RetainedEarningsAccumulatedDeficit"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_3617573e-1eae-4662-99d1-870503554a1a" xlink:to="loc_us-gaap_RetainedEarningsAccumulatedDeficit_f72b0797-426c-477c-95da-5a2d1d3aa4cc" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_WorkingCapitalNet_6e659066-0587-472b-86ea-f9326c0c838f" xlink:href="tgen-20241231.xsd#tgen_WorkingCapitalNet"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_3617573e-1eae-4662-99d1-870503554a1a" xlink:to="loc_tgen_WorkingCapitalNet_6e659066-0587-472b-86ea-f9326c0c838f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_IncreaseDecreaseInWorkingCapital_45332d7a-5627-4f8d-9931-32f6e5042b68" xlink:href="tgen-20241231.xsd#tgen_IncreaseDecreaseInWorkingCapital"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_3617573e-1eae-4662-99d1-870503554a1a" xlink:to="loc_tgen_IncreaseDecreaseInWorkingCapital_45332d7a-5627-4f8d-9931-32f6e5042b68" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsNet_aba97a15-d57c-4159-a1fa-d56245bf6639" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsNet"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_3617573e-1eae-4662-99d1-870503554a1a" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsNet_aba97a15-d57c-4159-a1fa-d56245bf6639" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsPeriodIncreaseDecrease_148527ff-a0d2-4714-9035-0072ea20efb4" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsPeriodIncreaseDecrease"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_3617573e-1eae-4662-99d1-870503554a1a" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsPeriodIncreaseDecrease_148527ff-a0d2-4714-9035-0072ea20efb4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NotesPayable_87e02901-a03a-4d57-a5f3-283a0a5856ea" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NotesPayable"/>
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_3617573e-1eae-4662-99d1-870503554a1a" xlink:to="loc_us-gaap_NotesPayable_87e02901-a03a-4d57-a5f3-283a0a5856ea" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_OrderOrProductionBacklogValue_9b55500a-abff-4b23-aa22-ca7d8cceb5db" xlink:href="tgen-20241231.xsd#tgen_OrderOrProductionBacklogValue"/>
    <link:presentationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_3617573e-1eae-4662-99d1-870503554a1a" xlink:to="loc_tgen_OrderOrProductionBacklogValue_9b55500a-abff-4b23-aa22-ca7d8cceb5db" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_Backlog_7d534108-5eb4-492b-82b9-6806af79fb5e" xlink:href="tgen-20241231.xsd#tgen_Backlog"/>
    <link:presentationArc order="13" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_3617573e-1eae-4662-99d1-870503554a1a" xlink:to="loc_tgen_Backlog_7d534108-5eb4-492b-82b9-6806af79fb5e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_IncreaseDecreaseInBacklog_85073c51-8c75-4ccc-ba0a-8089d516670f" xlink:href="tgen-20241231.xsd#tgen_IncreaseDecreaseInBacklog"/>
    <link:presentationArc order="14" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_3617573e-1eae-4662-99d1-870503554a1a" xlink:to="loc_tgen_IncreaseDecreaseInBacklog_85073c51-8c75-4ccc-ba0a-8089d516670f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesAdditionalInformationDetails" xlink:type="simple" xlink:href="tgen-20241231.xsd#SummaryofsignificantaccountingpoliciesAdditionalInformationDetails"/>
  <link:presentationLink xlink:role="http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesAdditionalInformationDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountingPoliciesAbstract_507f1cdc-94ba-475a-a612-0f40264f8d35" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountingPoliciesAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisaggregationOfRevenueTable_d86acec6-d385-4cd4-be4a-c99cd255c8e0" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisaggregationOfRevenueTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_507f1cdc-94ba-475a-a612-0f40264f8d35" xlink:to="loc_us-gaap_DisaggregationOfRevenueTable_d86acec6-d385-4cd4-be4a-c99cd255c8e0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventTypeAxis_c41050b6-78e9-4180-9576-4fbab404f51f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsequentEventTypeAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisaggregationOfRevenueTable_d86acec6-d385-4cd4-be4a-c99cd255c8e0" xlink:to="loc_us-gaap_SubsequentEventTypeAxis_c41050b6-78e9-4180-9576-4fbab404f51f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventTypeDomain_876c4d8c-e5f7-4454-a75f-0c1e685023f2" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsequentEventTypeDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SubsequentEventTypeAxis_c41050b6-78e9-4180-9576-4fbab404f51f" xlink:to="loc_us-gaap_SubsequentEventTypeDomain_876c4d8c-e5f7-4454-a75f-0c1e685023f2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventMember_bb09701d-4cb4-4380-9b59-e153a92d8494" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsequentEventMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SubsequentEventTypeDomain_876c4d8c-e5f7-4454-a75f-0c1e685023f2" xlink:to="loc_us-gaap_SubsequentEventMember_bb09701d-4cb4-4380-9b59-e153a92d8494" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeStatementLocationAxis_aba74012-80c1-4806-b5b2-ac4f532623eb" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeStatementLocationAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisaggregationOfRevenueTable_d86acec6-d385-4cd4-be4a-c99cd255c8e0" xlink:to="loc_us-gaap_IncomeStatementLocationAxis_aba74012-80c1-4806-b5b2-ac4f532623eb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeStatementLocationDomain_577c1ee6-7255-48ce-a0d6-a4c323253e16" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeStatementLocationDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementLocationAxis_aba74012-80c1-4806-b5b2-ac4f532623eb" xlink:to="loc_us-gaap_IncomeStatementLocationDomain_577c1ee6-7255-48ce-a0d6-a4c323253e16" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GeneralAndAdministrativeExpenseMember_7c20e5d7-bf3f-4fd9-88bf-3e51a9b9d284" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GeneralAndAdministrativeExpenseMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementLocationDomain_577c1ee6-7255-48ce-a0d6-a4c323253e16" xlink:to="loc_us-gaap_GeneralAndAdministrativeExpenseMember_7c20e5d7-bf3f-4fd9-88bf-3e51a9b9d284" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_StatementScenarioAxis_20f719ba-8e59-44fb-8b45-86e52997e772" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_StatementScenarioAxis"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisaggregationOfRevenueTable_d86acec6-d385-4cd4-be4a-c99cd255c8e0" xlink:to="loc_srt_StatementScenarioAxis_20f719ba-8e59-44fb-8b45-86e52997e772" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ScenarioUnspecifiedDomain_521b48f0-d7df-401a-8eb0-612a432bee73" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ScenarioUnspecifiedDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_StatementScenarioAxis_20f719ba-8e59-44fb-8b45-86e52997e772" xlink:to="loc_srt_ScenarioUnspecifiedDomain_521b48f0-d7df-401a-8eb0-612a432bee73" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ScenarioForecastMember_24761228-c29d-4b39-b7ed-6bcfe42999a9" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ScenarioForecastMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ScenarioUnspecifiedDomain_521b48f0-d7df-401a-8eb0-612a432bee73" xlink:to="loc_srt_ScenarioForecastMember_24761228-c29d-4b39-b7ed-6bcfe42999a9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_278db221-5fa2-45af-a23a-808d9b0cb038" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisaggregationOfRevenueTable_d86acec6-d385-4cd4-be4a-c99cd255c8e0" xlink:to="loc_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_278db221-5fa2-45af-a23a-808d9b0cb038" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisaggregationOfRevenueLineItems_d0cf5c6c-e921-40a3-8fc1-f34d65a2c08a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisaggregationOfRevenueLineItems"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisaggregationOfRevenueTable_d86acec6-d385-4cd4-be4a-c99cd255c8e0" xlink:to="loc_us-gaap_DisaggregationOfRevenueLineItems_d0cf5c6c-e921-40a3-8fc1-f34d65a2c08a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_EmployeeRetentionCreditCurrent_33049d7c-281c-4405-b638-e70d344ff40b" xlink:href="tgen-20241231.xsd#tgen_EmployeeRetentionCreditCurrent"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_d0cf5c6c-e921-40a3-8fc1-f34d65a2c08a" xlink:to="loc_tgen_EmployeeRetentionCreditCurrent_33049d7c-281c-4405-b638-e70d344ff40b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ProceedsFromEmployeeRetentionCredit_b7c0b658-b061-429e-9c8c-57a9304277c9" xlink:href="tgen-20241231.xsd#tgen_ProceedsFromEmployeeRetentionCredit"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_d0cf5c6c-e921-40a3-8fc1-f34d65a2c08a" xlink:to="loc_tgen_ProceedsFromEmployeeRetentionCredit_b7c0b658-b061-429e-9c8c-57a9304277c9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProceedsFromInterestReceived_4a312768-a242-4ff3-bb04-466952746458" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProceedsFromInterestReceived"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_d0cf5c6c-e921-40a3-8fc1-f34d65a2c08a" xlink:to="loc_us-gaap_ProceedsFromInterestReceived_4a312768-a242-4ff3-bb04-466952746458" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_PercentageOfOwnedJointVenture_dfaf8ee5-c564-42d2-aecc-28dbd02c3f25" xlink:href="tgen-20241231.xsd#tgen_PercentageOfOwnedJointVenture"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_d0cf5c6c-e921-40a3-8fc1-f34d65a2c08a" xlink:to="loc_tgen_PercentageOfOwnedJointVenture_dfaf8ee5-c564-42d2-aecc-28dbd02c3f25" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent_8a195039-48f2-413a-b710-9dd2ccf33971" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_d0cf5c6c-e921-40a3-8fc1-f34d65a2c08a" xlink:to="loc_us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent_8a195039-48f2-413a-b710-9dd2ccf33971" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ImpairmentOfLongLivedAssetsHeldForUse_939489df-cb5a-42ff-878d-7234e52b7242" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ImpairmentOfLongLivedAssetsHeldForUse"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_d0cf5c6c-e921-40a3-8fc1-f34d65a2c08a" xlink:to="loc_us-gaap_ImpairmentOfLongLivedAssetsHeldForUse_939489df-cb5a-42ff-878d-7234e52b7242" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ContractWithCustomerShippingAndHandlingBilled_b64bb1be-8d7c-42b0-a098-afa2e6ff5f4a" xlink:href="tgen-20241231.xsd#tgen_ContractWithCustomerShippingAndHandlingBilled"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_d0cf5c6c-e921-40a3-8fc1-f34d65a2c08a" xlink:to="loc_tgen_ContractWithCustomerShippingAndHandlingBilled_b64bb1be-8d7c-42b0-a098-afa2e6ff5f4a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_CostOfGoodsSoldShippingAndHandling_e508aa06-4c75-4780-a103-4840176d1175" xlink:href="tgen-20241231.xsd#tgen_CostOfGoodsSoldShippingAndHandling"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_d0cf5c6c-e921-40a3-8fc1-f34d65a2c08a" xlink:to="loc_tgen_CostOfGoodsSoldShippingAndHandling_e508aa06-4c75-4780-a103-4840176d1175" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ShippingandHandlingExpenses_0940ab85-fb2c-4057-827e-f77244a2cc63" xlink:href="tgen-20241231.xsd#tgen_ShippingandHandlingExpenses"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_d0cf5c6c-e921-40a3-8fc1-f34d65a2c08a" xlink:to="loc_tgen_ShippingandHandlingExpenses_0940ab85-fb2c-4057-827e-f77244a2cc63" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs_369a0511-4973-4684-b720-e88429cf3ffe" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_d0cf5c6c-e921-40a3-8fc1-f34d65a2c08a" xlink:to="loc_us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs_369a0511-4973-4684-b720-e88429cf3ffe" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdvertisingExpense_e4e015d7-18cd-4c2a-9aa6-88bff7d53a5c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AdvertisingExpense"/>
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_d0cf5c6c-e921-40a3-8fc1-f34d65a2c08a" xlink:to="loc_us-gaap_AdvertisingExpense_e4e015d7-18cd-4c2a-9aa6-88bff7d53a5c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ResearchAndDevelopmentExpenseGross_d660f26a-53f8-4d86-8d87-49012dc28cff" xlink:href="tgen-20241231.xsd#tgen_ResearchAndDevelopmentExpenseGross"/>
    <link:presentationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_d0cf5c6c-e921-40a3-8fc1-f34d65a2c08a" xlink:to="loc_tgen_ResearchAndDevelopmentExpenseGross_d660f26a-53f8-4d86-8d87-49012dc28cff" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_RevenueFromContractWithCustomerPaymentPeriod_f0fae8f7-3722-418e-8e1d-2064eb98680d" xlink:href="tgen-20241231.xsd#tgen_RevenueFromContractWithCustomerPaymentPeriod"/>
    <link:presentationArc order="13" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_d0cf5c6c-e921-40a3-8fc1-f34d65a2c08a" xlink:to="loc_tgen_RevenueFromContractWithCustomerPaymentPeriod_f0fae8f7-3722-418e-8e1d-2064eb98680d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NumberOfOperatingSegments_1f46ee1b-ae73-4712-94ef-ba02466db616" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NumberOfOperatingSegments"/>
    <link:presentationArc order="14" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_d0cf5c6c-e921-40a3-8fc1-f34d65a2c08a" xlink:to="loc_us-gaap_NumberOfOperatingSegments_1f46ee1b-ae73-4712-94ef-ba02466db616" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredRevenueRevenueRecognized1_84ba2f36-61a5-44cc-bcab-6a79d353bc0d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredRevenueRevenueRecognized1"/>
    <link:presentationArc order="15" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_d0cf5c6c-e921-40a3-8fc1-f34d65a2c08a" xlink:to="loc_us-gaap_DeferredRevenueRevenueRecognized1_84ba2f36-61a5-44cc-bcab-6a79d353bc0d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueRemainingPerformanceObligation_cb99e75c-9eda-47ba-96b8-2f981dbbc0c7" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueRemainingPerformanceObligation"/>
    <link:presentationArc order="16" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_d0cf5c6c-e921-40a3-8fc1-f34d65a2c08a" xlink:to="loc_us-gaap_RevenueRemainingPerformanceObligation_cb99e75c-9eda-47ba-96b8-2f981dbbc0c7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueRemainingPerformanceObligationPercentage_0f0df7a7-ab87-4409-8ca7-24d33e8d86bd" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueRemainingPerformanceObligationPercentage"/>
    <link:presentationArc order="17" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_d0cf5c6c-e921-40a3-8fc1-f34d65a2c08a" xlink:to="loc_us-gaap_RevenueRemainingPerformanceObligationPercentage_0f0df7a7-ab87-4409-8ca7-24d33e8d86bd" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1_43513068-169a-4883-835f-e0e254709426" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1"/>
    <link:presentationArc order="18" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_d0cf5c6c-e921-40a3-8fc1-f34d65a2c08a" xlink:to="loc_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1_43513068-169a-4883-835f-e0e254709426" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesConcentrationofCreditRiskDetails" xlink:type="simple" xlink:href="tgen-20241231.xsd#SummaryofsignificantaccountingpoliciesConcentrationofCreditRiskDetails"/>
  <link:presentationLink xlink:role="http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesConcentrationofCreditRiskDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountingPoliciesAbstract_4af07240-fede-4790-8659-2fe5808777a2" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountingPoliciesAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskTable_fab04912-ea5a-45e1-9233-cc895c14c61e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_4af07240-fede-4790-8659-2fe5808777a2" xlink:to="loc_us-gaap_ConcentrationRiskTable_fab04912-ea5a-45e1-9233-cc895c14c61e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskByTypeAxis_f394910d-cf5c-4a9a-be0e-2e168ef79370" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskByTypeAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ConcentrationRiskTable_fab04912-ea5a-45e1-9233-cc895c14c61e" xlink:to="loc_us-gaap_ConcentrationRiskByTypeAxis_f394910d-cf5c-4a9a-be0e-2e168ef79370" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskTypeDomain_e84c513e-dd31-4c1f-8ab7-dd9d90d6b177" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskTypeDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ConcentrationRiskByTypeAxis_f394910d-cf5c-4a9a-be0e-2e168ef79370" xlink:to="loc_us-gaap_ConcentrationRiskTypeDomain_e84c513e-dd31-4c1f-8ab7-dd9d90d6b177" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CustomerConcentrationRiskMember_385f5ae3-7836-445a-858a-dbfcfd823398" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CustomerConcentrationRiskMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ConcentrationRiskTypeDomain_e84c513e-dd31-4c1f-8ab7-dd9d90d6b177" xlink:to="loc_us-gaap_CustomerConcentrationRiskMember_385f5ae3-7836-445a-858a-dbfcfd823398" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskByBenchmarkAxis_d6032e1a-cdbe-4781-a7d3-dd4dd6b04c35" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskByBenchmarkAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ConcentrationRiskTable_fab04912-ea5a-45e1-9233-cc895c14c61e" xlink:to="loc_us-gaap_ConcentrationRiskByBenchmarkAxis_d6032e1a-cdbe-4781-a7d3-dd4dd6b04c35" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskBenchmarkDomain_5d4c1cc5-a2da-4dee-95de-3c51b98859d7" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskBenchmarkDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ConcentrationRiskByBenchmarkAxis_d6032e1a-cdbe-4781-a7d3-dd4dd6b04c35" xlink:to="loc_us-gaap_ConcentrationRiskBenchmarkDomain_5d4c1cc5-a2da-4dee-95de-3c51b98859d7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SalesRevenueNetMember_d4c05ca5-13db-48f7-ad23-3c1c1af568ac" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SalesRevenueNetMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ConcentrationRiskBenchmarkDomain_5d4c1cc5-a2da-4dee-95de-3c51b98859d7" xlink:to="loc_us-gaap_SalesRevenueNetMember_d4c05ca5-13db-48f7-ad23-3c1c1af568ac" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountsReceivableMember_51eae78d-f2b4-49cd-9e7b-138e401429c9" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountsReceivableMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ConcentrationRiskBenchmarkDomain_5d4c1cc5-a2da-4dee-95de-3c51b98859d7" xlink:to="loc_us-gaap_AccountsReceivableMember_51eae78d-f2b4-49cd-9e7b-138e401429c9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MajorCustomersAxis_056f7e34-073c-4121-aabb-763edb72d5b8" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MajorCustomersAxis"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ConcentrationRiskTable_fab04912-ea5a-45e1-9233-cc895c14c61e" xlink:to="loc_srt_MajorCustomersAxis_056f7e34-073c-4121-aabb-763edb72d5b8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_NameOfMajorCustomerDomain_bdc8ec8e-6fb7-4b92-b2ea-b8acd9919db9" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_NameOfMajorCustomerDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_MajorCustomersAxis_056f7e34-073c-4121-aabb-763edb72d5b8" xlink:to="loc_srt_NameOfMajorCustomerDomain_bdc8ec8e-6fb7-4b92-b2ea-b8acd9919db9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_OneCustomerMember_ae80b02d-067a-4260-b596-8543cda885d5" xlink:href="tgen-20241231.xsd#tgen_OneCustomerMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_NameOfMajorCustomerDomain_bdc8ec8e-6fb7-4b92-b2ea-b8acd9919db9" xlink:to="loc_tgen_OneCustomerMember_ae80b02d-067a-4260-b596-8543cda885d5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskLineItems_f01b134f-4c5e-448f-b0bf-0fe2c2fb6150" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskLineItems"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ConcentrationRiskTable_fab04912-ea5a-45e1-9233-cc895c14c61e" xlink:to="loc_us-gaap_ConcentrationRiskLineItems_f01b134f-4c5e-448f-b0bf-0fe2c2fb6150" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashFDICInsuredAmount_4bdde9a4-fae5-40ee-aa0b-d3d024b79167" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashFDICInsuredAmount"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ConcentrationRiskLineItems_f01b134f-4c5e-448f-b0bf-0fe2c2fb6150" xlink:to="loc_us-gaap_CashFDICInsuredAmount_4bdde9a4-fae5-40ee-aa0b-d3d024b79167" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashUninsuredAmount_fbe32be3-7c97-4137-bd2b-2a7b47f34fa5" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashUninsuredAmount"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ConcentrationRiskLineItems_f01b134f-4c5e-448f-b0bf-0fe2c2fb6150" xlink:to="loc_us-gaap_CashUninsuredAmount_fbe32be3-7c97-4137-bd2b-2a7b47f34fa5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskPercentage1_72f20ff7-07bb-488b-80bb-a4c6e9b005eb" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskPercentage1"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ConcentrationRiskLineItems_f01b134f-4c5e-448f-b0bf-0fe2c2fb6150" xlink:to="loc_us-gaap_ConcentrationRiskPercentage1_72f20ff7-07bb-488b-80bb-a4c6e9b005eb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesPropertyPlantandEquipmentDetails" xlink:type="simple" xlink:href="tgen-20241231.xsd#SummaryofsignificantaccountingpoliciesPropertyPlantandEquipmentDetails"/>
  <link:presentationLink xlink:role="http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesPropertyPlantandEquipmentDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountingPoliciesAbstract_cf99610e-39d5-46e5-b997-a573faa1aa9b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountingPoliciesAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_7ef3b5f4-d2af-4f28-b7b4-14611c8c3d82" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfPropertyPlantAndEquipmentTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_cf99610e-39d5-46e5-b997-a573faa1aa9b" xlink:to="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_7ef3b5f4-d2af-4f28-b7b4-14611c8c3d82" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeAxis_ca943719-5d1a-4436-a74c-853f79f7b7b3" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_7ef3b5f4-d2af-4f28-b7b4-14611c8c3d82" xlink:to="loc_srt_RangeAxis_ca943719-5d1a-4436-a74c-853f79f7b7b3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeMember_f30c0a08-8d10-4a0a-b585-99fbaa0d44af" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RangeAxis_ca943719-5d1a-4436-a74c-853f79f7b7b3" xlink:to="loc_srt_RangeMember_f30c0a08-8d10-4a0a-b585-99fbaa0d44af" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MinimumMember_d78c9c25-47b9-4cc4-8337-93d143923d0a" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MinimumMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RangeMember_f30c0a08-8d10-4a0a-b585-99fbaa0d44af" xlink:to="loc_srt_MinimumMember_d78c9c25-47b9-4cc4-8337-93d143923d0a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MaximumMember_a7e30a8a-b71b-49e3-9816-375c92831d04" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MaximumMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RangeMember_f30c0a08-8d10-4a0a-b585-99fbaa0d44af" xlink:to="loc_srt_MaximumMember_a7e30a8a-b71b-49e3-9816-375c92831d04" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentLineItems_917ba190-beb6-4a17-af19-593f4a716f0b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_7ef3b5f4-d2af-4f28-b7b4-14611c8c3d82" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentLineItems_917ba190-beb6-4a17-af19-593f4a716f0b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentUsefulLife_a3122a6b-22c5-40a3-9160-f1d80797e951" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentUsefulLife"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_917ba190-beb6-4a17-af19-593f4a716f0b" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentUsefulLife_a3122a6b-22c5-40a3-9160-f1d80797e951" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesRevenueDetails" xlink:type="simple" xlink:href="tgen-20241231.xsd#SummaryofsignificantaccountingpoliciesRevenueDetails"/>
  <link:presentationLink xlink:role="http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesRevenueDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountingPoliciesAbstract_74cdda6b-edba-4cf3-83b8-e069e58e17ae" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountingPoliciesAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisaggregationOfRevenueTable_747277d3-617b-4523-a8cb-22ce17ef4f42" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisaggregationOfRevenueTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_74cdda6b-edba-4cf3-83b8-e069e58e17ae" xlink:to="loc_us-gaap_DisaggregationOfRevenueTable_747277d3-617b-4523-a8cb-22ce17ef4f42" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ConsolidationItemsAxis_4b0bd131-5474-437a-a788-e2231d76d30c" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ConsolidationItemsAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisaggregationOfRevenueTable_747277d3-617b-4523-a8cb-22ce17ef4f42" xlink:to="loc_srt_ConsolidationItemsAxis_4b0bd131-5474-437a-a788-e2231d76d30c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ConsolidationItemsDomain_d527c198-1665-413f-8bc9-4fe8c39f5bff" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ConsolidationItemsDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ConsolidationItemsAxis_4b0bd131-5474-437a-a788-e2231d76d30c" xlink:to="loc_srt_ConsolidationItemsDomain_d527c198-1665-413f-8bc9-4fe8c39f5bff" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingSegmentsMember_29f9da83-1aec-45c5-a94d-739025053527" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingSegmentsMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ConsolidationItemsDomain_d527c198-1665-413f-8bc9-4fe8c39f5bff" xlink:to="loc_us-gaap_OperatingSegmentsMember_29f9da83-1aec-45c5-a94d-739025053527" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementBusinessSegmentsAxis_146354bc-e45c-48b7-9d33-50a82a615710" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementBusinessSegmentsAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisaggregationOfRevenueTable_747277d3-617b-4523-a8cb-22ce17ef4f42" xlink:to="loc_us-gaap_StatementBusinessSegmentsAxis_146354bc-e45c-48b7-9d33-50a82a615710" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SegmentDomain_41e47a01-0af9-4c59-a081-b3e46090663d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SegmentDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementBusinessSegmentsAxis_146354bc-e45c-48b7-9d33-50a82a615710" xlink:to="loc_us-gaap_SegmentDomain_41e47a01-0af9-4c59-a081-b3e46090663d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ProductsSegmentMember_daa83ca1-d13d-43e4-af7a-217c9cfa5f0d" xlink:href="tgen-20241231.xsd#tgen_ProductsSegmentMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SegmentDomain_41e47a01-0af9-4c59-a081-b3e46090663d" xlink:to="loc_tgen_ProductsSegmentMember_daa83ca1-d13d-43e4-af7a-217c9cfa5f0d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ServicesSegmentMember_3d45a82e-5b8c-41c3-be04-a80f02694806" xlink:href="tgen-20241231.xsd#tgen_ServicesSegmentMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SegmentDomain_41e47a01-0af9-4c59-a081-b3e46090663d" xlink:to="loc_tgen_ServicesSegmentMember_3d45a82e-5b8c-41c3-be04-a80f02694806" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_EnergyProductionMember_39e486a5-4b02-4faa-a09b-f23dc2094755" xlink:href="tgen-20241231.xsd#tgen_EnergyProductionMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SegmentDomain_41e47a01-0af9-4c59-a081-b3e46090663d" xlink:to="loc_tgen_EnergyProductionMember_39e486a5-4b02-4faa-a09b-f23dc2094755" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ProductsandServicesMember_03770040-6cca-4dec-8271-7ed05ab133b4" xlink:href="tgen-20241231.xsd#tgen_ProductsandServicesMember"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SegmentDomain_41e47a01-0af9-4c59-a081-b3e46090663d" xlink:to="loc_tgen_ProductsandServicesMember_03770040-6cca-4dec-8271-7ed05ab133b4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_EnergyProductionSegmentMember_f152ef8c-590a-40e2-ac61-04cf14ff9eb1" xlink:href="tgen-20241231.xsd#tgen_EnergyProductionSegmentMember"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SegmentDomain_41e47a01-0af9-4c59-a081-b3e46090663d" xlink:to="loc_tgen_EnergyProductionSegmentMember_f152ef8c-590a-40e2-ac61-04cf14ff9eb1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductOrServiceAxis_6f04913b-2ba0-4629-8d91-db331f03dde4" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ProductOrServiceAxis"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisaggregationOfRevenueTable_747277d3-617b-4523-a8cb-22ce17ef4f42" xlink:to="loc_srt_ProductOrServiceAxis_6f04913b-2ba0-4629-8d91-db331f03dde4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductsAndServicesDomain_73150cf9-e4e8-43bb-a570-d4ebb92da167" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ProductsAndServicesDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ProductOrServiceAxis_6f04913b-2ba0-4629-8d91-db331f03dde4" xlink:to="loc_srt_ProductsAndServicesDomain_73150cf9-e4e8-43bb-a570-d4ebb92da167" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProductMember_8413cd5c-d9dd-4c3d-abcb-c9c390260bf0" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProductMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ProductsAndServicesDomain_73150cf9-e4e8-43bb-a570-d4ebb92da167" xlink:to="loc_us-gaap_ProductMember_8413cd5c-d9dd-4c3d-abcb-c9c390260bf0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_InstallationServicesMember_53862cec-cbff-4dce-9f5f-01eb13fe2b8c" xlink:href="tgen-20241231.xsd#tgen_InstallationServicesMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ProductsAndServicesDomain_73150cf9-e4e8-43bb-a570-d4ebb92da167" xlink:to="loc_tgen_InstallationServicesMember_53862cec-cbff-4dce-9f5f-01eb13fe2b8c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_MaintenanceServiceMember_3ed7a94d-5eba-4c4f-81de-8ded3d876d31" xlink:href="tgen-20241231.xsd#tgen_MaintenanceServiceMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ProductsAndServicesDomain_73150cf9-e4e8-43bb-a570-d4ebb92da167" xlink:to="loc_tgen_MaintenanceServiceMember_3ed7a94d-5eba-4c4f-81de-8ded3d876d31" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_EnergyProductionMember_5a621af3-7867-4d17-8bed-7c5d0c5b1d18" xlink:href="tgen-20241231.xsd#tgen_EnergyProductionMember"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ProductsAndServicesDomain_73150cf9-e4e8-43bb-a570-d4ebb92da167" xlink:to="loc_tgen_EnergyProductionMember_5a621af3-7867-4d17-8bed-7c5d0c5b1d18" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_TurnkeyInstallationMember_6a6d9de3-e7af-48c4-b9ec-a7dae853bbc4" xlink:href="tgen-20241231.xsd#tgen_TurnkeyInstallationMember"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ProductsAndServicesDomain_73150cf9-e4e8-43bb-a570-d4ebb92da167" xlink:to="loc_tgen_TurnkeyInstallationMember_6a6d9de3-e7af-48c4-b9ec-a7dae853bbc4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_CogenerationMember_7a7d0e46-0ecf-4f94-ab3b-c3090810fdda" xlink:href="tgen-20241231.xsd#tgen_CogenerationMember"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ProductsAndServicesDomain_73150cf9-e4e8-43bb-a570-d4ebb92da167" xlink:to="loc_tgen_CogenerationMember_7a7d0e46-0ecf-4f94-ab3b-c3090810fdda" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ChillerMember_d9393944-3815-428d-961e-df7fc3b7b168" xlink:href="tgen-20241231.xsd#tgen_ChillerMember"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ProductsAndServicesDomain_73150cf9-e4e8-43bb-a570-d4ebb92da167" xlink:to="loc_tgen_ChillerMember_d9393944-3815-428d-961e-df7fc3b7b168" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_EngineeredAccessoriesMember_630cd7ca-4620-4316-8c17-adae419bba11" xlink:href="tgen-20241231.xsd#tgen_EngineeredAccessoriesMember"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ProductsAndServicesDomain_73150cf9-e4e8-43bb-a570-d4ebb92da167" xlink:to="loc_tgen_EngineeredAccessoriesMember_630cd7ca-4620-4316-8c17-adae419bba11" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisaggregationOfRevenueLineItems_e535781c-edcb-40e8-898b-03c59faa0ff2" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisaggregationOfRevenueLineItems"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisaggregationOfRevenueTable_747277d3-617b-4523-a8cb-22ce17ef4f42" xlink:to="loc_us-gaap_DisaggregationOfRevenueLineItems_e535781c-edcb-40e8-898b-03c59faa0ff2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_6be01258-a1eb-44fa-9949-dc3be00021c5" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_e535781c-edcb-40e8-898b-03c59faa0ff2" xlink:to="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_6be01258-a1eb-44fa-9949-dc3be00021c5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/LosspercommonshareScheduleofLossPerCommonShareBasicandDilutedDetails" xlink:type="simple" xlink:href="tgen-20241231.xsd#LosspercommonshareScheduleofLossPerCommonShareBasicandDilutedDetails"/>
  <link:presentationLink xlink:role="http://www.tecogen.com/role/LosspercommonshareScheduleofLossPerCommonShareBasicandDilutedDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EarningsPerShareAbstract_d9ce9c1e-2c12-4097-b4d4-7526b052af2b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EarningsPerShareAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable_e6953009-2478-4900-904b-82397305bc9f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EarningsPerShareAbstract_d9ce9c1e-2c12-4097-b4d4-7526b052af2b" xlink:to="loc_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable_e6953009-2478-4900-904b-82397305bc9f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_3d025f2a-fb9d-443e-a517-7fc0b04e7024" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable_e6953009-2478-4900-904b-82397305bc9f" xlink:to="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_3d025f2a-fb9d-443e-a517-7fc0b04e7024" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AntidilutiveSecuritiesNameDomain_202bb83b-a67a-401f-bad4-f88f33172a69" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AntidilutiveSecuritiesNameDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_3d025f2a-fb9d-443e-a517-7fc0b04e7024" xlink:to="loc_us-gaap_AntidilutiveSecuritiesNameDomain_202bb83b-a67a-401f-bad4-f88f33172a69" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeStockOptionMember_422d56be-05a2-4b94-a647-18348ca28eb1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeStockOptionMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AntidilutiveSecuritiesNameDomain_202bb83b-a67a-401f-bad4-f88f33172a69" xlink:to="loc_us-gaap_EmployeeStockOptionMember_422d56be-05a2-4b94-a647-18348ca28eb1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems_143d5743-6765-422a-b399-1a75c38a92d3" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable_e6953009-2478-4900-904b-82397305bc9f" xlink:to="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems_143d5743-6765-422a-b399-1a75c38a92d3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetIncomeLoss_a7bd36e4-57b4-4549-8cf5-4371f42dc46f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetIncomeLoss"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems_143d5743-6765-422a-b399-1a75c38a92d3" xlink:to="loc_us-gaap_NetIncomeLoss_a7bd36e4-57b4-4549-8cf5-4371f42dc46f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_010b6052-0fb2-4a29-ba4b-91f47cf8c0ca" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingBasic"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems_143d5743-6765-422a-b399-1a75c38a92d3" xlink:to="loc_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_010b6052-0fb2-4a29-ba4b-91f47cf8c0ca" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DilutiveSecuritiesAbstract_96f3a099-0742-4cb3-857f-7052b167c405" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DilutiveSecuritiesAbstract"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems_143d5743-6765-422a-b399-1a75c38a92d3" xlink:to="loc_us-gaap_DilutiveSecuritiesAbstract_96f3a099-0742-4cb3-857f-7052b167c405" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment_0b7e6063-0b22-4c9c-80fe-8545cdc12fb7" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DilutiveSecuritiesAbstract_96f3a099-0742-4cb3-857f-7052b167c405" xlink:to="loc_us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment_0b7e6063-0b22-4c9c-80fe-8545cdc12fb7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_b07eb69e-bb05-48ad-8142-83e3f6608492" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems_143d5743-6765-422a-b399-1a75c38a92d3" xlink:to="loc_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_b07eb69e-bb05-48ad-8142-83e3f6608492" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EarningsPerShareBasic_7e16cc51-c773-43a4-9eb1-2c0130622c92" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EarningsPerShareBasic"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems_143d5743-6765-422a-b399-1a75c38a92d3" xlink:to="loc_us-gaap_EarningsPerShareBasic_7e16cc51-c773-43a4-9eb1-2c0130622c92" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EarningsPerShareDiluted_672ff59a-a90d-493d-bc1c-94f2e0771688" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EarningsPerShareDiluted"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems_143d5743-6765-422a-b399-1a75c38a92d3" xlink:to="loc_us-gaap_EarningsPerShareDiluted_672ff59a-a90d-493d-bc1c-94f2e0771688" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_c7204858-68ce-442d-835f-fbef9d04b253" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems_143d5743-6765-422a-b399-1a75c38a92d3" xlink:to="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_c7204858-68ce-442d-835f-fbef9d04b253" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/AcquisitionofAmericanDGEnergyIncDetails" xlink:type="simple" xlink:href="tgen-20241231.xsd#AcquisitionofAmericanDGEnergyIncDetails"/>
  <link:presentationLink xlink:role="http://www.tecogen.com/role/AcquisitionofAmericanDGEnergyIncDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationsAbstract_a0ada951-bbaf-4c26-a281-042d9fb94a0a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_ae2c9b3e-42fb-43e3-9c63-72ea371a5bb5" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessCombinationsAbstract_a0ada951-bbaf-4c26-a281-042d9fb94a0a" xlink:to="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_ae2c9b3e-42fb-43e3-9c63-72ea371a5bb5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionAxis_19e707c0-d36a-43ce-bee3-a9225b53f13b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_ae2c9b3e-42fb-43e3-9c63-72ea371a5bb5" xlink:to="loc_us-gaap_BusinessAcquisitionAxis_19e707c0-d36a-43ce-bee3-a9225b53f13b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionAcquireeDomain_57df3e82-a46d-4610-9c46-c39a74697ef2" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionAcquireeDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_19e707c0-d36a-43ce-bee3-a9225b53f13b" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_57df3e82-a46d-4610-9c46-c39a74697ef2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AmericanDgEnergyMember_76edce62-0b8d-43bb-aae5-c49a37c934b6" xlink:href="tgen-20241231.xsd#tgen_AmericanDgEnergyMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionAcquireeDomain_57df3e82-a46d-4610-9c46-c39a74697ef2" xlink:to="loc_tgen_AmericanDgEnergyMember_76edce62-0b8d-43bb-aae5-c49a37c934b6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionLineItems_b3e9935a-9071-4c9b-9b06-e6124b3c0332" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_ae2c9b3e-42fb-43e3-9c63-72ea371a5bb5" xlink:to="loc_us-gaap_BusinessAcquisitionLineItems_b3e9935a-9071-4c9b-9b06-e6124b3c0332" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsidiaryOrEquityMethodInvesteeCumulativePercentageOwnershipAfterAllTransactions_64f9a68d-e006-440e-ab32-c56846fee775" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsidiaryOrEquityMethodInvesteeCumulativePercentageOwnershipAfterAllTransactions"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_b3e9935a-9071-4c9b-9b06-e6124b3c0332" xlink:to="loc_us-gaap_SubsidiaryOrEquityMethodInvesteeCumulativePercentageOwnershipAfterAllTransactions_64f9a68d-e006-440e-ab32-c56846fee775" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Goodwill_b49c7cf5-ec25-4654-9663-d1e34a0f009e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Goodwill"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_b3e9935a-9071-4c9b-9b06-e6124b3c0332" xlink:to="loc_us-gaap_Goodwill_b49c7cf5-ec25-4654-9663-d1e34a0f009e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionPurchasePriceAllocationGoodwillExpectedTaxDeductibleAmount_c998ce4f-343e-433f-b546-7d9c1c1b7cec" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionPurchasePriceAllocationGoodwillExpectedTaxDeductibleAmount"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_b3e9935a-9071-4c9b-9b06-e6124b3c0332" xlink:to="loc_us-gaap_BusinessAcquisitionPurchasePriceAllocationGoodwillExpectedTaxDeductibleAmount_c998ce4f-343e-433f-b546-7d9c1c1b7cec" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/AegisContractandRelatedAssetAcquisitionDetails" xlink:type="simple" xlink:href="tgen-20241231.xsd#AegisContractandRelatedAssetAcquisitionDetails"/>
  <link:presentationLink xlink:role="http://www.tecogen.com/role/AegisContractandRelatedAssetAcquisitionDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationAndAssetAcquisitionAbstract_b1ab3630-75aa-4fcb-aa8e-d67fac12518a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationAndAssetAcquisitionAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetAcquisitionTable_69f99705-7224-4e10-8aaf-f5c583f819b3" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetAcquisitionTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessCombinationAndAssetAcquisitionAbstract_b1ab3630-75aa-4fcb-aa8e-d67fac12518a" xlink:to="loc_us-gaap_AssetAcquisitionTable_69f99705-7224-4e10-8aaf-f5c583f819b3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetAcquisitionAxis_b6fefb4a-77b4-431d-bd5f-22d84d04446f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetAcquisitionAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetAcquisitionTable_69f99705-7224-4e10-8aaf-f5c583f819b3" xlink:to="loc_us-gaap_AssetAcquisitionAxis_b6fefb4a-77b4-431d-bd5f-22d84d04446f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetAcquisitionDomain_de0d906c-0e80-4340-a6a7-02fc30b1b9cf" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetAcquisitionDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetAcquisitionAxis_b6fefb4a-77b4-431d-bd5f-22d84d04446f" xlink:to="loc_us-gaap_AssetAcquisitionDomain_de0d906c-0e80-4340-a6a7-02fc30b1b9cf" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AegisEnergyServicesLLCMember_87b63076-2a13-4041-a7e5-166121354cd8" xlink:href="tgen-20241231.xsd#tgen_AegisEnergyServicesLLCMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetAcquisitionDomain_de0d906c-0e80-4340-a6a7-02fc30b1b9cf" xlink:to="loc_tgen_AegisEnergyServicesLLCMember_87b63076-2a13-4041-a7e5-166121354cd8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MeasurementInputTypeAxis_cd95ecba-5e84-4a8f-a724-69a930ad868c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_MeasurementInputTypeAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetAcquisitionTable_69f99705-7224-4e10-8aaf-f5c583f819b3" xlink:to="loc_us-gaap_MeasurementInputTypeAxis_cd95ecba-5e84-4a8f-a724-69a930ad868c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MeasurementInputTypeDomain_ac55c0bb-4e8d-47a4-93b1-d07113103166" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_MeasurementInputTypeDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_MeasurementInputTypeAxis_cd95ecba-5e84-4a8f-a724-69a930ad868c" xlink:to="loc_us-gaap_MeasurementInputTypeDomain_ac55c0bb-4e8d-47a4-93b1-d07113103166" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MeasurementInputDiscountRateMember_e0e4a73b-9354-4505-90ed-c5bdb07d2f31" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_MeasurementInputDiscountRateMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_MeasurementInputTypeDomain_ac55c0bb-4e8d-47a4-93b1-d07113103166" xlink:to="loc_us-gaap_MeasurementInputDiscountRateMember_e0e4a73b-9354-4505-90ed-c5bdb07d2f31" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_MeasurementInputWACCMember_c611c1c9-7b49-4901-9460-7351deeccb42" xlink:href="tgen-20241231.xsd#tgen_MeasurementInputWACCMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_MeasurementInputTypeDomain_ac55c0bb-4e8d-47a4-93b1-d07113103166" xlink:to="loc_tgen_MeasurementInputWACCMember_c611c1c9-7b49-4901-9460-7351deeccb42" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeAxis_4a4b8c43-d3cf-4bfb-899f-bb94dc2d7a31" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeAxis"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetAcquisitionTable_69f99705-7224-4e10-8aaf-f5c583f819b3" xlink:to="loc_srt_RangeAxis_4a4b8c43-d3cf-4bfb-899f-bb94dc2d7a31" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeMember_ea3450db-325d-41f2-a498-190107a5c141" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RangeAxis_4a4b8c43-d3cf-4bfb-899f-bb94dc2d7a31" xlink:to="loc_srt_RangeMember_ea3450db-325d-41f2-a498-190107a5c141" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MinimumMember_228fd6e4-9858-454f-8fc5-3a1f80b24829" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MinimumMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RangeMember_ea3450db-325d-41f2-a498-190107a5c141" xlink:to="loc_srt_MinimumMember_228fd6e4-9858-454f-8fc5-3a1f80b24829" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MaximumMember_3b98625b-eff1-448b-ab89-2e979593677a" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MaximumMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RangeMember_ea3450db-325d-41f2-a498-190107a5c141" xlink:to="loc_srt_MaximumMember_3b98625b-eff1-448b-ab89-2e979593677a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetAcquisitionLineItems_13f0bfb6-9c2a-4645-b35b-3bc240ec1478" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetAcquisitionLineItems"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetAcquisitionTable_69f99705-7224-4e10-8aaf-f5c583f819b3" xlink:to="loc_us-gaap_AssetAcquisitionLineItems_13f0bfb6-9c2a-4645-b35b-3bc240ec1478" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AssetAcquisitionMaintenanceAgreementsNumberOfCogenerationSystems_25ebe582-4d06-4db7-9a69-ba4ecdf3b9d2" xlink:href="tgen-20241231.xsd#tgen_AssetAcquisitionMaintenanceAgreementsNumberOfCogenerationSystems"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetAcquisitionLineItems_13f0bfb6-9c2a-4645-b35b-3bc240ec1478" xlink:to="loc_tgen_AssetAcquisitionMaintenanceAgreementsNumberOfCogenerationSystems_25ebe582-4d06-4db7-9a69-ba4ecdf3b9d2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_NumberOfAssetsAcquired_efa1946d-ece6-4b94-a6f7-1ccf9c431f94" xlink:href="tgen-20241231.xsd#tgen_NumberOfAssetsAcquired"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetAcquisitionLineItems_13f0bfb6-9c2a-4645-b35b-3bc240ec1478" xlink:to="loc_tgen_NumberOfAssetsAcquired_efa1946d-ece6-4b94-a6f7-1ccf9c431f94" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_PaymentsForAssetAcquisitions_4651532a-3e22-4df9-84fb-fee3b5fbbccb" xlink:href="tgen-20241231.xsd#tgen_PaymentsForAssetAcquisitions"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetAcquisitionLineItems_13f0bfb6-9c2a-4645-b35b-3bc240ec1478" xlink:to="loc_tgen_PaymentsForAssetAcquisitions_4651532a-3e22-4df9-84fb-fee3b5fbbccb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_NumberOfEmployeesAcquired_73a961df-7ee2-4226-9f64-897daaad5293" xlink:href="tgen-20241231.xsd#tgen_NumberOfEmployeesAcquired"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetAcquisitionLineItems_13f0bfb6-9c2a-4645-b35b-3bc240ec1478" xlink:to="loc_tgen_NumberOfEmployeesAcquired_73a961df-7ee2-4226-9f64-897daaad5293" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AssetAcquisitionMaintenanceAgreementsProfitSharingPeriod_a0c3f659-a3e4-4417-9697-cb165d11787d" xlink:href="tgen-20241231.xsd#tgen_AssetAcquisitionMaintenanceAgreementsProfitSharingPeriod"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetAcquisitionLineItems_13f0bfb6-9c2a-4645-b35b-3bc240ec1478" xlink:to="loc_tgen_AssetAcquisitionMaintenanceAgreementsProfitSharingPeriod_a0c3f659-a3e4-4417-9697-cb165d11787d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AssetAcquisitionNumberOfAdditionalMaintenanceContracts_2b31804f-0962-4f44-9ce1-c35689be2d65" xlink:href="tgen-20241231.xsd#tgen_AssetAcquisitionNumberOfAdditionalMaintenanceContracts"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetAcquisitionLineItems_13f0bfb6-9c2a-4645-b35b-3bc240ec1478" xlink:to="loc_tgen_AssetAcquisitionNumberOfAdditionalMaintenanceContracts_2b31804f-0962-4f44-9ce1-c35689be2d65" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AssetAcquisitionMaintenanceAgreementsNumberOfAdditionalCogenerationUnits_91e2abb1-404a-434d-a12a-635a33535821" xlink:href="tgen-20241231.xsd#tgen_AssetAcquisitionMaintenanceAgreementsNumberOfAdditionalCogenerationUnits"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetAcquisitionLineItems_13f0bfb6-9c2a-4645-b35b-3bc240ec1478" xlink:to="loc_tgen_AssetAcquisitionMaintenanceAgreementsNumberOfAdditionalCogenerationUnits_91e2abb1-404a-434d-a12a-635a33535821" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetAcquisitionConsiderationTransferredOtherAssets_248353af-e1b1-48c0-93f7-bedc0eefd9e5" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetAcquisitionConsiderationTransferredOtherAssets"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetAcquisitionLineItems_13f0bfb6-9c2a-4645-b35b-3bc240ec1478" xlink:to="loc_us-gaap_AssetAcquisitionConsiderationTransferredOtherAssets_248353af-e1b1-48c0-93f7-bedc0eefd9e5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AssetAcquisitionConsiderationTransferredAccountsPayable_e584752f-ca98-4ded-8fb9-859bdb3232b2" xlink:href="tgen-20241231.xsd#tgen_AssetAcquisitionConsiderationTransferredAccountsPayable"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetAcquisitionLineItems_13f0bfb6-9c2a-4645-b35b-3bc240ec1478" xlink:to="loc_tgen_AssetAcquisitionConsiderationTransferredAccountsPayable_e584752f-ca98-4ded-8fb9-859bdb3232b2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetAcquisitionConsiderationTransferredContingentConsideration_f61edc12-746e-4086-8d55-a2ec209d9764" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetAcquisitionConsiderationTransferredContingentConsideration"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetAcquisitionLineItems_13f0bfb6-9c2a-4645-b35b-3bc240ec1478" xlink:to="loc_us-gaap_AssetAcquisitionConsiderationTransferredContingentConsideration_f61edc12-746e-4086-8d55-a2ec209d9764" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetAcquisitionConsiderationTransferred_2cab4e4f-be83-462e-a1a2-2880d02b8a1d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetAcquisitionConsiderationTransferred"/>
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetAcquisitionLineItems_13f0bfb6-9c2a-4645-b35b-3bc240ec1478" xlink:to="loc_us-gaap_AssetAcquisitionConsiderationTransferred_2cab4e4f-be83-462e-a1a2-2880d02b8a1d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AssetAcquisitionPropertyPlantAndEquipment_01f8dbf1-40bb-4bda-bde5-0ee8dcb6fc83" xlink:href="tgen-20241231.xsd#tgen_AssetAcquisitionPropertyPlantAndEquipment"/>
    <link:presentationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetAcquisitionLineItems_13f0bfb6-9c2a-4645-b35b-3bc240ec1478" xlink:to="loc_tgen_AssetAcquisitionPropertyPlantAndEquipment_01f8dbf1-40bb-4bda-bde5-0ee8dcb6fc83" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AssetAcquisitionInventory_32f7111b-ec6e-4819-ac4c-0f7a3d2c3763" xlink:href="tgen-20241231.xsd#tgen_AssetAcquisitionInventory"/>
    <link:presentationArc order="13" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetAcquisitionLineItems_13f0bfb6-9c2a-4645-b35b-3bc240ec1478" xlink:to="loc_tgen_AssetAcquisitionInventory_32f7111b-ec6e-4819-ac4c-0f7a3d2c3763" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinitelivedIntangibleAssetsAcquired1_3cb2399d-7ca7-4abb-8122-f9f651d69717" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FinitelivedIntangibleAssetsAcquired1"/>
    <link:presentationArc order="14" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetAcquisitionLineItems_13f0bfb6-9c2a-4645-b35b-3bc240ec1478" xlink:to="loc_us-gaap_FinitelivedIntangibleAssetsAcquired1_3cb2399d-7ca7-4abb-8122-f9f651d69717" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AssetAcquisitionAssetsAcquired_30a65c37-61bd-4136-bc90-432c924bbc6d" xlink:href="tgen-20241231.xsd#tgen_AssetAcquisitionAssetsAcquired"/>
    <link:presentationArc order="15" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetAcquisitionLineItems_13f0bfb6-9c2a-4645-b35b-3bc240ec1478" xlink:to="loc_tgen_AssetAcquisitionAssetsAcquired_30a65c37-61bd-4136-bc90-432c924bbc6d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AssetAcquisitionReserves_01c0bb76-7f35-48dd-a50b-ec1ddc9a3a20" xlink:href="tgen-20241231.xsd#tgen_AssetAcquisitionReserves"/>
    <link:presentationArc order="16" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetAcquisitionLineItems_13f0bfb6-9c2a-4645-b35b-3bc240ec1478" xlink:to="loc_tgen_AssetAcquisitionReserves_01c0bb76-7f35-48dd-a50b-ec1ddc9a3a20" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AssetAcquisitionAssetsAcquiredAndLiabilitiesAssumedNet_5b2f7d8e-f4be-4846-809f-0cbd135f7415" xlink:href="tgen-20241231.xsd#tgen_AssetAcquisitionAssetsAcquiredAndLiabilitiesAssumedNet"/>
    <link:presentationArc order="17" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetAcquisitionLineItems_13f0bfb6-9c2a-4645-b35b-3bc240ec1478" xlink:to="loc_tgen_AssetAcquisitionAssetsAcquiredAndLiabilitiesAssumedNet_5b2f7d8e-f4be-4846-809f-0cbd135f7415" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AssetAcquisitionGoodwill_1957ce36-adb4-4de1-8344-750552d0cd12" xlink:href="tgen-20241231.xsd#tgen_AssetAcquisitionGoodwill"/>
    <link:presentationArc order="18" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetAcquisitionLineItems_13f0bfb6-9c2a-4645-b35b-3bc240ec1478" xlink:to="loc_tgen_AssetAcquisitionGoodwill_1957ce36-adb4-4de1-8344-750552d0cd12" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillAcquiredDuringPeriod_5f330ea8-3013-4908-a3c3-6f5b27d43a71" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GoodwillAcquiredDuringPeriod"/>
    <link:presentationArc order="19" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetAcquisitionLineItems_13f0bfb6-9c2a-4645-b35b-3bc240ec1478" xlink:to="loc_us-gaap_GoodwillAcquiredDuringPeriod_5f330ea8-3013-4908-a3c3-6f5b27d43a71" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_IntangibleAssetsMeasurementInput_8bd795b5-f7f0-4cc0-9b29-bb591447b64f" xlink:href="tgen-20241231.xsd#tgen_IntangibleAssetsMeasurementInput"/>
    <link:presentationArc order="20" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetAcquisitionLineItems_13f0bfb6-9c2a-4645-b35b-3bc240ec1478" xlink:to="loc_tgen_IntangibleAssetsMeasurementInput_8bd795b5-f7f0-4cc0-9b29-bb591447b64f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionsProFormaRevenue_525d0784-9b15-40b8-9207-50a499053a6c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionsProFormaRevenue"/>
    <link:presentationArc order="21" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetAcquisitionLineItems_13f0bfb6-9c2a-4645-b35b-3bc240ec1478" xlink:to="loc_us-gaap_BusinessAcquisitionsProFormaRevenue_525d0784-9b15-40b8-9207-50a499053a6c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss_42e93fe9-310c-44cd-92ef-351fa062a34b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss"/>
    <link:presentationArc order="22" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetAcquisitionLineItems_13f0bfb6-9c2a-4645-b35b-3bc240ec1478" xlink:to="loc_us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss_42e93fe9-310c-44cd-92ef-351fa062a34b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AssetAcquisitionConsiderationTransferredContingentConsiderationCurrent_638dfefd-b1e4-4830-904e-a595eb0ff666" xlink:href="tgen-20241231.xsd#tgen_AssetAcquisitionConsiderationTransferredContingentConsiderationCurrent"/>
    <link:presentationArc order="23" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetAcquisitionLineItems_13f0bfb6-9c2a-4645-b35b-3bc240ec1478" xlink:to="loc_tgen_AssetAcquisitionConsiderationTransferredContingentConsiderationCurrent_638dfefd-b1e4-4830-904e-a595eb0ff666" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AssetAcquisitionReservesCurrent_4e6c0221-b3bd-4407-a4b8-ddb5172ef279" xlink:href="tgen-20241231.xsd#tgen_AssetAcquisitionReservesCurrent"/>
    <link:presentationArc order="24" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetAcquisitionLineItems_13f0bfb6-9c2a-4645-b35b-3bc240ec1478" xlink:to="loc_tgen_AssetAcquisitionReservesCurrent_4e6c0221-b3bd-4407-a4b8-ddb5172ef279" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AssetAcquisitionLiabilitiesAssumedCurrent_a056ece2-85df-4cdb-824f-7fdcdb9a77b9" xlink:href="tgen-20241231.xsd#tgen_AssetAcquisitionLiabilitiesAssumedCurrent"/>
    <link:presentationArc order="25" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetAcquisitionLineItems_13f0bfb6-9c2a-4645-b35b-3bc240ec1478" xlink:to="loc_tgen_AssetAcquisitionLiabilitiesAssumedCurrent_a056ece2-85df-4cdb-824f-7fdcdb9a77b9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AssetAcquisitionConsiderationTransferredContingentConsiderationNoncurrent_8032d8f1-526b-42b5-964d-91832520cacc" xlink:href="tgen-20241231.xsd#tgen_AssetAcquisitionConsiderationTransferredContingentConsiderationNoncurrent"/>
    <link:presentationArc order="26" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetAcquisitionLineItems_13f0bfb6-9c2a-4645-b35b-3bc240ec1478" xlink:to="loc_tgen_AssetAcquisitionConsiderationTransferredContingentConsiderationNoncurrent_8032d8f1-526b-42b5-964d-91832520cacc" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AssetAcquisitionReservesNoncurrent_40d2aa9c-f14c-4b47-bc31-4366c138f404" xlink:href="tgen-20241231.xsd#tgen_AssetAcquisitionReservesNoncurrent"/>
    <link:presentationArc order="27" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetAcquisitionLineItems_13f0bfb6-9c2a-4645-b35b-3bc240ec1478" xlink:to="loc_tgen_AssetAcquisitionReservesNoncurrent_40d2aa9c-f14c-4b47-bc31-4366c138f404" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AssetAcquisitionLiabilitiesAssumedNoncurrent_20cc8c7c-0b17-478b-a547-2d4ac9ca88fe" xlink:href="tgen-20241231.xsd#tgen_AssetAcquisitionLiabilitiesAssumedNoncurrent"/>
    <link:presentationArc order="28" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetAcquisitionLineItems_13f0bfb6-9c2a-4645-b35b-3bc240ec1478" xlink:to="loc_tgen_AssetAcquisitionLiabilitiesAssumedNoncurrent_20cc8c7c-0b17-478b-a547-2d4ac9ca88fe" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AssetAcquisitionContingentConsiderationPaymentPeriod_c3631eb5-d6e3-4931-9914-4d86b3eddeb9" xlink:href="tgen-20241231.xsd#tgen_AssetAcquisitionContingentConsiderationPaymentPeriod"/>
    <link:presentationArc order="29" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetAcquisitionLineItems_13f0bfb6-9c2a-4645-b35b-3bc240ec1478" xlink:to="loc_tgen_AssetAcquisitionContingentConsiderationPaymentPeriod_c3631eb5-d6e3-4931-9914-4d86b3eddeb9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AssetAcquisitionContingentConsiderationPercentage_8ca5f0b2-a650-4cc8-80bf-6068242d7f84" xlink:href="tgen-20241231.xsd#tgen_AssetAcquisitionContingentConsiderationPercentage"/>
    <link:presentationArc order="30" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetAcquisitionLineItems_13f0bfb6-9c2a-4645-b35b-3bc240ec1478" xlink:to="loc_tgen_AssetAcquisitionContingentConsiderationPercentage_8ca5f0b2-a650-4cc8-80bf-6068242d7f84" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AssetAcquisitionDeferredMaintenanceCostsIncurredPeriod_f2056e79-5e3f-4278-ad91-1f7a7047c4eb" xlink:href="tgen-20241231.xsd#tgen_AssetAcquisitionDeferredMaintenanceCostsIncurredPeriod"/>
    <link:presentationArc order="31" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetAcquisitionLineItems_13f0bfb6-9c2a-4645-b35b-3bc240ec1478" xlink:to="loc_tgen_AssetAcquisitionDeferredMaintenanceCostsIncurredPeriod_f2056e79-5e3f-4278-ad91-1f7a7047c4eb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationProvisionalInformationInitialAccountingIncompleteAdjustmentInventory_a7f73334-6bac-4733-bd68-4f7527007354" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationProvisionalInformationInitialAccountingIncompleteAdjustmentInventory"/>
    <link:presentationArc order="32" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetAcquisitionLineItems_13f0bfb6-9c2a-4645-b35b-3bc240ec1478" xlink:to="loc_us-gaap_BusinessCombinationProvisionalInformationInitialAccountingIncompleteAdjustmentInventory_a7f73334-6bac-4733-bd68-4f7527007354" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationProvisionalInformationInitialAccountingIncompleteAdjustmentFinancialLiabilities_1b42cecc-55e3-4a8a-820d-feacd9675d0b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationProvisionalInformationInitialAccountingIncompleteAdjustmentFinancialLiabilities"/>
    <link:presentationArc order="33" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetAcquisitionLineItems_13f0bfb6-9c2a-4645-b35b-3bc240ec1478" xlink:to="loc_us-gaap_BusinessCombinationProvisionalInformationInitialAccountingIncompleteAdjustmentFinancialLiabilities_1b42cecc-55e3-4a8a-820d-feacd9675d0b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationProvisionalInformationInitialAccountingIncompleteAdjustmentConsiderationTransferred_3ac19266-edd2-4e94-8aa4-7daacf2eea35" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationProvisionalInformationInitialAccountingIncompleteAdjustmentConsiderationTransferred"/>
    <link:presentationArc order="34" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetAcquisitionLineItems_13f0bfb6-9c2a-4645-b35b-3bc240ec1478" xlink:to="loc_us-gaap_BusinessCombinationProvisionalInformationInitialAccountingIncompleteAdjustmentConsiderationTransferred_3ac19266-edd2-4e94-8aa4-7daacf2eea35" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AssetAcquisitionProvisionalInformationInitialAccountingIncompleteAdjustmentContingentConsiderationLiability_50f3f6eb-de8b-442a-ab77-8e001bf972e3" xlink:href="tgen-20241231.xsd#tgen_AssetAcquisitionProvisionalInformationInitialAccountingIncompleteAdjustmentContingentConsiderationLiability"/>
    <link:presentationArc order="35" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetAcquisitionLineItems_13f0bfb6-9c2a-4645-b35b-3bc240ec1478" xlink:to="loc_tgen_AssetAcquisitionProvisionalInformationInitialAccountingIncompleteAdjustmentContingentConsiderationLiability_50f3f6eb-de8b-442a-ab77-8e001bf972e3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AssetAcquisitionProvisionalInformationInitialAccountingIncompleteAdjustmentFiniteLivedIntangibleAssetsAcquired_68dba801-b063-4188-be93-22edf9f71bfd" xlink:href="tgen-20241231.xsd#tgen_AssetAcquisitionProvisionalInformationInitialAccountingIncompleteAdjustmentFiniteLivedIntangibleAssetsAcquired"/>
    <link:presentationArc order="36" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetAcquisitionLineItems_13f0bfb6-9c2a-4645-b35b-3bc240ec1478" xlink:to="loc_tgen_AssetAcquisitionProvisionalInformationInitialAccountingIncompleteAdjustmentFiniteLivedIntangibleAssetsAcquired_68dba801-b063-4188-be93-22edf9f71bfd" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationProvisionalInformationInitialAccountingIncompleteAdjustmentIntangibles_b3648c14-8e00-4a15-8540-f5ec1d7deb28" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationProvisionalInformationInitialAccountingIncompleteAdjustmentIntangibles"/>
    <link:presentationArc order="37" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetAcquisitionLineItems_13f0bfb6-9c2a-4645-b35b-3bc240ec1478" xlink:to="loc_us-gaap_BusinessCombinationProvisionalInformationInitialAccountingIncompleteAdjustmentIntangibles_b3648c14-8e00-4a15-8540-f5ec1d7deb28" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetAcquisitionContingentConsiderationLiability_68b57b6d-64c5-4f36-b198-95a6ff05e3ce" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetAcquisitionContingentConsiderationLiability"/>
    <link:presentationArc order="38" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetAcquisitionLineItems_13f0bfb6-9c2a-4645-b35b-3bc240ec1478" xlink:to="loc_us-gaap_AssetAcquisitionContingentConsiderationLiability_68b57b6d-64c5-4f36-b198-95a6ff05e3ce" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentForContingentConsiderationLiabilityInvestingActivities_3dda5bcc-c6eb-4721-abc5-9777d3b07f5e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentForContingentConsiderationLiabilityInvestingActivities"/>
    <link:presentationArc order="39" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetAcquisitionLineItems_13f0bfb6-9c2a-4645-b35b-3bc240ec1478" xlink:to="loc_us-gaap_PaymentForContingentConsiderationLiabilityInvestingActivities_3dda5bcc-c6eb-4721-abc5-9777d3b07f5e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/SaleofADGAssetsDetails" xlink:type="simple" xlink:href="tgen-20241231.xsd#SaleofADGAssetsDetails"/>
  <link:presentationLink xlink:role="http://www.tecogen.com/role/SaleofADGAssetsDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DiscontinuedOperationsAndDisposalGroupsAbstract_8e1cc3c3-0098-4f19-b710-c41d7b6ee1cf" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DiscontinuedOperationsAndDisposalGroupsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProceedsFromSaleOfProductiveAssets_0059aea1-12d2-4c0d-af70-d5fbf787cc07" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProceedsFromSaleOfProductiveAssets"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DiscontinuedOperationsAndDisposalGroupsAbstract_8e1cc3c3-0098-4f19-b710-c41d7b6ee1cf" xlink:to="loc_us-gaap_ProceedsFromSaleOfProductiveAssets_0059aea1-12d2-4c0d-af70-d5fbf787cc07" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax_ab0cbbb7-5d57-4933-899d-96959872fb04" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DiscontinuedOperationsAndDisposalGroupsAbstract_8e1cc3c3-0098-4f19-b710-c41d7b6ee1cf" xlink:to="loc_us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax_ab0cbbb7-5d57-4933-899d-96959872fb04" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsTable_36e410d4-ba5c-4353-80be-6d1e2179ddf8" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsTable"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DiscontinuedOperationsAndDisposalGroupsAbstract_8e1cc3c3-0098-4f19-b710-c41d7b6ee1cf" xlink:to="loc_us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsTable_36e410d4-ba5c-4353-80be-6d1e2179ddf8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductOrServiceAxis_21d22697-c669-4801-9aae-0c7b2f62e1fb" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ProductOrServiceAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsTable_36e410d4-ba5c-4353-80be-6d1e2179ddf8" xlink:to="loc_srt_ProductOrServiceAxis_21d22697-c669-4801-9aae-0c7b2f62e1fb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductsAndServicesDomain_6ca711c1-4b48-47a5-9263-f03a5a319eb0" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ProductsAndServicesDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ProductOrServiceAxis_21d22697-c669-4801-9aae-0c7b2f62e1fb" xlink:to="loc_srt_ProductsAndServicesDomain_6ca711c1-4b48-47a5-9263-f03a5a319eb0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_EnergyProductionContactsMember_f98e9fb8-70df-4ae7-8855-ca56e9ccafe5" xlink:href="tgen-20241231.xsd#tgen_EnergyProductionContactsMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ProductsAndServicesDomain_6ca711c1-4b48-47a5-9263-f03a5a319eb0" xlink:to="loc_tgen_EnergyProductionContactsMember_f98e9fb8-70df-4ae7-8855-ca56e9ccafe5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetAcquisitionAxis_e2319e79-d8d3-4282-8010-3487a3604b81" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetAcquisitionAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsTable_36e410d4-ba5c-4353-80be-6d1e2179ddf8" xlink:to="loc_us-gaap_AssetAcquisitionAxis_e2319e79-d8d3-4282-8010-3487a3604b81" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetAcquisitionDomain_282ceb5d-a4df-4d02-866b-09e3b1d6fc13" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetAcquisitionDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetAcquisitionAxis_e2319e79-d8d3-4282-8010-3487a3604b81" xlink:to="loc_us-gaap_AssetAcquisitionDomain_282ceb5d-a4df-4d02-866b-09e3b1d6fc13" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AegisEnergyServicesLLCMember_b9e5d5a8-7314-44ab-a2c9-f1f6ef17c8cb" xlink:href="tgen-20241231.xsd#tgen_AegisEnergyServicesLLCMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetAcquisitionDomain_282ceb5d-a4df-4d02-866b-09e3b1d6fc13" xlink:to="loc_tgen_AegisEnergyServicesLLCMember_b9e5d5a8-7314-44ab-a2c9-f1f6ef17c8cb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsLineItems_9190329b-a2a3-4edb-90af-89906bb3f25a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsLineItems"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsTable_36e410d4-ba5c-4353-80be-6d1e2179ddf8" xlink:to="loc_us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsLineItems_9190329b-a2a3-4edb-90af-89906bb3f25a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax_9a83fc5a-b3d0-4dcd-aa99-d393dc12f15a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsLineItems_9190329b-a2a3-4edb-90af-89906bb3f25a" xlink:to="loc_us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax_9a83fc5a-b3d0-4dcd-aa99-d393dc12f15a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_EnergyProductionAgreementsPercentageOfExcessCashFlowsAboveThreshold_2acec619-2117-4f2c-abc1-1f814ff8263c" xlink:href="tgen-20241231.xsd#tgen_EnergyProductionAgreementsPercentageOfExcessCashFlowsAboveThreshold"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsLineItems_9190329b-a2a3-4edb-90af-89906bb3f25a" xlink:to="loc_tgen_EnergyProductionAgreementsPercentageOfExcessCashFlowsAboveThreshold_2acec619-2117-4f2c-abc1-1f814ff8263c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_EnergyProductionAgreementsRevenueOfExcessCashFlowsAboveThreshold_30bf2236-fa88-4254-9ea2-39d9e7e476be" xlink:href="tgen-20241231.xsd#tgen_EnergyProductionAgreementsRevenueOfExcessCashFlowsAboveThreshold"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsLineItems_9190329b-a2a3-4edb-90af-89906bb3f25a" xlink:to="loc_tgen_EnergyProductionAgreementsRevenueOfExcessCashFlowsAboveThreshold_30bf2236-fa88-4254-9ea2-39d9e7e476be" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_EnergyProductionAgreementsAccountsReceivableFromExcessCashFlowsAboveThreshold_3e6c2834-12c8-46ec-88f0-b0bdf2abbc5b" xlink:href="tgen-20241231.xsd#tgen_EnergyProductionAgreementsAccountsReceivableFromExcessCashFlowsAboveThreshold"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsLineItems_9190329b-a2a3-4edb-90af-89906bb3f25a" xlink:to="loc_tgen_EnergyProductionAgreementsAccountsReceivableFromExcessCashFlowsAboveThreshold_3e6c2834-12c8-46ec-88f0-b0bdf2abbc5b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_EnergyProductionAgreementsSiteDecommissioningCosts_ea09c31a-d83d-45ba-8755-07c7b27e4008" xlink:href="tgen-20241231.xsd#tgen_EnergyProductionAgreementsSiteDecommissioningCosts"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsLineItems_9190329b-a2a3-4edb-90af-89906bb3f25a" xlink:to="loc_tgen_EnergyProductionAgreementsSiteDecommissioningCosts_ea09c31a-d83d-45ba-8755-07c7b27e4008" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/InventorySummaryofInventoryDetails" xlink:type="simple" xlink:href="tgen-20241231.xsd#InventorySummaryofInventoryDetails"/>
  <link:presentationLink xlink:role="http://www.tecogen.com/role/InventorySummaryofInventoryDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryDisclosureAbstract_1ae23632-bed4-488e-a03e-eb51872d445c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InventoryDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryRawMaterialsNetOfReserves_f792528f-aa16-4697-912d-a688142fd751" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InventoryRawMaterialsNetOfReserves"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_InventoryDisclosureAbstract_1ae23632-bed4-488e-a03e-eb51872d445c" xlink:to="loc_us-gaap_InventoryRawMaterialsNetOfReserves_f792528f-aa16-4697-912d-a688142fd751" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryWorkInProcessNetOfReserves_36eaedc3-eda8-4859-816f-9dca6c12915c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InventoryWorkInProcessNetOfReserves"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_InventoryDisclosureAbstract_1ae23632-bed4-488e-a03e-eb51872d445c" xlink:to="loc_us-gaap_InventoryWorkInProcessNetOfReserves_36eaedc3-eda8-4859-816f-9dca6c12915c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryFinishedGoodsNetOfReserves_31cabf34-c4a1-4561-807c-a21fa0856639" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InventoryFinishedGoodsNetOfReserves"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_InventoryDisclosureAbstract_1ae23632-bed4-488e-a03e-eb51872d445c" xlink:to="loc_us-gaap_InventoryFinishedGoodsNetOfReserves_31cabf34-c4a1-4561-807c-a21fa0856639" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryNet_27dd149e-1bac-4e08-838d-d1e16a8e52ca" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InventoryNet"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_InventoryDisclosureAbstract_1ae23632-bed4-488e-a03e-eb51872d445c" xlink:to="loc_us-gaap_InventoryNet_27dd149e-1bac-4e08-838d-d1e16a8e52ca" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/IntangibleassetsandliabilitiesotherthangoodwillNarrativeDetails" xlink:type="simple" xlink:href="tgen-20241231.xsd#IntangibleassetsandliabilitiesotherthangoodwillNarrativeDetails"/>
  <link:presentationLink xlink:role="http://www.tecogen.com/role/IntangibleassetsandliabilitiesotherthangoodwillNarrativeDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IntangibleAssetsNetExcludingGoodwillAbstract_274987bf-f452-46ae-8349-0dde57753ea1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IntangibleAssetsNetExcludingGoodwillAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfAcquiredFiniteLivedIntangibleAssetByMajorClassTable_a8620c87-89c5-4d16-a7e4-7dcb9997a176" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfAcquiredFiniteLivedIntangibleAssetByMajorClassTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IntangibleAssetsNetExcludingGoodwillAbstract_274987bf-f452-46ae-8349-0dde57753ea1" xlink:to="loc_us-gaap_ScheduleOfAcquiredFiniteLivedIntangibleAssetByMajorClassTable_a8620c87-89c5-4d16-a7e4-7dcb9997a176" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IndefiniteLivedIntangibleAssetsByMajorClassAxis_6c7aedde-b5e7-4404-aac8-f9702140f3e9" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IndefiniteLivedIntangibleAssetsByMajorClassAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAcquiredFiniteLivedIntangibleAssetByMajorClassTable_a8620c87-89c5-4d16-a7e4-7dcb9997a176" xlink:to="loc_us-gaap_IndefiniteLivedIntangibleAssetsByMajorClassAxis_6c7aedde-b5e7-4404-aac8-f9702140f3e9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IndefiniteLivedIntangibleAssetsMajorClassNameDomain_c9337fb9-8640-4a0f-9553-fbb82df0d948" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IndefiniteLivedIntangibleAssetsMajorClassNameDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IndefiniteLivedIntangibleAssetsByMajorClassAxis_6c7aedde-b5e7-4404-aac8-f9702140f3e9" xlink:to="loc_us-gaap_IndefiniteLivedIntangibleAssetsMajorClassNameDomain_c9337fb9-8640-4a0f-9553-fbb82df0d948" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TrademarksMember_c32092a2-bfb2-42d4-9f68-988f5efd4d25" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TrademarksMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IndefiniteLivedIntangibleAssetsMajorClassNameDomain_c9337fb9-8640-4a0f-9553-fbb82df0d948" xlink:to="loc_us-gaap_TrademarksMember_c32092a2-bfb2-42d4-9f68-988f5efd4d25" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_898e74f4-8f90-4265-a117-266359450723" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAcquiredFiniteLivedIntangibleAssetByMajorClassTable_a8620c87-89c5-4d16-a7e4-7dcb9997a176" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_898e74f4-8f90-4265-a117-266359450723" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_897a016c-7103-43d2-af6c-256fdb454dca" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_898e74f4-8f90-4265-a117-266359450723" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_897a016c-7103-43d2-af6c-256fdb454dca" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ProductCertificationMember_79030a38-9f22-4d75-8a16-d695b7f39f02" xlink:href="tgen-20241231.xsd#tgen_ProductCertificationMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_897a016c-7103-43d2-af6c-256fdb454dca" xlink:to="loc_tgen_ProductCertificationMember_79030a38-9f22-4d75-8a16-d695b7f39f02" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PatentsMember_b922d1cc-2c15-4e38-b8c0-297bd15880cd" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PatentsMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_897a016c-7103-43d2-af6c-256fdb454dca" xlink:to="loc_us-gaap_PatentsMember_b922d1cc-2c15-4e38-b8c0-297bd15880cd" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_FavorableContractAssetMember_c54f7495-9807-4eba-b698-9d3c351b9f39" xlink:href="tgen-20241231.xsd#tgen_FavorableContractAssetMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_897a016c-7103-43d2-af6c-256fdb454dca" xlink:to="loc_tgen_FavorableContractAssetMember_c54f7495-9807-4eba-b698-9d3c351b9f39" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractBasedIntangibleAssetsMember_7bbff89e-b7bf-484c-b89d-0ad0498c6a6c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ContractBasedIntangibleAssetsMember"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_897a016c-7103-43d2-af6c-256fdb454dca" xlink:to="loc_us-gaap_ContractBasedIntangibleAssetsMember_7bbff89e-b7bf-484c-b89d-0ad0498c6a6c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeAxis_93b2e6bf-6b3f-4745-98f2-2737ce66511b" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeAxis"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAcquiredFiniteLivedIntangibleAssetByMajorClassTable_a8620c87-89c5-4d16-a7e4-7dcb9997a176" xlink:to="loc_srt_RangeAxis_93b2e6bf-6b3f-4745-98f2-2737ce66511b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeMember_5194da52-36c5-483e-ba26-a29c6e83f0a8" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RangeAxis_93b2e6bf-6b3f-4745-98f2-2737ce66511b" xlink:to="loc_srt_RangeMember_5194da52-36c5-483e-ba26-a29c6e83f0a8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MinimumMember_dc5d6b8d-fe40-4206-b36c-729f676bf132" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MinimumMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RangeMember_5194da52-36c5-483e-ba26-a29c6e83f0a8" xlink:to="loc_srt_MinimumMember_dc5d6b8d-fe40-4206-b36c-729f676bf132" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MaximumMember_5b186819-74bd-4a33-b3f4-cd2b59e6ba8d" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MaximumMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RangeMember_5194da52-36c5-483e-ba26-a29c6e83f0a8" xlink:to="loc_srt_MaximumMember_5b186819-74bd-4a33-b3f4-cd2b59e6ba8d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeStatementLocationAxis_d262c42e-57f6-4cce-acb5-b049a0795b7d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeStatementLocationAxis"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAcquiredFiniteLivedIntangibleAssetByMajorClassTable_a8620c87-89c5-4d16-a7e4-7dcb9997a176" xlink:to="loc_us-gaap_IncomeStatementLocationAxis_d262c42e-57f6-4cce-acb5-b049a0795b7d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeStatementLocationDomain_b72ae7c1-1233-4b7f-877d-010add207892" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeStatementLocationDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementLocationAxis_d262c42e-57f6-4cce-acb5-b049a0795b7d" xlink:to="loc_us-gaap_IncomeStatementLocationDomain_b72ae7c1-1233-4b7f-877d-010add207892" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_LongLivedAssetImpairmentMember_af8d3a6e-66c1-4d8c-9a63-83a9319dceae" xlink:href="tgen-20241231.xsd#tgen_LongLivedAssetImpairmentMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementLocationDomain_b72ae7c1-1233-4b7f-877d-010add207892" xlink:to="loc_tgen_LongLivedAssetImpairmentMember_af8d3a6e-66c1-4d8c-9a63-83a9319dceae" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AcquiredFiniteLivedIntangibleAssetsLineItems_82fe6d07-308b-4d3f-b967-8897dd3e3b5d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AcquiredFiniteLivedIntangibleAssetsLineItems"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAcquiredFiniteLivedIntangibleAssetByMajorClassTable_a8620c87-89c5-4d16-a7e4-7dcb9997a176" xlink:to="loc_us-gaap_AcquiredFiniteLivedIntangibleAssetsLineItems_82fe6d07-308b-4d3f-b967-8897dd3e3b5d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetUsefulLife_80375682-ca2f-4847-886f-b1e9185a141e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetUsefulLife"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AcquiredFiniteLivedIntangibleAssetsLineItems_82fe6d07-308b-4d3f-b967-8897dd3e3b5d" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetUsefulLife_80375682-ca2f-4847-886f-b1e9185a141e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinitelivedIntangibleAssetsAcquired1_2c9a6346-22ec-4b7d-aa05-76cef64ee59c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FinitelivedIntangibleAssetsAcquired1"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AcquiredFiniteLivedIntangibleAssetsLineItems_82fe6d07-308b-4d3f-b967-8897dd3e3b5d" xlink:to="loc_us-gaap_FinitelivedIntangibleAssetsAcquired1_2c9a6346-22ec-4b7d-aa05-76cef64ee59c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AmortizationOfIntangibleAssets_8f061ead-64bf-4ff9-b7c8-d336007dcbdb" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AmortizationOfIntangibleAssets"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AcquiredFiniteLivedIntangibleAssetsLineItems_82fe6d07-308b-4d3f-b967-8897dd3e3b5d" xlink:to="loc_us-gaap_AmortizationOfIntangibleAssets_8f061ead-64bf-4ff9-b7c8-d336007dcbdb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AmortizationofContractRelatedIntangibleAssetsandLiabilitiesNet_a383cf92-c8c9-46d1-ad22-bf624b4a33cc" xlink:href="tgen-20241231.xsd#tgen_AmortizationofContractRelatedIntangibleAssetsandLiabilitiesNet"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AcquiredFiniteLivedIntangibleAssetsLineItems_82fe6d07-308b-4d3f-b967-8897dd3e3b5d" xlink:to="loc_tgen_AmortizationofContractRelatedIntangibleAssetsandLiabilitiesNet_a383cf92-c8c9-46d1-ad22-bf624b4a33cc" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill_3211c872-971c-4067-aae1-aea073fd6e6c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AcquiredFiniteLivedIntangibleAssetsLineItems_82fe6d07-308b-4d3f-b967-8897dd3e3b5d" xlink:to="loc_us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill_3211c872-971c-4067-aae1-aea073fd6e6c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GainLossOnContractTermination_a6fe3ad0-2be6-4677-846d-e34f1415302b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GainLossOnContractTermination"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AcquiredFiniteLivedIntangibleAssetsLineItems_82fe6d07-308b-4d3f-b967-8897dd3e3b5d" xlink:to="loc_us-gaap_GainLossOnContractTermination_a6fe3ad0-2be6-4677-846d-e34f1415302b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/IntangibleassetsotherthangoodwillScheduleofIntangibleAssetsDetails" xlink:type="simple" xlink:href="tgen-20241231.xsd#IntangibleassetsotherthangoodwillScheduleofIntangibleAssetsDetails"/>
  <link:presentationLink xlink:role="http://www.tecogen.com/role/IntangibleassetsotherthangoodwillScheduleofIntangibleAssetsDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IntangibleAssetsNetExcludingGoodwillAbstract_3ae4b680-aaf2-486e-b56d-63da5c493891" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IntangibleAssetsNetExcludingGoodwillAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_bb2db831-5267-4e44-babd-6348a881e088" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IntangibleAssetsNetExcludingGoodwillAbstract_3ae4b680-aaf2-486e-b56d-63da5c493891" xlink:to="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_bb2db831-5267-4e44-babd-6348a881e088" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_FiniteLivedIntangibleLiabilityAxis_cb1e8921-1063-4fac-b76d-5b7a0bd86337" xlink:href="tgen-20241231.xsd#tgen_FiniteLivedIntangibleLiabilityAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_bb2db831-5267-4e44-babd-6348a881e088" xlink:to="loc_tgen_FiniteLivedIntangibleLiabilityAxis_cb1e8921-1063-4fac-b76d-5b7a0bd86337" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_FiniteLivedIntangibleLiabilityDomain_56751e99-d9b3-443a-9c88-c44813edbb15" xlink:href="tgen-20241231.xsd#tgen_FiniteLivedIntangibleLiabilityDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tgen_FiniteLivedIntangibleLiabilityAxis_cb1e8921-1063-4fac-b76d-5b7a0bd86337" xlink:to="loc_tgen_FiniteLivedIntangibleLiabilityDomain_56751e99-d9b3-443a-9c88-c44813edbb15" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_UnfavorableContractLiabilityMember_69663ffc-93f8-4b58-aaed-b42ad3f2b237" xlink:href="tgen-20241231.xsd#tgen_UnfavorableContractLiabilityMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tgen_FiniteLivedIntangibleLiabilityDomain_56751e99-d9b3-443a-9c88-c44813edbb15" xlink:to="loc_tgen_UnfavorableContractLiabilityMember_69663ffc-93f8-4b58-aaed-b42ad3f2b237" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IndefiniteLivedIntangibleAssetsByMajorClassAxis_be4b0ea0-d46f-4be9-8d20-d05dabfd5630" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IndefiniteLivedIntangibleAssetsByMajorClassAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_bb2db831-5267-4e44-babd-6348a881e088" xlink:to="loc_us-gaap_IndefiniteLivedIntangibleAssetsByMajorClassAxis_be4b0ea0-d46f-4be9-8d20-d05dabfd5630" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IndefiniteLivedIntangibleAssetsMajorClassNameDomain_52858f73-1464-4311-aa3e-df9452bc7484" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IndefiniteLivedIntangibleAssetsMajorClassNameDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IndefiniteLivedIntangibleAssetsByMajorClassAxis_be4b0ea0-d46f-4be9-8d20-d05dabfd5630" xlink:to="loc_us-gaap_IndefiniteLivedIntangibleAssetsMajorClassNameDomain_52858f73-1464-4311-aa3e-df9452bc7484" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TrademarksMember_a658c645-77be-49e0-ae8d-ea9677d528d1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TrademarksMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IndefiniteLivedIntangibleAssetsMajorClassNameDomain_52858f73-1464-4311-aa3e-df9452bc7484" xlink:to="loc_us-gaap_TrademarksMember_a658c645-77be-49e0-ae8d-ea9677d528d1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InProcessResearchAndDevelopmentMember_a889ba64-dd9c-433f-9408-5a94966e403e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InProcessResearchAndDevelopmentMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IndefiniteLivedIntangibleAssetsMajorClassNameDomain_52858f73-1464-4311-aa3e-df9452bc7484" xlink:to="loc_us-gaap_InProcessResearchAndDevelopmentMember_a889ba64-dd9c-433f-9408-5a94966e403e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_2050af9a-c386-4a5a-99fc-27e301ba4661" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_bb2db831-5267-4e44-babd-6348a881e088" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_2050af9a-c386-4a5a-99fc-27e301ba4661" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_6418bce7-bf22-4328-8db7-1c506a27bec2" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_2050af9a-c386-4a5a-99fc-27e301ba4661" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_6418bce7-bf22-4328-8db7-1c506a27bec2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ProductCertificationMember_612e1cb4-021c-4550-8d35-074b6923fb60" xlink:href="tgen-20241231.xsd#tgen_ProductCertificationMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_6418bce7-bf22-4328-8db7-1c506a27bec2" xlink:to="loc_tgen_ProductCertificationMember_612e1cb4-021c-4550-8d35-074b6923fb60" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PatentsMember_de96795b-a891-4408-b4c0-520bb48fd47c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PatentsMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_6418bce7-bf22-4328-8db7-1c506a27bec2" xlink:to="loc_us-gaap_PatentsMember_de96795b-a891-4408-b4c0-520bb48fd47c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DevelopedTechnologyRightsMember_9f750d00-3bf3-4f61-ba2d-dcc6cf52b767" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DevelopedTechnologyRightsMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_6418bce7-bf22-4328-8db7-1c506a27bec2" xlink:to="loc_us-gaap_DevelopedTechnologyRightsMember_9f750d00-3bf3-4f61-ba2d-dcc6cf52b767" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_FavorableContractAssetMember_cb312751-e446-4939-bd9a-556a13bcaca3" xlink:href="tgen-20241231.xsd#tgen_FavorableContractAssetMember"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_6418bce7-bf22-4328-8db7-1c506a27bec2" xlink:to="loc_tgen_FavorableContractAssetMember_cb312751-e446-4939-bd9a-556a13bcaca3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CustomerContractsMember_0ec36dbc-f100-4278-b3c4-d5420ef0bb02" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CustomerContractsMember"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_6418bce7-bf22-4328-8db7-1c506a27bec2" xlink:to="loc_us-gaap_CustomerContractsMember_0ec36dbc-f100-4278-b3c4-d5420ef0bb02" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_68edf787-0446-46f1-8a44-ecea7a286e7a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsLineItems"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_bb2db831-5267-4e44-babd-6348a881e088" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_68edf787-0446-46f1-8a44-ecea7a286e7a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IntangibleAssetsGrossExcludingGoodwill_30c0d717-97f2-490d-95e3-c7257e3cd625" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IntangibleAssetsGrossExcludingGoodwill"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_68edf787-0446-46f1-8a44-ecea7a286e7a" xlink:to="loc_us-gaap_IntangibleAssetsGrossExcludingGoodwill_30c0d717-97f2-490d-95e3-c7257e3cd625" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_acda341d-2712-475a-8bdf-7bfe5caa4ff5" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_68edf787-0446-46f1-8a44-ecea7a286e7a" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_acda341d-2712-475a-8bdf-7bfe5caa4ff5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IntangibleAssetsNetExcludingGoodwill_ea983991-ccf9-455a-a98e-f7e2d6f281d0" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IntangibleAssetsNetExcludingGoodwill"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_68edf787-0446-46f1-8a44-ecea7a286e7a" xlink:to="loc_us-gaap_IntangibleAssetsNetExcludingGoodwill_ea983991-ccf9-455a-a98e-f7e2d6f281d0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_IntangibleLiabilityGross_cb17d4cf-d37c-4aed-9e82-b1e493ac36fc" xlink:href="tgen-20241231.xsd#tgen_IntangibleLiabilityGross"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_68edf787-0446-46f1-8a44-ecea7a286e7a" xlink:to="loc_tgen_IntangibleLiabilityGross_cb17d4cf-d37c-4aed-9e82-b1e493ac36fc" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_FiniteLivedIntangibleLiabilitiesAccumulatedAmortization_1033f409-d176-4274-8cf1-8ecc570bccfa" xlink:href="tgen-20241231.xsd#tgen_FiniteLivedIntangibleLiabilitiesAccumulatedAmortization"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_68edf787-0446-46f1-8a44-ecea7a286e7a" xlink:to="loc_tgen_FiniteLivedIntangibleLiabilitiesAccumulatedAmortization_1033f409-d176-4274-8cf1-8ecc570bccfa" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_IntangibleLiabilitiesNet_c4fdd10d-c42c-4886-9191-10f2c394d80c" xlink:href="tgen-20241231.xsd#tgen_IntangibleLiabilitiesNet"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_68edf787-0446-46f1-8a44-ecea7a286e7a" xlink:to="loc_tgen_IntangibleLiabilitiesNet_c4fdd10d-c42c-4886-9191-10f2c394d80c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/IntangibleassetsandliabilitiesotherthangoodwillScheduleofAggregateFutureAmortizationDetails" xlink:type="simple" xlink:href="tgen-20241231.xsd#IntangibleassetsandliabilitiesotherthangoodwillScheduleofAggregateFutureAmortizationDetails"/>
  <link:presentationLink xlink:role="http://www.tecogen.com/role/IntangibleassetsandliabilitiesotherthangoodwillScheduleofAggregateFutureAmortizationDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_8899ccce-a754-4a29-875c-75a7f9e992fd" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_1d0ac5de-db37-4896-a026-ece1bddb6685" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_8899ccce-a754-4a29-875c-75a7f9e992fd" xlink:to="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_1d0ac5de-db37-4896-a026-ece1bddb6685" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_499bbb21-bb9c-48a6-8948-0e3052fa2158" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_1d0ac5de-db37-4896-a026-ece1bddb6685" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_499bbb21-bb9c-48a6-8948-0e3052fa2158" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_86614318-493c-468a-a127-cd8b68918fef" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_499bbb21-bb9c-48a6-8948-0e3052fa2158" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_86614318-493c-468a-a127-cd8b68918fef" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_NonContractRelatedIntangibleAssetsMember_023b77c1-6b99-4dbb-815f-5aa2d059d170" xlink:href="tgen-20241231.xsd#tgen_NonContractRelatedIntangibleAssetsMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_86614318-493c-468a-a127-cd8b68918fef" xlink:to="loc_tgen_NonContractRelatedIntangibleAssetsMember_023b77c1-6b99-4dbb-815f-5aa2d059d170" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractBasedIntangibleAssetsMember_751779b1-fdc7-4c61-97c0-952b4b7bc7ad" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ContractBasedIntangibleAssetsMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_86614318-493c-468a-a127-cd8b68918fef" xlink:to="loc_us-gaap_ContractBasedIntangibleAssetsMember_751779b1-fdc7-4c61-97c0-952b4b7bc7ad" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_b50d923b-314d-4885-a9b0-2d6c9075d492" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_1d0ac5de-db37-4896-a026-ece1bddb6685" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_b50d923b-314d-4885-a9b0-2d6c9075d492" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsNetAmortizationExpenseRollingMaturityAbstract_8cf704a3-d161-45e1-bb57-9a4d654d9d0d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsNetAmortizationExpenseRollingMaturityAbstract"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_b50d923b-314d-4885-a9b0-2d6c9075d492" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsNetAmortizationExpenseRollingMaturityAbstract_8cf704a3-d161-45e1-bb57-9a4d654d9d0d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextRollingTwelveMonths_8bdad651-89b0-47c6-8101-3925ef20e087" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextRollingTwelveMonths"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsNetAmortizationExpenseRollingMaturityAbstract_8cf704a3-d161-45e1-bb57-9a4d654d9d0d" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextRollingTwelveMonths_8bdad651-89b0-47c6-8101-3925ef20e087" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRollingYearTwo_63cce239-189c-4fae-a341-ca5dd9ff4fb7" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRollingYearTwo"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsNetAmortizationExpenseRollingMaturityAbstract_8cf704a3-d161-45e1-bb57-9a4d654d9d0d" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRollingYearTwo_63cce239-189c-4fae-a341-ca5dd9ff4fb7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRollingYearThree_aa26349d-d0ab-4ab8-8e75-9b875e0060c7" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRollingYearThree"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsNetAmortizationExpenseRollingMaturityAbstract_8cf704a3-d161-45e1-bb57-9a4d654d9d0d" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRollingYearThree_aa26349d-d0ab-4ab8-8e75-9b875e0060c7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRollingYearFour_ab3bd2ef-32e6-4ead-b6ef-2a9bc04595a2" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRollingYearFour"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsNetAmortizationExpenseRollingMaturityAbstract_8cf704a3-d161-45e1-bb57-9a4d654d9d0d" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRollingYearFour_ab3bd2ef-32e6-4ead-b6ef-2a9bc04595a2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRollingYearFive_94909bf4-03ce-4834-b87f-a3b366b9ad97" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRollingYearFive"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsNetAmortizationExpenseRollingMaturityAbstract_8cf704a3-d161-45e1-bb57-9a4d654d9d0d" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRollingYearFive_94909bf4-03ce-4834-b87f-a3b366b9ad97" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRollingAfterYearFive_ea594edd-035b-4c35-9049-de254a56613b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRollingAfterYearFive"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsNetAmortizationExpenseRollingMaturityAbstract_8cf704a3-d161-45e1-bb57-9a4d654d9d0d" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRollingAfterYearFive_ea594edd-035b-4c35-9049-de254a56613b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsNet_921f856c-b63a-4331-8dda-97c487eb08e5" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsNet"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsNetAmortizationExpenseRollingMaturityAbstract_8cf704a3-d161-45e1-bb57-9a4d654d9d0d" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsNet_921f856c-b63a-4331-8dda-97c487eb08e5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingMaturityAbstract_139f23f5-2f48-42e1-b8ab-2b7b6b1f78d8" xlink:href="tgen-20241231.xsd#tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingMaturityAbstract"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_b50d923b-314d-4885-a9b0-2d6c9075d492" xlink:to="loc_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingMaturityAbstract_139f23f5-2f48-42e1-b8ab-2b7b6b1f78d8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseNextRolling12Months_e3f81cf4-9dd6-47e1-8001-388c07cac548" xlink:href="tgen-20241231.xsd#tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseNextRolling12Months"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingMaturityAbstract_139f23f5-2f48-42e1-b8ab-2b7b6b1f78d8" xlink:to="loc_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseNextRolling12Months_e3f81cf4-9dd6-47e1-8001-388c07cac548" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearTwo_6a51f7ba-a45e-4ac5-a0ff-9deca2cd49af" xlink:href="tgen-20241231.xsd#tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearTwo"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingMaturityAbstract_139f23f5-2f48-42e1-b8ab-2b7b6b1f78d8" xlink:to="loc_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearTwo_6a51f7ba-a45e-4ac5-a0ff-9deca2cd49af" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearThree_92027fda-4790-48d9-a0b9-0f0be584da37" xlink:href="tgen-20241231.xsd#tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearThree"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingMaturityAbstract_139f23f5-2f48-42e1-b8ab-2b7b6b1f78d8" xlink:to="loc_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearThree_92027fda-4790-48d9-a0b9-0f0be584da37" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearFour_7c7293d7-a2f5-47b3-834b-ade7c099db87" xlink:href="tgen-20241231.xsd#tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearFour"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingMaturityAbstract_139f23f5-2f48-42e1-b8ab-2b7b6b1f78d8" xlink:to="loc_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearFour_7c7293d7-a2f5-47b3-834b-ade7c099db87" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearFive_ce89c64e-358c-44a6-81bd-c0f8ee934c2b" xlink:href="tgen-20241231.xsd#tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearFive"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingMaturityAbstract_139f23f5-2f48-42e1-b8ab-2b7b6b1f78d8" xlink:to="loc_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearFive_ce89c64e-358c-44a6-81bd-c0f8ee934c2b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingAfterYearFive_2142f6db-3390-4843-b949-04570b7c9f5d" xlink:href="tgen-20241231.xsd#tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingAfterYearFive"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingMaturityAbstract_139f23f5-2f48-42e1-b8ab-2b7b6b1f78d8" xlink:to="loc_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingAfterYearFive_2142f6db-3390-4843-b949-04570b7c9f5d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_FiniteLivedIntangibleAssetsAndLiabilitiesNet_4691d2cc-1179-43bb-a5a2-c47926234b20" xlink:href="tgen-20241231.xsd#tgen_FiniteLivedIntangibleAssetsAndLiabilitiesNet"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingMaturityAbstract_139f23f5-2f48-42e1-b8ab-2b7b6b1f78d8" xlink:to="loc_tgen_FiniteLivedIntangibleAssetsAndLiabilitiesNet_4691d2cc-1179-43bb-a5a2-c47926234b20" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/PropertyplantandequipmentSummaryofPropertyandEquipmentDetails" xlink:type="simple" xlink:href="tgen-20241231.xsd#PropertyplantandequipmentSummaryofPropertyandEquipmentDetails"/>
  <link:presentationLink xlink:role="http://www.tecogen.com/role/PropertyplantandequipmentSummaryofPropertyandEquipmentDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentAbstract_427d60bd-be9d-471e-b92c-eaf99fc0a25a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_bda38d39-405b-4fe5-af02-5574944b48b6" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfPropertyPlantAndEquipmentTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentAbstract_427d60bd-be9d-471e-b92c-eaf99fc0a25a" xlink:to="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_bda38d39-405b-4fe5-af02-5574944b48b6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_3461ff29-8467-4e09-88d3-e3f176d265b9" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentByTypeAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_bda38d39-405b-4fe5-af02-5574944b48b6" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_3461ff29-8467-4e09-88d3-e3f176d265b9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_7af132e4-c8de-4af5-b1d7-ea017a28c6fa" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_3461ff29-8467-4e09-88d3-e3f176d265b9" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_7af132e4-c8de-4af5-b1d7-ea017a28c6fa" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EnergyEquipmentMember_53c9d45e-b5c5-4653-a24b-5fbe9de7fec4" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EnergyEquipmentMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_7af132e4-c8de-4af5-b1d7-ea017a28c6fa" xlink:to="loc_us-gaap_EnergyEquipmentMember_53c9d45e-b5c5-4653-a24b-5fbe9de7fec4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MachineryAndEquipmentMember_6f3b809a-110f-4757-be65-6ef95e6bf772" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_MachineryAndEquipmentMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_7af132e4-c8de-4af5-b1d7-ea017a28c6fa" xlink:to="loc_us-gaap_MachineryAndEquipmentMember_6f3b809a-110f-4757-be65-6ef95e6bf772" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FurnitureAndFixturesMember_b6ebe53e-d19a-43e1-8a88-36076b477f57" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FurnitureAndFixturesMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_7af132e4-c8de-4af5-b1d7-ea017a28c6fa" xlink:to="loc_us-gaap_FurnitureAndFixturesMember_b6ebe53e-d19a-43e1-8a88-36076b477f57" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ComputerSoftwareIntangibleAssetMember_505fd771-d410-4e5a-990d-3b1f33d042a2" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ComputerSoftwareIntangibleAssetMember"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_7af132e4-c8de-4af5-b1d7-ea017a28c6fa" xlink:to="loc_us-gaap_ComputerSoftwareIntangibleAssetMember_505fd771-d410-4e5a-990d-3b1f33d042a2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LeaseholdImprovementsMember_b484e094-ae6b-4994-9086-011ea37a256f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LeaseholdImprovementsMember"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_7af132e4-c8de-4af5-b1d7-ea017a28c6fa" xlink:to="loc_us-gaap_LeaseholdImprovementsMember_b484e094-ae6b-4994-9086-011ea37a256f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeAxis_eb9b8475-9c84-4b8c-974f-4b9c557dea2c" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_bda38d39-405b-4fe5-af02-5574944b48b6" xlink:to="loc_srt_RangeAxis_eb9b8475-9c84-4b8c-974f-4b9c557dea2c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeMember_cf8f5105-3e25-47a0-b908-a654cec6cee2" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RangeAxis_eb9b8475-9c84-4b8c-974f-4b9c557dea2c" xlink:to="loc_srt_RangeMember_cf8f5105-3e25-47a0-b908-a654cec6cee2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MinimumMember_94e6ea03-66af-4cba-b07c-077d8bd235b0" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MinimumMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RangeMember_cf8f5105-3e25-47a0-b908-a654cec6cee2" xlink:to="loc_srt_MinimumMember_94e6ea03-66af-4cba-b07c-077d8bd235b0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MaximumMember_41d6eaae-b95d-4993-ae79-216a6c1b6eb7" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MaximumMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RangeMember_cf8f5105-3e25-47a0-b908-a654cec6cee2" xlink:to="loc_srt_MaximumMember_41d6eaae-b95d-4993-ae79-216a6c1b6eb7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentLineItems_69563e52-338c-4413-9de4-5214733b9a6c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentLineItems"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_bda38d39-405b-4fe5-af02-5574944b48b6" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentLineItems_69563e52-338c-4413-9de4-5214733b9a6c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentGross_9fabf6fa-bf62-4396-bbec-a684f29c4b2f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentGross"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_69563e52-338c-4413-9de4-5214733b9a6c" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentGross_9fabf6fa-bf62-4396-bbec-a684f29c4b2f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_cc25c9f0-d4fe-44d8-a99e-e7910c5e8c9a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_69563e52-338c-4413-9de4-5214733b9a6c" xlink:to="loc_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_cc25c9f0-d4fe-44d8-a99e-e7910c5e8c9a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentNet_a821d435-6e17-42f8-a6e6-cf6df5a7a5ba" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentNet"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_69563e52-338c-4413-9de4-5214733b9a6c" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentNet_a821d435-6e17-42f8-a6e6-cf6df5a7a5ba" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentUsefulLife_5302bdfb-04d9-444d-9129-b2533b0887dd" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentUsefulLife"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_69563e52-338c-4413-9de4-5214733b9a6c" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentUsefulLife_5302bdfb-04d9-444d-9129-b2533b0887dd" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/PropertyplantandequipmentNarrativeDetails" xlink:type="simple" xlink:href="tgen-20241231.xsd#PropertyplantandequipmentNarrativeDetails"/>
  <link:presentationLink xlink:role="http://www.tecogen.com/role/PropertyplantandequipmentNarrativeDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentAbstract_1373617f-df6f-4519-9714-4d86076165d9" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_88ad3e0e-48d5-4916-a740-f5a165fc42a8" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfPropertyPlantAndEquipmentTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentAbstract_1373617f-df6f-4519-9714-4d86076165d9" xlink:to="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_88ad3e0e-48d5-4916-a740-f5a165fc42a8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RestatementAxis_2ff440d7-6be0-47d8-8151-a884a81c7912" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RestatementAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_88ad3e0e-48d5-4916-a740-f5a165fc42a8" xlink:to="loc_srt_RestatementAxis_2ff440d7-6be0-47d8-8151-a884a81c7912" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RestatementDomain_44e3a1eb-b91d-45f2-9b06-3ea851c876b7" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RestatementDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RestatementAxis_2ff440d7-6be0-47d8-8151-a884a81c7912" xlink:to="loc_srt_RestatementDomain_44e3a1eb-b91d-45f2-9b06-3ea851c876b7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RestatementAdjustmentMember_3ccfde05-d565-453d-90f3-032d150868ce" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RestatementAdjustmentMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RestatementDomain_44e3a1eb-b91d-45f2-9b06-3ea851c876b7" xlink:to="loc_srt_RestatementAdjustmentMember_3ccfde05-d565-453d-90f3-032d150868ce" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentLineItems_190225ef-c42a-4b18-925f-4df6ba2e505a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_88ad3e0e-48d5-4916-a740-f5a165fc42a8" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentLineItems_190225ef-c42a-4b18-925f-4df6ba2e505a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_DepreciationDepletionandAmortizationPropertyPlantandEquipment_6cfcd960-9326-4e85-b86c-628ec8644618" xlink:href="tgen-20241231.xsd#tgen_DepreciationDepletionandAmortizationPropertyPlantandEquipment"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_190225ef-c42a-4b18-925f-4df6ba2e505a" xlink:to="loc_tgen_DepreciationDepletionandAmortizationPropertyPlantandEquipment_6cfcd960-9326-4e85-b86c-628ec8644618" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment_bb287e0b-c349-462f-aa6f-aabb8304779f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_190225ef-c42a-4b18-925f-4df6ba2e505a" xlink:to="loc_us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment_bb287e0b-c349-462f-aa6f-aabb8304779f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GainLossOnDispositionOfAssets1_1037c6b6-fd6e-4358-a290-02bc321928bc" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GainLossOnDispositionOfAssets1"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_190225ef-c42a-4b18-925f-4df6ba2e505a" xlink:to="loc_us-gaap_GainLossOnDispositionOfAssets1_1037c6b6-fd6e-4358-a290-02bc321928bc" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AccruedDecommissioningCosts_2316d8ef-f865-4e22-bec0-beea4fe478e6" xlink:href="tgen-20241231.xsd#tgen_AccruedDecommissioningCosts"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_190225ef-c42a-4b18-925f-4df6ba2e505a" xlink:to="loc_tgen_AccruedDecommissioningCosts_2316d8ef-f865-4e22-bec0-beea4fe478e6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/GoodwillScheduleofGoodwillDetails" xlink:type="simple" xlink:href="tgen-20241231.xsd#GoodwillScheduleofGoodwillDetails"/>
  <link:presentationLink xlink:role="http://www.tecogen.com/role/GoodwillScheduleofGoodwillDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_0d24804a-ad6f-4206-b8c5-45c759499c1f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfGoodwillTable_6e6eecf5-ff69-4e89-8918-7d08087ced35" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfGoodwillTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_0d24804a-ad6f-4206-b8c5-45c759499c1f" xlink:to="loc_us-gaap_ScheduleOfGoodwillTable_6e6eecf5-ff69-4e89-8918-7d08087ced35" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementBusinessSegmentsAxis_bf451bc6-9782-4076-9abd-0e14ec67471c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementBusinessSegmentsAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfGoodwillTable_6e6eecf5-ff69-4e89-8918-7d08087ced35" xlink:to="loc_us-gaap_StatementBusinessSegmentsAxis_bf451bc6-9782-4076-9abd-0e14ec67471c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SegmentDomain_f129771e-8aab-4653-995c-727dfb288458" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SegmentDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementBusinessSegmentsAxis_bf451bc6-9782-4076-9abd-0e14ec67471c" xlink:to="loc_us-gaap_SegmentDomain_f129771e-8aab-4653-995c-727dfb288458" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ProductsandServicesMember_4027f969-6201-4206-9630-c6c22cdf3bd2" xlink:href="tgen-20241231.xsd#tgen_ProductsandServicesMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SegmentDomain_f129771e-8aab-4653-995c-727dfb288458" xlink:to="loc_tgen_ProductsandServicesMember_4027f969-6201-4206-9630-c6c22cdf3bd2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ProductsSegmentMember_0426d90c-4c5e-4c5a-838f-5da5715b8cba" xlink:href="tgen-20241231.xsd#tgen_ProductsSegmentMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SegmentDomain_f129771e-8aab-4653-995c-727dfb288458" xlink:to="loc_tgen_ProductsSegmentMember_0426d90c-4c5e-4c5a-838f-5da5715b8cba" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_EnergyProductionMember_e18792c2-d67a-44b6-87e4-74b4dd94d9a7" xlink:href="tgen-20241231.xsd#tgen_EnergyProductionMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SegmentDomain_f129771e-8aab-4653-995c-727dfb288458" xlink:to="loc_tgen_EnergyProductionMember_e18792c2-d67a-44b6-87e4-74b4dd94d9a7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ServicesSegmentMember_faa460f3-eb97-4ef0-95e5-448b7e8cacf8" xlink:href="tgen-20241231.xsd#tgen_ServicesSegmentMember"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SegmentDomain_f129771e-8aab-4653-995c-727dfb288458" xlink:to="loc_tgen_ServicesSegmentMember_faa460f3-eb97-4ef0-95e5-448b7e8cacf8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillLineItems_a941d6a0-5764-47a6-b6f5-7278226ef784" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GoodwillLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfGoodwillTable_6e6eecf5-ff69-4e89-8918-7d08087ced35" xlink:to="loc_us-gaap_GoodwillLineItems_a941d6a0-5764-47a6-b6f5-7278226ef784" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillRollForward_c0a5d11b-68b0-432b-91c9-2447454e07ed" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GoodwillRollForward"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GoodwillLineItems_a941d6a0-5764-47a6-b6f5-7278226ef784" xlink:to="loc_us-gaap_GoodwillRollForward_c0a5d11b-68b0-432b-91c9-2447454e07ed" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Goodwill_b6edeca7-d6eb-458e-8e8c-9d0fa06d4709" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Goodwill"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GoodwillRollForward_c0a5d11b-68b0-432b-91c9-2447454e07ed" xlink:to="loc_us-gaap_Goodwill_b6edeca7-d6eb-458e-8e8c-9d0fa06d4709" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillImpairmentLoss_4f3af309-aa20-490e-9b97-c64595c1d335" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GoodwillImpairmentLoss"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GoodwillRollForward_c0a5d11b-68b0-432b-91c9-2447454e07ed" xlink:to="loc_us-gaap_GoodwillImpairmentLoss_4f3af309-aa20-490e-9b97-c64595c1d335" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillAcquiredDuringPeriod_a28a357d-5c09-49d8-a318-549e6d140518" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GoodwillAcquiredDuringPeriod"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GoodwillRollForward_c0a5d11b-68b0-432b-91c9-2447454e07ed" xlink:to="loc_us-gaap_GoodwillAcquiredDuringPeriod_a28a357d-5c09-49d8-a318-549e6d140518" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillPurchaseAccountingAdjustments_d5471254-ad63-4fc9-9c0a-f6396f1072d8" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GoodwillPurchaseAccountingAdjustments"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GoodwillRollForward_c0a5d11b-68b0-432b-91c9-2447454e07ed" xlink:to="loc_us-gaap_GoodwillPurchaseAccountingAdjustments_d5471254-ad63-4fc9-9c0a-f6396f1072d8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Goodwill_f76f40ff-be68-4e54-9e67-59d4edf57ba7" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Goodwill"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GoodwillRollForward_c0a5d11b-68b0-432b-91c9-2447454e07ed" xlink:to="loc_us-gaap_Goodwill_f76f40ff-be68-4e54-9e67-59d4edf57ba7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/GoodwillNarrativeDetails" xlink:type="simple" xlink:href="tgen-20241231.xsd#GoodwillNarrativeDetails"/>
  <link:presentationLink xlink:role="http://www.tecogen.com/role/GoodwillNarrativeDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_066c1633-dcad-4880-96ca-d6a04b853e1c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfGoodwillTable_ff7ee487-025a-4458-95ed-faa73e0dafbb" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfGoodwillTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_066c1633-dcad-4880-96ca-d6a04b853e1c" xlink:to="loc_us-gaap_ScheduleOfGoodwillTable_ff7ee487-025a-4458-95ed-faa73e0dafbb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementBusinessSegmentsAxis_a26b602a-9846-481a-8ad5-67bdb617f9ed" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementBusinessSegmentsAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfGoodwillTable_ff7ee487-025a-4458-95ed-faa73e0dafbb" xlink:to="loc_us-gaap_StatementBusinessSegmentsAxis_a26b602a-9846-481a-8ad5-67bdb617f9ed" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SegmentDomain_c013ea4d-7910-4536-b3a8-2f126f671400" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SegmentDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementBusinessSegmentsAxis_a26b602a-9846-481a-8ad5-67bdb617f9ed" xlink:to="loc_us-gaap_SegmentDomain_c013ea4d-7910-4536-b3a8-2f126f671400" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ServicesSegmentMember_a6db28dd-d56e-4442-96b1-001d141cf38f" xlink:href="tgen-20241231.xsd#tgen_ServicesSegmentMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SegmentDomain_c013ea4d-7910-4536-b3a8-2f126f671400" xlink:to="loc_tgen_ServicesSegmentMember_a6db28dd-d56e-4442-96b1-001d141cf38f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillLineItems_0460fb6e-d71b-4145-ac34-a88cb0144443" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GoodwillLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfGoodwillTable_ff7ee487-025a-4458-95ed-faa73e0dafbb" xlink:to="loc_us-gaap_GoodwillLineItems_0460fb6e-d71b-4145-ac34-a88cb0144443" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillImpairmentLoss_a36e720d-2be0-4273-8466-07cea5a94e96" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GoodwillImpairmentLoss"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GoodwillLineItems_0460fb6e-d71b-4145-ac34-a88cb0144443" xlink:to="loc_us-gaap_GoodwillImpairmentLoss_a36e720d-2be0-4273-8466-07cea5a94e96" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/RelatedPartyNotesDetails" xlink:type="simple" xlink:href="tgen-20241231.xsd#RelatedPartyNotesDetails"/>
  <link:presentationLink xlink:role="http://www.tecogen.com/role/RelatedPartyNotesDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyTransactionsAbstract_0f36c176-9454-42d0-acdd-65ff12c92114" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RelatedPartyTransactionsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfRelatedPartyTransactionsByRelatedPartyTable_da059f6e-a8bb-45dd-bbff-135441a5644b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfRelatedPartyTransactionsByRelatedPartyTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RelatedPartyTransactionsAbstract_0f36c176-9454-42d0-acdd-65ff12c92114" xlink:to="loc_us-gaap_ScheduleOfRelatedPartyTransactionsByRelatedPartyTable_da059f6e-a8bb-45dd-bbff-135441a5644b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_CounterpartyNameAxis_82116e9a-a1f9-4eb2-b96d-80c9dd09f21f" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_CounterpartyNameAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfRelatedPartyTransactionsByRelatedPartyTable_da059f6e-a8bb-45dd-bbff-135441a5644b" xlink:to="loc_srt_CounterpartyNameAxis_82116e9a-a1f9-4eb2-b96d-80c9dd09f21f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RepurchaseAgreementCounterpartyNameDomain_2e16fb55-abdd-4342-aa26-24fb36dca6d5" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RepurchaseAgreementCounterpartyNameDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_CounterpartyNameAxis_82116e9a-a1f9-4eb2-b96d-80c9dd09f21f" xlink:to="loc_srt_RepurchaseAgreementCounterpartyNameDomain_2e16fb55-abdd-4342-aa26-24fb36dca6d5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_JohnN.HatsopoulosAndEarlR.LewisIIIMember_ef484666-f414-4752-9ed9-4e6cb431d2ba" xlink:href="tgen-20241231.xsd#tgen_JohnN.HatsopoulosAndEarlR.LewisIIIMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RepurchaseAgreementCounterpartyNameDomain_2e16fb55-abdd-4342-aa26-24fb36dca6d5" xlink:to="loc_tgen_JohnN.HatsopoulosAndEarlR.LewisIIIMember_ef484666-f414-4752-9ed9-4e6cb431d2ba" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_EarlR.LewisIIIMember_f85c5d8f-6402-47e7-8721-9e8724a3718a" xlink:href="tgen-20241231.xsd#tgen_EarlR.LewisIIIMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RepurchaseAgreementCounterpartyNameDomain_2e16fb55-abdd-4342-aa26-24fb36dca6d5" xlink:to="loc_tgen_EarlR.LewisIIIMember_f85c5d8f-6402-47e7-8721-9e8724a3718a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_JohnN.HatsopoulosMember_4c22d55d-50d9-4fb9-b2a8-55bd083f70e5" xlink:href="tgen-20241231.xsd#tgen_JohnN.HatsopoulosMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RepurchaseAgreementCounterpartyNameDomain_2e16fb55-abdd-4342-aa26-24fb36dca6d5" xlink:to="loc_tgen_JohnN.HatsopoulosMember_4c22d55d-50d9-4fb9-b2a8-55bd083f70e5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis_65974a5a-a541-4be3-b427-c0d1590fae43" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RelatedPartyTransactionsByRelatedPartyAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfRelatedPartyTransactionsByRelatedPartyTable_da059f6e-a8bb-45dd-bbff-135441a5644b" xlink:to="loc_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis_65974a5a-a541-4be3-b427-c0d1590fae43" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyDomain_eba3f8d5-89d1-4058-95f5-fe5d601239f9" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RelatedPartyDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis_65974a5a-a541-4be3-b427-c0d1590fae43" xlink:to="loc_us-gaap_RelatedPartyDomain_eba3f8d5-89d1-4058-95f5-fe5d601239f9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyMember_cd93f20c-4219-432e-b4ae-dea7a7f5e9bf" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RelatedPartyMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RelatedPartyDomain_eba3f8d5-89d1-4058-95f5-fe5d601239f9" xlink:to="loc_us-gaap_RelatedPartyMember_cd93f20c-4219-432e-b4ae-dea7a7f5e9bf" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_DirectorMember_43dd536a-5d5c-477f-805b-131b31b1a485" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_DirectorMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RelatedPartyDomain_eba3f8d5-89d1-4058-95f5-fe5d601239f9" xlink:to="loc_srt_DirectorMember_43dd536a-5d5c-477f-805b-131b31b1a485" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyTransactionAxis_64beb34c-510e-4112-bad1-379ca22f5fd0" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RelatedPartyTransactionAxis"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfRelatedPartyTransactionsByRelatedPartyTable_da059f6e-a8bb-45dd-bbff-135441a5644b" xlink:to="loc_us-gaap_RelatedPartyTransactionAxis_64beb34c-510e-4112-bad1-379ca22f5fd0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyTransactionDomain_9df8f96f-c308-440e-ae77-bd263074dbf1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RelatedPartyTransactionDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RelatedPartyTransactionAxis_64beb34c-510e-4112-bad1-379ca22f5fd0" xlink:to="loc_us-gaap_RelatedPartyTransactionDomain_9df8f96f-c308-440e-ae77-bd263074dbf1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_October2023PromissoryNoteMember_6e8552cc-15c2-4724-83e3-1c9437b66b7b" xlink:href="tgen-20241231.xsd#tgen_October2023PromissoryNoteMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RelatedPartyTransactionDomain_9df8f96f-c308-440e-ae77-bd263074dbf1" xlink:to="loc_tgen_October2023PromissoryNoteMember_6e8552cc-15c2-4724-83e3-1c9437b66b7b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_July2024PromissoryNoteMember_76a440b0-d8be-4aaf-85e5-4d0a95141ecb" xlink:href="tgen-20241231.xsd#tgen_July2024PromissoryNoteMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RelatedPartyTransactionDomain_9df8f96f-c308-440e-ae77-bd263074dbf1" xlink:to="loc_tgen_July2024PromissoryNoteMember_76a440b0-d8be-4aaf-85e5-4d0a95141ecb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_September2024PromissoryNoteMember_bcf9c506-422f-4fab-b3b3-bc29c24c1a8f" xlink:href="tgen-20241231.xsd#tgen_September2024PromissoryNoteMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RelatedPartyTransactionDomain_9df8f96f-c308-440e-ae77-bd263074dbf1" xlink:to="loc_tgen_September2024PromissoryNoteMember_bcf9c506-422f-4fab-b3b3-bc29c24c1a8f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AverageClosingSharePriceMember_4345e2ea-061c-41dd-b38a-098937e7456f" xlink:href="tgen-20241231.xsd#tgen_AverageClosingSharePriceMember"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RelatedPartyTransactionDomain_9df8f96f-c308-440e-ae77-bd263074dbf1" xlink:to="loc_tgen_AverageClosingSharePriceMember_4345e2ea-061c-41dd-b38a-098937e7456f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventTypeAxis_3c1c811a-059e-4650-9b3c-d9a4decfb689" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsequentEventTypeAxis"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfRelatedPartyTransactionsByRelatedPartyTable_da059f6e-a8bb-45dd-bbff-135441a5644b" xlink:to="loc_us-gaap_SubsequentEventTypeAxis_3c1c811a-059e-4650-9b3c-d9a4decfb689" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventTypeDomain_9ac02334-21d0-4ccc-ad70-6101ecd5a26a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsequentEventTypeDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SubsequentEventTypeAxis_3c1c811a-059e-4650-9b3c-d9a4decfb689" xlink:to="loc_us-gaap_SubsequentEventTypeDomain_9ac02334-21d0-4ccc-ad70-6101ecd5a26a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventMember_33a8ca2d-4717-489a-a990-b4622d67bc82" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsequentEventMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SubsequentEventTypeDomain_9ac02334-21d0-4ccc-ad70-6101ecd5a26a" xlink:to="loc_us-gaap_SubsequentEventMember_33a8ca2d-4717-489a-a990-b4622d67bc82" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyTransactionLineItems_dad6de8e-4f0b-4cdb-a931-8f8699cf773e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RelatedPartyTransactionLineItems"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfRelatedPartyTransactionsByRelatedPartyTable_da059f6e-a8bb-45dd-bbff-135441a5644b" xlink:to="loc_us-gaap_RelatedPartyTransactionLineItems_dad6de8e-4f0b-4cdb-a931-8f8699cf773e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NotesPayable_2579e32f-f765-43f8-9798-5fd504b33ea4" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NotesPayable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RelatedPartyTransactionLineItems_dad6de8e-4f0b-4cdb-a931-8f8699cf773e" xlink:to="loc_us-gaap_NotesPayable_2579e32f-f765-43f8-9798-5fd504b33ea4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_RelatedPartyTransactionPeriod_ea5b7304-df33-484c-88b3-80203d4d5ce0" xlink:href="tgen-20241231.xsd#tgen_RelatedPartyTransactionPeriod"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RelatedPartyTransactionLineItems_dad6de8e-4f0b-4cdb-a931-8f8699cf773e" xlink:to="loc_tgen_RelatedPartyTransactionPeriod_ea5b7304-df33-484c-88b3-80203d4d5ce0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyTransactionRate_dfa06e80-a185-4c56-9149-4284e6a60fc3" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RelatedPartyTransactionRate"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RelatedPartyTransactionLineItems_dad6de8e-4f0b-4cdb-a931-8f8699cf773e" xlink:to="loc_us-gaap_RelatedPartyTransactionRate_dfa06e80-a185-4c56-9149-4284e6a60fc3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InterestPayableCurrentAndNoncurrent_35ecc86b-f6f6-4cf0-8fa8-f06fda0a7c6a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InterestPayableCurrentAndNoncurrent"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RelatedPartyTransactionLineItems_dad6de8e-4f0b-4cdb-a931-8f8699cf773e" xlink:to="loc_us-gaap_InterestPayableCurrentAndNoncurrent_35ecc86b-f6f6-4cf0-8fa8-f06fda0a7c6a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/CommitmentsandcontingenciesDetails" xlink:type="simple" xlink:href="tgen-20241231.xsd#CommitmentsandcontingenciesDetails"/>
  <link:presentationLink xlink:role="http://www.tecogen.com/role/CommitmentsandcontingenciesDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommitmentsAndContingenciesDisclosureAbstract_f95546dd-0979-4486-b5fe-d9e0c9293f6d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommitmentsAndContingenciesDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LossContingenciesTable_e11f9fe1-8ba2-4522-91a7-49ecf0c7734c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LossContingenciesTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CommitmentsAndContingenciesDisclosureAbstract_f95546dd-0979-4486-b5fe-d9e0c9293f6d" xlink:to="loc_us-gaap_LossContingenciesTable_e11f9fe1-8ba2-4522-91a7-49ecf0c7734c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_LegalEntityAxis_24122261-fcdc-4c75-bd58-d2d157bab7f7" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_LegalEntityAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LossContingenciesTable_e11f9fe1-8ba2-4522-91a7-49ecf0c7734c" xlink:to="loc_dei_LegalEntityAxis_24122261-fcdc-4c75-bd58-d2d157bab7f7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityDomain_749bd7c0-c1f4-4b75-b7ed-1662e95eac4b" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_LegalEntityAxis_24122261-fcdc-4c75-bd58-d2d157bab7f7" xlink:to="loc_dei_EntityDomain_749bd7c0-c1f4-4b75-b7ed-1662e95eac4b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_EurositePowerIncMember_fe472ae6-035d-4343-a53b-bfd43c1fb497" xlink:href="tgen-20241231.xsd#tgen_EurositePowerIncMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_EntityDomain_749bd7c0-c1f4-4b75-b7ed-1662e95eac4b" xlink:to="loc_tgen_EurositePowerIncMember_fe472ae6-035d-4343-a53b-bfd43c1fb497" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_765a682f-30b3-4a2c-adb4-d6d1f6905222" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentByTypeAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LossContingenciesTable_e11f9fe1-8ba2-4522-91a7-49ecf0c7734c" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_765a682f-30b3-4a2c-adb4-d6d1f6905222" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_8eb2f39e-55db-4945-9ef2-847f0db745be" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_765a682f-30b3-4a2c-adb4-d6d1f6905222" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_8eb2f39e-55db-4945-9ef2-847f0db745be" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_OfficeSpaceAndWarehouseFacilitiesMember_28107aca-9f73-41c8-8153-741c34168ace" xlink:href="tgen-20241231.xsd#tgen_OfficeSpaceAndWarehouseFacilitiesMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_8eb2f39e-55db-4945-9ef2-847f0db745be" xlink:to="loc_tgen_OfficeSpaceAndWarehouseFacilitiesMember_28107aca-9f73-41c8-8153-741c34168ace" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_LitigationCaseAxis_c321e433-d3a0-4e8c-ae69-7781ae6222d7" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_LitigationCaseAxis"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LossContingenciesTable_e11f9fe1-8ba2-4522-91a7-49ecf0c7734c" xlink:to="loc_srt_LitigationCaseAxis_c321e433-d3a0-4e8c-ae69-7781ae6222d7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_LitigationCaseTypeDomain_dfd743b7-56b9-44f3-9f01-25a9f597da03" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_LitigationCaseTypeDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_LitigationCaseAxis_c321e433-d3a0-4e8c-ae69-7781ae6222d7" xlink:to="loc_srt_LitigationCaseTypeDomain_dfd743b7-56b9-44f3-9f01-25a9f597da03" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_TheCorporationOfTheTownOfMiltonMiltonEnergyGenerationSolutionsInc.AndMiltonHydroDistributionIncMember_fb600bf4-78af-4a78-9c17-8fb09a15b328" xlink:href="tgen-20241231.xsd#tgen_TheCorporationOfTheTownOfMiltonMiltonEnergyGenerationSolutionsInc.AndMiltonHydroDistributionIncMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_LitigationCaseTypeDomain_dfd743b7-56b9-44f3-9f01-25a9f597da03" xlink:to="loc_tgen_TheCorporationOfTheTownOfMiltonMiltonEnergyGenerationSolutionsInc.AndMiltonHydroDistributionIncMember_fb600bf4-78af-4a78-9c17-8fb09a15b328" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventTypeAxis_6d7abd16-7cd2-4661-926e-3ec2ea70b69a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsequentEventTypeAxis"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LossContingenciesTable_e11f9fe1-8ba2-4522-91a7-49ecf0c7734c" xlink:to="loc_us-gaap_SubsequentEventTypeAxis_6d7abd16-7cd2-4661-926e-3ec2ea70b69a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventTypeDomain_3a74413b-05fb-4eba-9ed8-d502a673297e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsequentEventTypeDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SubsequentEventTypeAxis_6d7abd16-7cd2-4661-926e-3ec2ea70b69a" xlink:to="loc_us-gaap_SubsequentEventTypeDomain_3a74413b-05fb-4eba-9ed8-d502a673297e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventMember_00130c9c-c677-47e8-9608-b94b987a6a73" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsequentEventMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SubsequentEventTypeDomain_3a74413b-05fb-4eba-9ed8-d502a673297e" xlink:to="loc_us-gaap_SubsequentEventMember_00130c9c-c677-47e8-9608-b94b987a6a73" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LossContingenciesLineItems_10faca68-78c7-4568-8327-95a6dd23b018" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LossContingenciesLineItems"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LossContingenciesTable_e11f9fe1-8ba2-4522-91a7-49ecf0c7734c" xlink:to="loc_us-gaap_LossContingenciesLineItems_10faca68-78c7-4568-8327-95a6dd23b018" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseCost_c04bb8f1-0f82-4cd2-bcbe-4edb2e6f46f6" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseCost"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LossContingenciesLineItems_10faca68-78c7-4568-8327-95a6dd23b018" xlink:to="loc_us-gaap_OperatingLeaseCost_c04bb8f1-0f82-4cd2-bcbe-4edb2e6f46f6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LossContingencyDamagesSoughtValue_0f0bc481-ae6e-49c3-bc7b-a67b2421b052" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LossContingencyDamagesSoughtValue"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LossContingenciesLineItems_10faca68-78c7-4568-8327-95a6dd23b018" xlink:to="loc_us-gaap_LossContingencyDamagesSoughtValue_0f0bc481-ae6e-49c3-bc7b-a67b2421b052" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LitigationReserve_461c21ad-592a-4610-8187-430a8cbc4c84" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LitigationReserve"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LossContingenciesLineItems_10faca68-78c7-4568-8327-95a6dd23b018" xlink:to="loc_us-gaap_LitigationReserve_461c21ad-592a-4610-8187-430a8cbc4c84" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LossContingencyDamagesAwardedValue_acb80645-c84c-4f9f-810e-ee3418df9470" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LossContingencyDamagesAwardedValue"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LossContingenciesLineItems_10faca68-78c7-4568-8327-95a6dd23b018" xlink:to="loc_us-gaap_LossContingencyDamagesAwardedValue_acb80645-c84c-4f9f-810e-ee3418df9470" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LossContingencyDamagesPaidValue_2c7afec6-5889-4850-9a02-945f837805a5" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LossContingencyDamagesPaidValue"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LossContingenciesLineItems_10faca68-78c7-4568-8327-95a6dd23b018" xlink:to="loc_us-gaap_LossContingencyDamagesPaidValue_2c7afec6-5889-4850-9a02-945f837805a5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_PeriodOfSeveranceBenefitsForKeyManagementEmployeesUnderThePlan_e8e96248-7f08-4060-b254-da79c412656e" xlink:href="tgen-20241231.xsd#tgen_PeriodOfSeveranceBenefitsForKeyManagementEmployeesUnderThePlan"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LossContingenciesLineItems_10faca68-78c7-4568-8327-95a6dd23b018" xlink:to="loc_tgen_PeriodOfSeveranceBenefitsForKeyManagementEmployeesUnderThePlan_e8e96248-7f08-4060-b254-da79c412656e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ChangeInControlSeveranceBenefitPlanPeriodInForce_aaa25340-4b44-4d24-8aaf-08e1508ccf6f" xlink:href="tgen-20241231.xsd#tgen_ChangeInControlSeveranceBenefitPlanPeriodInForce"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LossContingenciesLineItems_10faca68-78c7-4568-8327-95a6dd23b018" xlink:to="loc_tgen_ChangeInControlSeveranceBenefitPlanPeriodInForce_aaa25340-4b44-4d24-8aaf-08e1508ccf6f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ChangeInControlSeveranceBenefitPlanPeriodInForceExtension_8130d350-edd0-4bca-ba90-0c88b2a05ecc" xlink:href="tgen-20241231.xsd#tgen_ChangeInControlSeveranceBenefitPlanPeriodInForceExtension"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LossContingenciesLineItems_10faca68-78c7-4568-8327-95a6dd23b018" xlink:to="loc_tgen_ChangeInControlSeveranceBenefitPlanPeriodInForceExtension_8130d350-edd0-4bca-ba90-0c88b2a05ecc" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ChangeInControlSeveranceBenefitPlanNoticePeriodForCancellation_ea0e54df-f71f-47bd-ac46-8a1f9ea1597d" xlink:href="tgen-20241231.xsd#tgen_ChangeInControlSeveranceBenefitPlanNoticePeriodForCancellation"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LossContingenciesLineItems_10faca68-78c7-4568-8327-95a6dd23b018" xlink:to="loc_tgen_ChangeInControlSeveranceBenefitPlanNoticePeriodForCancellation_ea0e54df-f71f-47bd-ac46-8a1f9ea1597d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ChangeInControlSeveranceBenefitPlanThresholdPeriodForTerminationPriorToChangeInControl_4cff44bc-56b9-421d-aeeb-49baca1b92c8" xlink:href="tgen-20241231.xsd#tgen_ChangeInControlSeveranceBenefitPlanThresholdPeriodForTerminationPriorToChangeInControl"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LossContingenciesLineItems_10faca68-78c7-4568-8327-95a6dd23b018" xlink:to="loc_tgen_ChangeInControlSeveranceBenefitPlanThresholdPeriodForTerminationPriorToChangeInControl_4cff44bc-56b9-421d-aeeb-49baca1b92c8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ChangeInControlSeveranceBenefitPlanThresholdPeriodForTerminationAfterToChangeInControl_c9ed641a-02cc-4a43-9711-b3a2f55179d8" xlink:href="tgen-20241231.xsd#tgen_ChangeInControlSeveranceBenefitPlanThresholdPeriodForTerminationAfterToChangeInControl"/>
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LossContingenciesLineItems_10faca68-78c7-4568-8327-95a6dd23b018" xlink:to="loc_tgen_ChangeInControlSeveranceBenefitPlanThresholdPeriodForTerminationAfterToChangeInControl_c9ed641a-02cc-4a43-9711-b3a2f55179d8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/ProductwarrantyScheduleofProductWarrantyReserveDetails" xlink:type="simple" xlink:href="tgen-20241231.xsd#ProductwarrantyScheduleofProductWarrantyReserveDetails"/>
  <link:presentationLink xlink:role="http://www.tecogen.com/role/ProductwarrantyScheduleofProductWarrantyReserveDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GuaranteesAbstract_f36123a2-a910-4fa1-ad14-78728ece6ed3" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GuaranteesAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ProductWarrantyPeriod_64a672a3-8517-4c93-9bee-9822f8296dcc" xlink:href="tgen-20241231.xsd#tgen_ProductWarrantyPeriod"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GuaranteesAbstract_f36123a2-a910-4fa1-ad14-78728ece6ed3" xlink:to="loc_tgen_ProductWarrantyPeriod_64a672a3-8517-4c93-9bee-9822f8296dcc" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MovementInStandardProductWarrantyAccrualRollForward_ab7672e7-388c-4008-95b9-538fed245a65" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_MovementInStandardProductWarrantyAccrualRollForward"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GuaranteesAbstract_f36123a2-a910-4fa1-ad14-78728ece6ed3" xlink:to="loc_us-gaap_MovementInStandardProductWarrantyAccrualRollForward_ab7672e7-388c-4008-95b9-538fed245a65" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StandardProductWarrantyAccrual_686cea81-7ce4-435d-8530-7012d561f086" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StandardProductWarrantyAccrual"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_MovementInStandardProductWarrantyAccrualRollForward_ab7672e7-388c-4008-95b9-538fed245a65" xlink:to="loc_us-gaap_StandardProductWarrantyAccrual_686cea81-7ce4-435d-8530-7012d561f086" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StandardProductWarrantyAccrualWarrantiesIssued_17eb7d3b-3594-4473-b4cb-dc06278a3987" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StandardProductWarrantyAccrualWarrantiesIssued"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_MovementInStandardProductWarrantyAccrualRollForward_ab7672e7-388c-4008-95b9-538fed245a65" xlink:to="loc_us-gaap_StandardProductWarrantyAccrualWarrantiesIssued_17eb7d3b-3594-4473-b4cb-dc06278a3987" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StandardProductWarrantyAccrualPayments_680ae8cf-8965-4e8d-b6ca-b245eb1858b6" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StandardProductWarrantyAccrualPayments"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_MovementInStandardProductWarrantyAccrualRollForward_ab7672e7-388c-4008-95b9-538fed245a65" xlink:to="loc_us-gaap_StandardProductWarrantyAccrualPayments_680ae8cf-8965-4e8d-b6ca-b245eb1858b6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StandardProductWarrantyAccrual_13316639-52e4-41ce-8ed9-aa032de699ed" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StandardProductWarrantyAccrual"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_MovementInStandardProductWarrantyAccrualRollForward_ab7672e7-388c-4008-95b9-538fed245a65" xlink:to="loc_us-gaap_StandardProductWarrantyAccrual_13316639-52e4-41ce-8ed9-aa032de699ed" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/LeasesNarrativeDetails" xlink:type="simple" xlink:href="tgen-20241231.xsd#LeasesNarrativeDetails"/>
  <link:presentationLink xlink:role="http://www.tecogen.com/role/LeasesNarrativeDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountingPoliciesAbstract_c067e3d1-c16d-42fd-89f7-d486114c84bf" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountingPoliciesAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LessorLeaseDescriptionTable_63e2e2a3-135f-47e5-8ac6-fec3f9ad9bc7" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LessorLeaseDescriptionTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_c067e3d1-c16d-42fd-89f7-d486114c84bf" xlink:to="loc_us-gaap_LessorLeaseDescriptionTable_63e2e2a3-135f-47e5-8ac6-fec3f9ad9bc7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_7842e608-92e7-4554-9a3f-2fb26d4cf772" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentByTypeAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LessorLeaseDescriptionTable_63e2e2a3-135f-47e5-8ac6-fec3f9ad9bc7" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_7842e608-92e7-4554-9a3f-2fb26d4cf772" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_f5748f0d-48f7-4cd4-b464-7a1cd8cd86b8" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_7842e608-92e7-4554-9a3f-2fb26d4cf772" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_f5748f0d-48f7-4cd4-b464-7a1cd8cd86b8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_OfficeSpaceAndWarehouseFacilitiesMember_d19be638-fc63-4429-96c1-6f8d5a6de6a1" xlink:href="tgen-20241231.xsd#tgen_OfficeSpaceAndWarehouseFacilitiesMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_f5748f0d-48f7-4cd4-b464-7a1cd8cd86b8" xlink:to="loc_tgen_OfficeSpaceAndWarehouseFacilitiesMember_d19be638-fc63-4429-96c1-6f8d5a6de6a1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_StatementScenarioAxis_281a4a44-bb40-49d7-8dce-bca6b8f72211" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_StatementScenarioAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LessorLeaseDescriptionTable_63e2e2a3-135f-47e5-8ac6-fec3f9ad9bc7" xlink:to="loc_srt_StatementScenarioAxis_281a4a44-bb40-49d7-8dce-bca6b8f72211" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ScenarioUnspecifiedDomain_0012094d-4f2a-4ec0-ac90-699abe3d446d" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ScenarioUnspecifiedDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_StatementScenarioAxis_281a4a44-bb40-49d7-8dce-bca6b8f72211" xlink:to="loc_srt_ScenarioUnspecifiedDomain_0012094d-4f2a-4ec0-ac90-699abe3d446d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ScenarioForecastMember_32ffff80-b9e8-4efd-99cb-c126ed8b8b9a" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ScenarioForecastMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ScenarioUnspecifiedDomain_0012094d-4f2a-4ec0-ac90-699abe3d446d" xlink:to="loc_srt_ScenarioForecastMember_32ffff80-b9e8-4efd-99cb-c126ed8b8b9a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeAxis_14bbb687-b154-4dc3-b07d-4a7e16b88fb7" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeAxis"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LessorLeaseDescriptionTable_63e2e2a3-135f-47e5-8ac6-fec3f9ad9bc7" xlink:to="loc_srt_RangeAxis_14bbb687-b154-4dc3-b07d-4a7e16b88fb7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeMember_dc88d489-26de-4ee9-9ab9-28732a4a7117" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RangeAxis_14bbb687-b154-4dc3-b07d-4a7e16b88fb7" xlink:to="loc_srt_RangeMember_dc88d489-26de-4ee9-9ab9-28732a4a7117" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MinimumMember_8bf88311-884c-4986-87c3-97ca4eaef7dc" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MinimumMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RangeMember_dc88d489-26de-4ee9-9ab9-28732a4a7117" xlink:to="loc_srt_MinimumMember_8bf88311-884c-4986-87c3-97ca4eaef7dc" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MaximumMember_f5a39f9d-30f5-4bb1-a1b8-5032b484baf9" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MaximumMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RangeMember_dc88d489-26de-4ee9-9ab9-28732a4a7117" xlink:to="loc_srt_MaximumMember_f5a39f9d-30f5-4bb1-a1b8-5032b484baf9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventTypeAxis_3869add2-4ced-46ad-8293-48cd0aeb0451" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsequentEventTypeAxis"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LessorLeaseDescriptionTable_63e2e2a3-135f-47e5-8ac6-fec3f9ad9bc7" xlink:to="loc_us-gaap_SubsequentEventTypeAxis_3869add2-4ced-46ad-8293-48cd0aeb0451" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventTypeDomain_59050524-3ec9-49d8-a719-9905f87dd9c1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsequentEventTypeDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SubsequentEventTypeAxis_3869add2-4ced-46ad-8293-48cd0aeb0451" xlink:to="loc_us-gaap_SubsequentEventTypeDomain_59050524-3ec9-49d8-a719-9905f87dd9c1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventMember_314c4e5d-9931-47cc-82fd-3d4a8ec93b3b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsequentEventMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SubsequentEventTypeDomain_59050524-3ec9-49d8-a719-9905f87dd9c1" xlink:to="loc_us-gaap_SubsequentEventMember_314c4e5d-9931-47cc-82fd-3d4a8ec93b3b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LessorLeaseDescriptionLineItems_2bebc780-6048-4650-98d7-d7927892f0e9" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LessorLeaseDescriptionLineItems"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LessorLeaseDescriptionTable_63e2e2a3-135f-47e5-8ac6-fec3f9ad9bc7" xlink:to="loc_us-gaap_LessorLeaseDescriptionLineItems_2bebc780-6048-4650-98d7-d7927892f0e9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_LesseeOperatingLeaseNumberOfLeaseAgreements_f8efb19b-4108-42d7-a0f5-3a2f56e90a24" xlink:href="tgen-20241231.xsd#tgen_LesseeOperatingLeaseNumberOfLeaseAgreements"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_2bebc780-6048-4650-98d7-d7927892f0e9" xlink:to="loc_tgen_LesseeOperatingLeaseNumberOfLeaseAgreements_f8efb19b-4108-42d7-a0f5-3a2f56e90a24" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_LesseeOperatingLeaseNumberOfBuildings_e983473d-035c-4fed-82ca-8654828ff505" xlink:href="tgen-20241231.xsd#tgen_LesseeOperatingLeaseNumberOfBuildings"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_2bebc780-6048-4650-98d7-d7927892f0e9" xlink:to="loc_tgen_LesseeOperatingLeaseNumberOfBuildings_e983473d-035c-4fed-82ca-8654828ff505" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_LesseeOperatingLeaseSquareFeet_b1c182f8-040e-428a-81c8-aeb2a284105b" xlink:href="tgen-20241231.xsd#tgen_LesseeOperatingLeaseSquareFeet"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_2bebc780-6048-4650-98d7-d7927892f0e9" xlink:to="loc_tgen_LesseeOperatingLeaseSquareFeet_b1c182f8-040e-428a-81c8-aeb2a284105b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseRemainingLeaseTerm_9cc2595a-9564-4e05-8ac5-7a36b1fdbc85" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseRemainingLeaseTerm"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_2bebc780-6048-4650-98d7-d7927892f0e9" xlink:to="loc_us-gaap_LesseeOperatingLeaseRemainingLeaseTerm_9cc2595a-9564-4e05-8ac5-7a36b1fdbc85" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_LesseeOperatingLeaseOptionToExtendNumberOfOptions_b0dfd766-0af5-4f92-a71f-4b75770ae244" xlink:href="tgen-20241231.xsd#tgen_LesseeOperatingLeaseOptionToExtendNumberOfOptions"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_2bebc780-6048-4650-98d7-d7927892f0e9" xlink:to="loc_tgen_LesseeOperatingLeaseOptionToExtendNumberOfOptions_b0dfd766-0af5-4f92-a71f-4b75770ae244" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ConstructionInProgressExpenditures_325de6be-1627-4025-b068-e9d55fd7a815" xlink:href="tgen-20241231.xsd#tgen_ConstructionInProgressExpenditures"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_2bebc780-6048-4650-98d7-d7927892f0e9" xlink:to="loc_tgen_ConstructionInProgressExpenditures_325de6be-1627-4025-b068-e9d55fd7a815" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseRenewalTerm_e0862cf9-d0f7-4cad-a109-541beb1a2274" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseRenewalTerm"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_2bebc780-6048-4650-98d7-d7927892f0e9" xlink:to="loc_us-gaap_LesseeOperatingLeaseRenewalTerm_e0862cf9-d0f7-4cad-a109-541beb1a2274" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_LesseeOperatingLeaseOptionToExtendPeriod_3ae65e37-bfdf-459b-add0-da30eb7ad380" xlink:href="tgen-20241231.xsd#tgen_LesseeOperatingLeaseOptionToExtendPeriod"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_2bebc780-6048-4650-98d7-d7927892f0e9" xlink:to="loc_tgen_LesseeOperatingLeaseOptionToExtendPeriod_3ae65e37-bfdf-459b-add0-da30eb7ad380" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_LesseeOperatingLeaseOptionToExtendMonthlyRent_39775e82-8539-4c00-8835-767a83f71990" xlink:href="tgen-20241231.xsd#tgen_LesseeOperatingLeaseOptionToExtendMonthlyRent"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_2bebc780-6048-4650-98d7-d7927892f0e9" xlink:to="loc_tgen_LesseeOperatingLeaseOptionToExtendMonthlyRent_39775e82-8539-4c00-8835-767a83f71990" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseTermOfContract_2cefc585-b0e9-4912-b79e-275c4cacf083" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseTermOfContract"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_2bebc780-6048-4650-98d7-d7927892f0e9" xlink:to="loc_us-gaap_LesseeOperatingLeaseTermOfContract_2cefc585-b0e9-4912-b79e-275c4cacf083" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseExpense_3b711b95-5cc0-4792-94af-90d38d77dcc9" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseExpense"/>
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_2bebc780-6048-4650-98d7-d7927892f0e9" xlink:to="loc_us-gaap_OperatingLeaseExpense_3b711b95-5cc0-4792-94af-90d38d77dcc9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LeaseCost_6fbb3522-d451-43c7-b894-e3dac1375ab5" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LeaseCost"/>
    <link:presentationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_2bebc780-6048-4650-98d7-d7927892f0e9" xlink:to="loc_us-gaap_LeaseCost_6fbb3522-d451-43c7-b894-e3dac1375ab5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseCost_a794aad9-5970-4190-b638-1c6273e80596" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseCost"/>
    <link:presentationArc order="13" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_2bebc780-6048-4650-98d7-d7927892f0e9" xlink:to="loc_us-gaap_OperatingLeaseCost_a794aad9-5970-4190-b638-1c6273e80596" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_FinanceLeaseExpense_b7d1d600-b6d2-4a71-9665-96a413d78d15" xlink:href="tgen-20241231.xsd#tgen_FinanceLeaseExpense"/>
    <link:presentationArc order="14" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_2bebc780-6048-4650-98d7-d7927892f0e9" xlink:to="loc_tgen_FinanceLeaseExpense_b7d1d600-b6d2-4a71-9665-96a413d78d15" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinanceLeaseRightOfUseAssetAmortization_2687df10-83e9-4e33-9fa5-5adec02ad0d4" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FinanceLeaseRightOfUseAssetAmortization"/>
    <link:presentationArc order="15" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_2bebc780-6048-4650-98d7-d7927892f0e9" xlink:to="loc_us-gaap_FinanceLeaseRightOfUseAssetAmortization_2687df10-83e9-4e33-9fa5-5adec02ad0d4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/LeasesSupplementalInformationforOperatingLeasesDetails" xlink:type="simple" xlink:href="tgen-20241231.xsd#LeasesSupplementalInformationforOperatingLeasesDetails"/>
  <link:presentationLink xlink:role="http://www.tecogen.com/role/LeasesSupplementalInformationforOperatingLeasesDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LeasesAbstract_14b4388f-ba6a-4581-afae-213504cc2bda" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LeasesAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeasePayments_eccc66c9-4df1-42c0-873c-a3bdb5f33761" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeasePayments"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LeasesAbstract_14b4388f-ba6a-4581-afae-213504cc2bda" xlink:to="loc_us-gaap_OperatingLeasePayments_eccc66c9-4df1-42c0-873c-a3bdb5f33761" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability_6444cd2d-ac7f-4f02-8cd9-815efa58b1b5" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LeasesAbstract_14b4388f-ba6a-4581-afae-213504cc2bda" xlink:to="loc_us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability_6444cd2d-ac7f-4f02-8cd9-815efa58b1b5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1_c75d35ed-413e-4183-92f6-b1e8695e2922" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LeasesAbstract_14b4388f-ba6a-4581-afae-213504cc2bda" xlink:to="loc_us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1_c75d35ed-413e-4183-92f6-b1e8695e2922" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent_9694ed4c-042f-4e40-a26e-353f4b280d99" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LeasesAbstract_14b4388f-ba6a-4581-afae-213504cc2bda" xlink:to="loc_us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent_9694ed4c-042f-4e40-a26e-353f4b280d99" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/LeasesSupplementalInformationforFinanceLeasesDetails" xlink:type="simple" xlink:href="tgen-20241231.xsd#LeasesSupplementalInformationforFinanceLeasesDetails"/>
  <link:presentationLink xlink:role="http://www.tecogen.com/role/LeasesSupplementalInformationforFinanceLeasesDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LeasesAbstract_8439e4cd-376c-424d-b054-62f7f49e365b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LeasesAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_FinanceLeasePrincipalPaymentsAndOtherCosts_67fdba4c-961c-45ca-96eb-44cedeb02375" xlink:href="tgen-20241231.xsd#tgen_FinanceLeasePrincipalPaymentsAndOtherCosts"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LeasesAbstract_8439e4cd-376c-424d-b054-62f7f49e365b" xlink:to="loc_tgen_FinanceLeasePrincipalPaymentsAndOtherCosts_67fdba4c-961c-45ca-96eb-44cedeb02375" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RightOfUseAssetObtainedInExchangeForFinanceLeaseLiability_6e83f10c-0043-4d52-b6c9-6a433589627e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RightOfUseAssetObtainedInExchangeForFinanceLeaseLiability"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LeasesAbstract_8439e4cd-376c-424d-b054-62f7f49e365b" xlink:to="loc_us-gaap_RightOfUseAssetObtainedInExchangeForFinanceLeaseLiability_6e83f10c-0043-4d52-b6c9-6a433589627e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinanceLeaseWeightedAverageRemainingLeaseTerm1_7fbc4935-0f00-47af-945c-f4dcadfd4407" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FinanceLeaseWeightedAverageRemainingLeaseTerm1"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LeasesAbstract_8439e4cd-376c-424d-b054-62f7f49e365b" xlink:to="loc_us-gaap_FinanceLeaseWeightedAverageRemainingLeaseTerm1_7fbc4935-0f00-47af-945c-f4dcadfd4407" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinanceLeaseWeightedAverageDiscountRatePercent_32d6c48a-176c-4db8-bed4-dfa065e34362" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FinanceLeaseWeightedAverageDiscountRatePercent"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LeasesAbstract_8439e4cd-376c-424d-b054-62f7f49e365b" xlink:to="loc_us-gaap_FinanceLeaseWeightedAverageDiscountRatePercent_32d6c48a-176c-4db8-bed4-dfa065e34362" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/LeasesSupplementalBalanceSheetInformationDetails" xlink:type="simple" xlink:href="tgen-20241231.xsd#LeasesSupplementalBalanceSheetInformationDetails"/>
  <link:presentationLink xlink:role="http://www.tecogen.com/role/LeasesSupplementalBalanceSheetInformationDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LeasesAbstract_9e757514-fce3-47ff-a35c-7110966b1802" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LeasesAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeLeaseDescriptionTable_dcc522f4-e93f-4d67-ab5c-3a8c516ba6d3" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeLeaseDescriptionTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LeasesAbstract_9e757514-fce3-47ff-a35c-7110966b1802" xlink:to="loc_us-gaap_LesseeLeaseDescriptionTable_dcc522f4-e93f-4d67-ab5c-3a8c516ba6d3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_fc780c5e-d9e5-4c29-8a5c-6921cfbb1ce3" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentByTypeAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LesseeLeaseDescriptionTable_dcc522f4-e93f-4d67-ab5c-3a8c516ba6d3" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_fc780c5e-d9e5-4c29-8a5c-6921cfbb1ce3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_1ef147cf-f95e-49ce-9062-2351911830f9" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_fc780c5e-d9e5-4c29-8a5c-6921cfbb1ce3" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_1ef147cf-f95e-49ce-9062-2351911830f9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_VehiclesMember_d9ddf35a-29b3-4c4b-bc77-d54ca67f0609" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_VehiclesMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_1ef147cf-f95e-49ce-9062-2351911830f9" xlink:to="loc_us-gaap_VehiclesMember_d9ddf35a-29b3-4c4b-bc77-d54ca67f0609" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_BoilerMember_79592de6-6c77-42bb-9915-8a1c36fe1188" xlink:href="tgen-20241231.xsd#tgen_BoilerMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_1ef147cf-f95e-49ce-9062-2351911830f9" xlink:to="loc_tgen_BoilerMember_79592de6-6c77-42bb-9915-8a1c36fe1188" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeLeaseDescriptionLineItems_ee878094-d153-428d-b8ca-f530ab67426e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeLeaseDescriptionLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LesseeLeaseDescriptionTable_dcc522f4-e93f-4d67-ab5c-3a8c516ba6d3" xlink:to="loc_us-gaap_LesseeLeaseDescriptionLineItems_ee878094-d153-428d-b8ca-f530ab67426e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_OperatingLeaseAssetsAndLiabilitiesLesseeAbstract_115eec22-6a4f-420f-8f76-1133e3183f53" xlink:href="tgen-20241231.xsd#tgen_OperatingLeaseAssetsAndLiabilitiesLesseeAbstract"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LesseeLeaseDescriptionLineItems_ee878094-d153-428d-b8ca-f530ab67426e" xlink:to="loc_tgen_OperatingLeaseAssetsAndLiabilitiesLesseeAbstract_115eec22-6a4f-420f-8f76-1133e3183f53" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseRightOfUseAsset_d81362dd-67f6-476f-827e-e094a10e5943" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseRightOfUseAsset"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tgen_OperatingLeaseAssetsAndLiabilitiesLesseeAbstract_115eec22-6a4f-420f-8f76-1133e3183f53" xlink:to="loc_us-gaap_OperatingLeaseRightOfUseAsset_d81362dd-67f6-476f-827e-e094a10e5943" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseLiabilityCurrent_25f2647f-6dbd-4d49-bf16-c2c8d86891f8" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseLiabilityCurrent"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tgen_OperatingLeaseAssetsAndLiabilitiesLesseeAbstract_115eec22-6a4f-420f-8f76-1133e3183f53" xlink:to="loc_us-gaap_OperatingLeaseLiabilityCurrent_25f2647f-6dbd-4d49-bf16-c2c8d86891f8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseLiabilityNoncurrent_9d4073b3-c34b-4a77-9d71-d9710a822107" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tgen_OperatingLeaseAssetsAndLiabilitiesLesseeAbstract_115eec22-6a4f-420f-8f76-1133e3183f53" xlink:to="loc_us-gaap_OperatingLeaseLiabilityNoncurrent_9d4073b3-c34b-4a77-9d71-d9710a822107" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseLiability_bbcd90b0-4ff5-4e6f-92c1-1e1ac6eb2e23" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseLiability"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tgen_OperatingLeaseAssetsAndLiabilitiesLesseeAbstract_115eec22-6a4f-420f-8f76-1133e3183f53" xlink:to="loc_us-gaap_OperatingLeaseLiability_bbcd90b0-4ff5-4e6f-92c1-1e1ac6eb2e23" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinanceLeaseRightOfUseAsset_d495ffd4-e90b-42c0-a245-f6984a63998d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FinanceLeaseRightOfUseAsset"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LesseeLeaseDescriptionLineItems_ee878094-d153-428d-b8ca-f530ab67426e" xlink:to="loc_us-gaap_FinanceLeaseRightOfUseAsset_d495ffd4-e90b-42c0-a245-f6984a63998d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinanceLeaseLiabilityCurrent_18e0d8de-0513-4366-9107-961de453ecc6" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FinanceLeaseLiabilityCurrent"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LesseeLeaseDescriptionLineItems_ee878094-d153-428d-b8ca-f530ab67426e" xlink:to="loc_us-gaap_FinanceLeaseLiabilityCurrent_18e0d8de-0513-4366-9107-961de453ecc6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinanceLeaseLiabilityNoncurrent_d62fba54-1a17-4545-9c8a-a44e0f1c0e99" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FinanceLeaseLiabilityNoncurrent"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LesseeLeaseDescriptionLineItems_ee878094-d153-428d-b8ca-f530ab67426e" xlink:to="loc_us-gaap_FinanceLeaseLiabilityNoncurrent_d62fba54-1a17-4545-9c8a-a44e0f1c0e99" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinanceLeaseLiability_46e7123b-2a5d-4326-a1e7-34ab60a66bd9" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FinanceLeaseLiability"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LesseeLeaseDescriptionLineItems_ee878094-d153-428d-b8ca-f530ab67426e" xlink:to="loc_us-gaap_FinanceLeaseLiability_46e7123b-2a5d-4326-a1e7-34ab60a66bd9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/LeasesFutureMinimumLeaseCommitmentsDetails" xlink:type="simple" xlink:href="tgen-20241231.xsd#LeasesFutureMinimumLeaseCommitmentsDetails"/>
  <link:presentationLink xlink:role="http://www.tecogen.com/role/LeasesFutureMinimumLeaseCommitmentsDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LeasesAbstract_e480ce8b-5c82-41d3-9b52-9bb36a6f3bf9" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LeasesAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_f9386936-63d3-42c3-8b0d-9878137514e2" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LeasesAbstract_e480ce8b-5c82-41d3-9b52-9bb36a6f3bf9" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_f9386936-63d3-42c3-8b0d-9878137514e2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_e072f778-c4f5-4a8d-9d02-96346dd2833c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LeasesAbstract_e480ce8b-5c82-41d3-9b52-9bb36a6f3bf9" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_e072f778-c4f5-4a8d-9d02-96346dd2833c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree_755738f2-9e22-45b8-95e9-e7bfeb71cacc" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LeasesAbstract_e480ce8b-5c82-41d3-9b52-9bb36a6f3bf9" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree_755738f2-9e22-45b8-95e9-e7bfeb71cacc" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour_0b30d75e-69bc-498e-aa21-ac068b9359ba" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LeasesAbstract_e480ce8b-5c82-41d3-9b52-9bb36a6f3bf9" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour_0b30d75e-69bc-498e-aa21-ac068b9359ba" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive_2092abbf-81bc-4ee1-8e6d-25232c341aee" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LeasesAbstract_e480ce8b-5c82-41d3-9b52-9bb36a6f3bf9" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive_2092abbf-81bc-4ee1-8e6d-25232c341aee" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive_b1dfe7aa-7ad3-4ee7-8068-345581b2902f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LeasesAbstract_e480ce8b-5c82-41d3-9b52-9bb36a6f3bf9" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive_b1dfe7aa-7ad3-4ee7-8068-345581b2902f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_f98a290f-6154-4b4f-8883-aad141727700" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LeasesAbstract_e480ce8b-5c82-41d3-9b52-9bb36a6f3bf9" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_f98a290f-6154-4b4f-8883-aad141727700" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount_2b7eafeb-a947-46e7-b4d5-ee9196b706f3" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LeasesAbstract_e480ce8b-5c82-41d3-9b52-9bb36a6f3bf9" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount_2b7eafeb-a947-46e7-b4d5-ee9196b706f3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseLiability_2ded387e-9a3d-4946-9c1f-1ea2d142762b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseLiability"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LeasesAbstract_e480ce8b-5c82-41d3-9b52-9bb36a6f3bf9" xlink:to="loc_us-gaap_OperatingLeaseLiability_2ded387e-9a3d-4946-9c1f-1ea2d142762b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinanceLeaseLiabilityPaymentsDueNextTwelveMonths_bdaeb96c-8389-46e8-9389-2a044de6cb92" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FinanceLeaseLiabilityPaymentsDueNextTwelveMonths"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LeasesAbstract_e480ce8b-5c82-41d3-9b52-9bb36a6f3bf9" xlink:to="loc_us-gaap_FinanceLeaseLiabilityPaymentsDueNextTwelveMonths_bdaeb96c-8389-46e8-9389-2a044de6cb92" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinanceLeaseLiabilityPaymentsDueYearTwo_edfc72ca-ef54-43d6-b8f8-b962d7c67b1a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FinanceLeaseLiabilityPaymentsDueYearTwo"/>
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LeasesAbstract_e480ce8b-5c82-41d3-9b52-9bb36a6f3bf9" xlink:to="loc_us-gaap_FinanceLeaseLiabilityPaymentsDueYearTwo_edfc72ca-ef54-43d6-b8f8-b962d7c67b1a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinanceLeaseLiabilityPaymentsDueYearThree_79eb5b35-da63-439e-8574-7815b83b2108" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FinanceLeaseLiabilityPaymentsDueYearThree"/>
    <link:presentationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LeasesAbstract_e480ce8b-5c82-41d3-9b52-9bb36a6f3bf9" xlink:to="loc_us-gaap_FinanceLeaseLiabilityPaymentsDueYearThree_79eb5b35-da63-439e-8574-7815b83b2108" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinanceLeaseLiabilityPaymentsDueYearFour_44250b76-f817-4c00-8655-8ef41dbcecd8" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FinanceLeaseLiabilityPaymentsDueYearFour"/>
    <link:presentationArc order="13" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LeasesAbstract_e480ce8b-5c82-41d3-9b52-9bb36a6f3bf9" xlink:to="loc_us-gaap_FinanceLeaseLiabilityPaymentsDueYearFour_44250b76-f817-4c00-8655-8ef41dbcecd8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinanceLeaseLiabilityPaymentsDueYearFive_e8cc0069-ab72-4e81-aaee-9ad481fe4120" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FinanceLeaseLiabilityPaymentsDueYearFive"/>
    <link:presentationArc order="14" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LeasesAbstract_e480ce8b-5c82-41d3-9b52-9bb36a6f3bf9" xlink:to="loc_us-gaap_FinanceLeaseLiabilityPaymentsDueYearFive_e8cc0069-ab72-4e81-aaee-9ad481fe4120" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinanceLeaseLiabilityPaymentsDueAfterYearFive_75e51330-5fae-40dd-a203-f9ba6f6f74cb" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FinanceLeaseLiabilityPaymentsDueAfterYearFive"/>
    <link:presentationArc order="15" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LeasesAbstract_e480ce8b-5c82-41d3-9b52-9bb36a6f3bf9" xlink:to="loc_us-gaap_FinanceLeaseLiabilityPaymentsDueAfterYearFive_75e51330-5fae-40dd-a203-f9ba6f6f74cb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinanceLeaseLiabilityPaymentsDue_d40bfb4b-ea8c-4264-8a51-816f24dfac22" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FinanceLeaseLiabilityPaymentsDue"/>
    <link:presentationArc order="16" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LeasesAbstract_e480ce8b-5c82-41d3-9b52-9bb36a6f3bf9" xlink:to="loc_us-gaap_FinanceLeaseLiabilityPaymentsDue_d40bfb4b-ea8c-4264-8a51-816f24dfac22" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinanceLeaseLiabilityUndiscountedExcessAmount_0dbd03a6-9bff-4baf-a14a-7ecf8251d430" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FinanceLeaseLiabilityUndiscountedExcessAmount"/>
    <link:presentationArc order="17" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LeasesAbstract_e480ce8b-5c82-41d3-9b52-9bb36a6f3bf9" xlink:to="loc_us-gaap_FinanceLeaseLiabilityUndiscountedExcessAmount_0dbd03a6-9bff-4baf-a14a-7ecf8251d430" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinanceLeaseLiability_4e8b51ae-5364-48d8-b003-b2dca8779d3c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FinanceLeaseLiability"/>
    <link:presentationArc order="18" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LeasesAbstract_e480ce8b-5c82-41d3-9b52-9bb36a6f3bf9" xlink:to="loc_us-gaap_FinanceLeaseLiability_4e8b51ae-5364-48d8-b003-b2dca8779d3c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_OperatingAndFinanceLeaseLiabilityToBePaidYearOne_2e514c5d-fec7-4a1e-a4af-bf5c9e7cb25e" xlink:href="tgen-20241231.xsd#tgen_OperatingAndFinanceLeaseLiabilityToBePaidYearOne"/>
    <link:presentationArc order="19" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LeasesAbstract_e480ce8b-5c82-41d3-9b52-9bb36a6f3bf9" xlink:to="loc_tgen_OperatingAndFinanceLeaseLiabilityToBePaidYearOne_2e514c5d-fec7-4a1e-a4af-bf5c9e7cb25e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_OperatingAndFinanceLeaseLiabilityToBePaidYearTwo_8571c157-a422-40a8-b68d-67e8ac0c2fb1" xlink:href="tgen-20241231.xsd#tgen_OperatingAndFinanceLeaseLiabilityToBePaidYearTwo"/>
    <link:presentationArc order="20" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LeasesAbstract_e480ce8b-5c82-41d3-9b52-9bb36a6f3bf9" xlink:to="loc_tgen_OperatingAndFinanceLeaseLiabilityToBePaidYearTwo_8571c157-a422-40a8-b68d-67e8ac0c2fb1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_OperatingAndFinanceLeaseLiabilityToBePaidYearThree_4e1732aa-0eda-4d58-9aa8-3fc768a85880" xlink:href="tgen-20241231.xsd#tgen_OperatingAndFinanceLeaseLiabilityToBePaidYearThree"/>
    <link:presentationArc order="21" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LeasesAbstract_e480ce8b-5c82-41d3-9b52-9bb36a6f3bf9" xlink:to="loc_tgen_OperatingAndFinanceLeaseLiabilityToBePaidYearThree_4e1732aa-0eda-4d58-9aa8-3fc768a85880" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_OperatingAndFinanceLeaseLiabilityToBePaidYearFour_56379376-bef3-477c-9d5c-beb74a5016a6" xlink:href="tgen-20241231.xsd#tgen_OperatingAndFinanceLeaseLiabilityToBePaidYearFour"/>
    <link:presentationArc order="22" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LeasesAbstract_e480ce8b-5c82-41d3-9b52-9bb36a6f3bf9" xlink:to="loc_tgen_OperatingAndFinanceLeaseLiabilityToBePaidYearFour_56379376-bef3-477c-9d5c-beb74a5016a6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_OperatingAndFinanceLeaseLiabilityToBePaidYearFive_abe572f0-97e5-4a79-9897-9393573373ad" xlink:href="tgen-20241231.xsd#tgen_OperatingAndFinanceLeaseLiabilityToBePaidYearFive"/>
    <link:presentationArc order="23" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LeasesAbstract_e480ce8b-5c82-41d3-9b52-9bb36a6f3bf9" xlink:to="loc_tgen_OperatingAndFinanceLeaseLiabilityToBePaidYearFive_abe572f0-97e5-4a79-9897-9393573373ad" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_OperatingAndFinanceLeaseLiabilityToBePaidAfterYearFive_ed438206-3ae1-478e-9265-d08eeddd2620" xlink:href="tgen-20241231.xsd#tgen_OperatingAndFinanceLeaseLiabilityToBePaidAfterYearFive"/>
    <link:presentationArc order="24" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LeasesAbstract_e480ce8b-5c82-41d3-9b52-9bb36a6f3bf9" xlink:to="loc_tgen_OperatingAndFinanceLeaseLiabilityToBePaidAfterYearFive_ed438206-3ae1-478e-9265-d08eeddd2620" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_OperatingAndFinanceLeaseLiabilityToBePaid_e9cb09f5-b3cd-4d6e-bac7-7996b7750de9" xlink:href="tgen-20241231.xsd#tgen_OperatingAndFinanceLeaseLiabilityToBePaid"/>
    <link:presentationArc order="25" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LeasesAbstract_e480ce8b-5c82-41d3-9b52-9bb36a6f3bf9" xlink:to="loc_tgen_OperatingAndFinanceLeaseLiabilityToBePaid_e9cb09f5-b3cd-4d6e-bac7-7996b7750de9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_OperatingAndFinanceLeaseLiabilityUndiscountedExcessAmount_a2fd7db4-598a-4406-bb97-176cde7ace8b" xlink:href="tgen-20241231.xsd#tgen_OperatingAndFinanceLeaseLiabilityUndiscountedExcessAmount"/>
    <link:presentationArc order="26" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LeasesAbstract_e480ce8b-5c82-41d3-9b52-9bb36a6f3bf9" xlink:to="loc_tgen_OperatingAndFinanceLeaseLiabilityUndiscountedExcessAmount_a2fd7db4-598a-4406-bb97-176cde7ace8b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_OperatingAndFinanceLeaseLiability_cd93a492-7ac0-4d9d-b305-ca9adecb078c" xlink:href="tgen-20241231.xsd#tgen_OperatingAndFinanceLeaseLiability"/>
    <link:presentationArc order="27" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LeasesAbstract_e480ce8b-5c82-41d3-9b52-9bb36a6f3bf9" xlink:to="loc_tgen_OperatingAndFinanceLeaseLiability_cd93a492-7ac0-4d9d-b305-ca9adecb078c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/StockholdersequityCommonStockandReceivablefromShareholderDetails" xlink:type="simple" xlink:href="tgen-20241231.xsd#StockholdersequityCommonStockandReceivablefromShareholderDetails"/>
  <link:presentationLink xlink:role="http://www.tecogen.com/role/StockholdersequityCommonStockandReceivablefromShareholderDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquityAbstract_a4acaabc-0dd7-41ce-b370-bbd791138801" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EquityAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockSharesOutstanding_1a7b9427-46e5-4085-a2a7-0753a72af10f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockSharesOutstanding"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquityAbstract_a4acaabc-0dd7-41ce-b370-bbd791138801" xlink:to="loc_us-gaap_CommonStockSharesOutstanding_1a7b9427-46e5-4085-a2a7-0753a72af10f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PreferredStockSharesAuthorized_5f0b1b94-471f-47b7-8ecb-4535ff6a8df4" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PreferredStockSharesAuthorized"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquityAbstract_a4acaabc-0dd7-41ce-b370-bbd791138801" xlink:to="loc_us-gaap_PreferredStockSharesAuthorized_5f0b1b94-471f-47b7-8ecb-4535ff6a8df4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PreferredStockSharesIssued_44fbfb9d-b1c0-40bc-969d-1979480ca274" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PreferredStockSharesIssued"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquityAbstract_a4acaabc-0dd7-41ce-b370-bbd791138801" xlink:to="loc_us-gaap_PreferredStockSharesIssued_44fbfb9d-b1c0-40bc-969d-1979480ca274" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PreferredStockSharesOutstanding_c589f475-f90f-4d46-8d3e-a244fa379a92" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PreferredStockSharesOutstanding"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquityAbstract_a4acaabc-0dd7-41ce-b370-bbd791138801" xlink:to="loc_us-gaap_PreferredStockSharesOutstanding_c589f475-f90f-4d46-8d3e-a244fa379a92" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/StockholdersequityStockBasedCompensationDetails" xlink:type="simple" xlink:href="tgen-20241231.xsd#StockholdersequityStockBasedCompensationDetails"/>
  <link:presentationLink xlink:role="http://www.tecogen.com/role/StockholdersequityStockBasedCompensationDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquityAbstract_2f06dd8d-e6bb-49f4-aa6e-0eb72fc0d272" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EquityAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_d7b6cac7-3055-49df-9ad3-d6c5586a689c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquityAbstract_2f06dd8d-e6bb-49f4-aa6e-0eb72fc0d272" xlink:to="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_d7b6cac7-3055-49df-9ad3-d6c5586a689c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ConsolidatedEntitiesAxis_983d9bd3-13cf-42ef-8c3b-8ab22a62cf2c" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ConsolidatedEntitiesAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_d7b6cac7-3055-49df-9ad3-d6c5586a689c" xlink:to="loc_srt_ConsolidatedEntitiesAxis_983d9bd3-13cf-42ef-8c3b-8ab22a62cf2c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ConsolidatedEntitiesDomain_70ff9604-5384-4fdd-bc60-b993000bf46f" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ConsolidatedEntitiesDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ConsolidatedEntitiesAxis_983d9bd3-13cf-42ef-8c3b-8ab22a62cf2c" xlink:to="loc_srt_ConsolidatedEntitiesDomain_70ff9604-5384-4fdd-bc60-b993000bf46f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ParentCompanyMember_d105ebc2-27ef-4660-9547-b8cad387e663" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ParentCompanyMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ConsolidatedEntitiesDomain_70ff9604-5384-4fdd-bc60-b993000bf46f" xlink:to="loc_srt_ParentCompanyMember_d105ebc2-27ef-4660-9547-b8cad387e663" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PlanNameAxis_fb7043e7-c209-4526-b056-5c082cd7886c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PlanNameAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_d7b6cac7-3055-49df-9ad3-d6c5586a689c" xlink:to="loc_us-gaap_PlanNameAxis_fb7043e7-c209-4526-b056-5c082cd7886c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PlanNameDomain_d430e1de-484a-4ea7-b6cd-12eb31838997" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PlanNameDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PlanNameAxis_fb7043e7-c209-4526-b056-5c082cd7886c" xlink:to="loc_us-gaap_PlanNameDomain_d430e1de-484a-4ea7-b6cd-12eb31838997" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AmendnedStockOptionAndIncentivePlan2006Member_32f3b89c-0c28-4760-94ae-dca15542993a" xlink:href="tgen-20241231.xsd#tgen_AmendnedStockOptionAndIncentivePlan2006Member"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PlanNameDomain_d430e1de-484a-4ea7-b6cd-12eb31838997" xlink:to="loc_tgen_AmendnedStockOptionAndIncentivePlan2006Member_32f3b89c-0c28-4760-94ae-dca15542993a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_A2022StockIncentivePlanMember_2e57c703-aa93-4260-9387-b5c129c4525e" xlink:href="tgen-20241231.xsd#tgen_A2022StockIncentivePlanMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PlanNameDomain_d430e1de-484a-4ea7-b6cd-12eb31838997" xlink:to="loc_tgen_A2022StockIncentivePlanMember_2e57c703-aa93-4260-9387-b5c129c4525e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AwardTypeAxis_66c5d044-0f2b-4f6b-b5e4-81135b58085a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AwardTypeAxis"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_d7b6cac7-3055-49df-9ad3-d6c5586a689c" xlink:to="loc_us-gaap_AwardTypeAxis_66c5d044-0f2b-4f6b-b5e4-81135b58085a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_bc5835d8-bf6f-4ca6-8d16-e7a79e73b7be" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AwardTypeAxis_66c5d044-0f2b-4f6b-b5e4-81135b58085a" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_bc5835d8-bf6f-4ca6-8d16-e7a79e73b7be" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeStockOptionMember_bb2708e2-d605-480e-8a79-f4fd1d7a38c9" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeStockOptionMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_bc5835d8-bf6f-4ca6-8d16-e7a79e73b7be" xlink:to="loc_us-gaap_EmployeeStockOptionMember_bb2708e2-d605-480e-8a79-f4fd1d7a38c9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_TitleOfIndividualAxis_ddd7c0e2-66f3-4e06-b828-a367f89fa143" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_TitleOfIndividualAxis"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_d7b6cac7-3055-49df-9ad3-d6c5586a689c" xlink:to="loc_srt_TitleOfIndividualAxis_ddd7c0e2-66f3-4e06-b828-a367f89fa143" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_TitleOfIndividualWithRelationshipToEntityDomain_b4838443-f653-43af-bcac-853d328fcd2a" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_TitleOfIndividualWithRelationshipToEntityDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_TitleOfIndividualAxis_ddd7c0e2-66f3-4e06-b828-a367f89fa143" xlink:to="loc_srt_TitleOfIndividualWithRelationshipToEntityDomain_b4838443-f653-43af-bcac-853d328fcd2a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_DirectorMember_8cf99a27-e5eb-4d4c-ad01-927b975728ba" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_DirectorMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_TitleOfIndividualWithRelationshipToEntityDomain_b4838443-f653-43af-bcac-853d328fcd2a" xlink:to="loc_srt_DirectorMember_8cf99a27-e5eb-4d4c-ad01-927b975728ba" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeAxis_e1e6476f-87c9-40e0-8c6d-e5757dc241d6" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeAxis"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_d7b6cac7-3055-49df-9ad3-d6c5586a689c" xlink:to="loc_srt_RangeAxis_e1e6476f-87c9-40e0-8c6d-e5757dc241d6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeMember_a62f1916-0ddc-43d7-b2dc-9bd77ec874e2" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RangeAxis_e1e6476f-87c9-40e0-8c6d-e5757dc241d6" xlink:to="loc_srt_RangeMember_a62f1916-0ddc-43d7-b2dc-9bd77ec874e2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MinimumMember_99582ffb-d437-4eaa-8570-f0bd02d67720" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MinimumMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RangeMember_a62f1916-0ddc-43d7-b2dc-9bd77ec874e2" xlink:to="loc_srt_MinimumMember_99582ffb-d437-4eaa-8570-f0bd02d67720" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MaximumMember_1dd768b6-e9df-4f1f-9a2b-880a9b787612" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MaximumMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RangeMember_a62f1916-0ddc-43d7-b2dc-9bd77ec874e2" xlink:to="loc_srt_MaximumMember_1dd768b6-e9df-4f1f-9a2b-880a9b787612" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_d0b0fafc-5d65-4222-8c4e-b14d6ec9446e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_d7b6cac7-3055-49df-9ad3-d6c5586a689c" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_d0b0fafc-5d65-4222-8c4e-b14d6ec9446e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockCapitalSharesReservedForFutureIssuance_e591fa04-2351-4776-8d45-7787117f337f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockCapitalSharesReservedForFutureIssuance"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_d0b0fafc-5d65-4222-8c4e-b14d6ec9446e" xlink:to="loc_us-gaap_CommonStockCapitalSharesReservedForFutureIssuance_e591fa04-2351-4776-8d45-7787117f337f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant_f9fa2fa8-7ad3-4e12-8329-2f65c8c365d7" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_d0b0fafc-5d65-4222-8c4e-b14d6ec9446e" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant_f9fa2fa8-7ad3-4e12-8329-2f65c8c365d7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross_992b0eca-baa0-40a1-8b1d-f792f292ce2f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_d0b0fafc-5d65-4222-8c4e-b14d6ec9446e" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross_992b0eca-baa0-40a1-8b1d-f792f292ce2f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod_53855633-0dc7-4049-91d3-28f3e70f7606" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_d0b0fafc-5d65-4222-8c4e-b14d6ec9446e" xlink:to="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod_53855633-0dc7-4049-91d3-28f3e70f7606" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantedInPeriodExercisePrice_0d59a2be-630d-4d12-8407-be2770972996" xlink:href="tgen-20241231.xsd#tgen_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantedInPeriodExercisePrice"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_d0b0fafc-5d65-4222-8c4e-b14d6ec9446e" xlink:to="loc_tgen_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantedInPeriodExercisePrice_0d59a2be-630d-4d12-8407-be2770972996" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_5c91178e-fb45-4a51-b27a-2667d13cef80" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_d0b0fafc-5d65-4222-8c4e-b14d6ec9446e" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_5c91178e-fb45-4a51-b27a-2667d13cef80" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansGrantedExercisePriceRangeLowerRangeLimit_b82740d4-31d1-4b20-906f-ec16c13c4007" xlink:href="tgen-20241231.xsd#tgen_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansGrantedExercisePriceRangeLowerRangeLimit"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_d0b0fafc-5d65-4222-8c4e-b14d6ec9446e" xlink:to="loc_tgen_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansGrantedExercisePriceRangeLowerRangeLimit_b82740d4-31d1-4b20-906f-ec16c13c4007" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansGrantedExercisePriceRangeUpperRangeLimit_84d98f00-34a0-470c-a10b-662141c74af8" xlink:href="tgen-20241231.xsd#tgen_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansGrantedExercisePriceRangeUpperRangeLimit"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_d0b0fafc-5d65-4222-8c4e-b14d6ec9446e" xlink:to="loc_tgen_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansGrantedExercisePriceRangeUpperRangeLimit_84d98f00-34a0-470c-a10b-662141c74af8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1_e9f3ae37-b99c-426b-afef-875a48190090" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_d0b0fafc-5d65-4222-8c4e-b14d6ec9446e" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1_e9f3ae37-b99c-426b-afef-875a48190090" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1_87f06d9d-c278-498c-bb8d-cd68c5b54d8a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_d0b0fafc-5d65-4222-8c4e-b14d6ec9446e" xlink:to="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1_87f06d9d-c278-498c-bb8d-cd68c5b54d8a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_547ca845-d72b-43f8-adab-4fe8fb7a3840" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue"/>
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_d0b0fafc-5d65-4222-8c4e-b14d6ec9446e" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_547ca845-d72b-43f8-adab-4fe8fb7a3840" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_803dbfc3-63aa-45ba-804d-b5d02a9bd7cc" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised"/>
    <link:presentationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_d0b0fafc-5d65-4222-8c4e-b14d6ec9446e" xlink:to="loc_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_803dbfc3-63aa-45ba-804d-b5d02a9bd7cc" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfOptionsExercisedInPeriod_13eff386-8a0b-4ad4-bbb9-fc3884022073" xlink:href="tgen-20241231.xsd#tgen_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfOptionsExercisedInPeriod"/>
    <link:presentationArc order="13" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_d0b0fafc-5d65-4222-8c4e-b14d6ec9446e" xlink:to="loc_tgen_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfOptionsExercisedInPeriod_13eff386-8a0b-4ad4-bbb9-fc3884022073" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ShareBasedCompensationArrangementbyShareBasedPaymentAwardHistoricalForfeitureRate_5488d674-dedb-4489-8b10-bdd614e23ba3" xlink:href="tgen-20241231.xsd#tgen_ShareBasedCompensationArrangementbyShareBasedPaymentAwardHistoricalForfeitureRate"/>
    <link:presentationArc order="14" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_d0b0fafc-5d65-4222-8c4e-b14d6ec9446e" xlink:to="loc_tgen_ShareBasedCompensationArrangementbyShareBasedPaymentAwardHistoricalForfeitureRate_5488d674-dedb-4489-8b10-bdd614e23ba3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfPubliclyTradedCompaniesUsedInExpectedVolatilityRateCalculation_388b9e5a-c1c2-448f-beea-6ea3a59b4fc6" xlink:href="tgen-20241231.xsd#tgen_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfPubliclyTradedCompaniesUsedInExpectedVolatilityRateCalculation"/>
    <link:presentationArc order="15" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_d0b0fafc-5d65-4222-8c4e-b14d6ec9446e" xlink:to="loc_tgen_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfPubliclyTradedCompaniesUsedInExpectedVolatilityRateCalculation_388b9e5a-c1c2-448f-beea-6ea3a59b4fc6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AllocatedShareBasedCompensationExpense_e879085a-ddde-4087-8183-a409d4ca8e7f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AllocatedShareBasedCompensationExpense"/>
    <link:presentationArc order="16" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_d0b0fafc-5d65-4222-8c4e-b14d6ec9446e" xlink:to="loc_us-gaap_AllocatedShareBasedCompensationExpense_e879085a-ddde-4087-8183-a409d4ca8e7f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense_f8609bf2-65a2-4c94-a832-b8606d09ba9a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense"/>
    <link:presentationArc order="17" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_d0b0fafc-5d65-4222-8c4e-b14d6ec9446e" xlink:to="loc_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense_f8609bf2-65a2-4c94-a832-b8606d09ba9a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized_ff222b50-619a-4a33-ad1f-5b1501f7a15d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized"/>
    <link:presentationArc order="18" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_d0b0fafc-5d65-4222-8c4e-b14d6ec9446e" xlink:to="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized_ff222b50-619a-4a33-ad1f-5b1501f7a15d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1_21193f7a-4f2b-4a96-b84a-ba518277c522" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1"/>
    <link:presentationArc order="19" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_d0b0fafc-5d65-4222-8c4e-b14d6ec9446e" xlink:to="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1_21193f7a-4f2b-4a96-b84a-ba518277c522" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/StockholdersequityStockOptionActivityDetails" xlink:type="simple" xlink:href="tgen-20241231.xsd#StockholdersequityStockOptionActivityDetails"/>
  <link:presentationLink xlink:role="http://www.tecogen.com/role/StockholdersequityStockOptionActivityDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquityAbstract_8396fb49-99e6-474b-b642-e31c1cad0403" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EquityAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_0f769749-7cf5-4273-9cc4-be185d5af4d1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquityAbstract_8396fb49-99e6-474b-b642-e31c1cad0403" xlink:to="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_0f769749-7cf5-4273-9cc4-be185d5af4d1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AwardTypeAxis_968be914-9fc8-4d9b-aa29-29c37d7a79f1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AwardTypeAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_0f769749-7cf5-4273-9cc4-be185d5af4d1" xlink:to="loc_us-gaap_AwardTypeAxis_968be914-9fc8-4d9b-aa29-29c37d7a79f1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_f8f54a69-9709-454d-a60d-c1593e2c1cf5" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AwardTypeAxis_968be914-9fc8-4d9b-aa29-29c37d7a79f1" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_f8f54a69-9709-454d-a60d-c1593e2c1cf5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeStockOptionMember_ee623c52-dc1f-4732-8647-1b3fa528a9d0" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeStockOptionMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_f8f54a69-9709-454d-a60d-c1593e2c1cf5" xlink:to="loc_us-gaap_EmployeeStockOptionMember_ee623c52-dc1f-4732-8647-1b3fa528a9d0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ConsolidatedEntitiesAxis_fd88b187-fd79-4544-af93-e1d9824becf2" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ConsolidatedEntitiesAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_0f769749-7cf5-4273-9cc4-be185d5af4d1" xlink:to="loc_srt_ConsolidatedEntitiesAxis_fd88b187-fd79-4544-af93-e1d9824becf2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ConsolidatedEntitiesDomain_fa256bd1-f60a-4787-86bf-824340aafeee" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ConsolidatedEntitiesDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ConsolidatedEntitiesAxis_fd88b187-fd79-4544-af93-e1d9824becf2" xlink:to="loc_srt_ConsolidatedEntitiesDomain_fa256bd1-f60a-4787-86bf-824340aafeee" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ParentCompanyMember_3bf3a3e3-42d8-4626-a01f-58b7955839c5" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ParentCompanyMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ConsolidatedEntitiesDomain_fa256bd1-f60a-4787-86bf-824340aafeee" xlink:to="loc_srt_ParentCompanyMember_3bf3a3e3-42d8-4626-a01f-58b7955839c5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6c8e164b-7d5f-4975-8ee8-56d77612c575" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_0f769749-7cf5-4273-9cc4-be185d5af4d1" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6c8e164b-7d5f-4975-8ee8-56d77612c575" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward_0790933c-c742-4e5b-ae2b-1c6810b7414d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6c8e164b-7d5f-4975-8ee8-56d77612c575" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward_0790933c-c742-4e5b-ae2b-1c6810b7414d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_a09b3974-49eb-44bd-841a-878759777557" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward_0790933c-c742-4e5b-ae2b-1c6810b7414d" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_a09b3974-49eb-44bd-841a-878759777557" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross_e0e5e4c8-77ce-4523-9493-c042c24c0d78" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward_0790933c-c742-4e5b-ae2b-1c6810b7414d" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross_e0e5e4c8-77ce-4523-9493-c042c24c0d78" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsCancellationsAndForfeituresInPeriod_cceb1985-66ed-4cc5-ab73-2f12f39d15b1" xlink:href="tgen-20241231.xsd#tgen_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsCancellationsAndForfeituresInPeriod"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward_0790933c-c742-4e5b-ae2b-1c6810b7414d" xlink:to="loc_tgen_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsCancellationsAndForfeituresInPeriod_cceb1985-66ed-4cc5-ab73-2f12f39d15b1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_7fcd6edf-f026-4a97-a156-954a5d3e5f72" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward_0790933c-c742-4e5b-ae2b-1c6810b7414d" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_7fcd6edf-f026-4a97-a156-954a5d3e5f72" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_b173cf0f-5402-43ad-824a-33b3f02e5dca" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6c8e164b-7d5f-4975-8ee8-56d77612c575" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_b173cf0f-5402-43ad-824a-33b3f02e5dca" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber_b6e48ca5-536e-484a-bfef-fbc52ce888e3" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6c8e164b-7d5f-4975-8ee8-56d77612c575" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber_b6e48ca5-536e-484a-bfef-fbc52ce888e3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward_1f72056e-5e50-4511-8228-3447d512aabd" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6c8e164b-7d5f-4975-8ee8-56d77612c575" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward_1f72056e-5e50-4511-8228-3447d512aabd" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_55f04545-3aee-4214-93f4-ea559f89d1ef" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward_1f72056e-5e50-4511-8228-3447d512aabd" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_55f04545-3aee-4214-93f4-ea559f89d1ef" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice_a3e24506-5145-4d58-9e2f-cdd8c6222a5a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward_1f72056e-5e50-4511-8228-3447d512aabd" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice_a3e24506-5145-4d58-9e2f-cdd8c6222a5a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice_431f6d36-8f5d-42f8-a8d0-d3bef24215db" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward_1f72056e-5e50-4511-8228-3447d512aabd" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice_431f6d36-8f5d-42f8-a8d0-d3bef24215db" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsCancellationsAndForfeituresInPeriodWeightedAverageExercisePrice_0d111973-6d40-4ccd-972e-3e49117abc11" xlink:href="tgen-20241231.xsd#tgen_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsCancellationsAndForfeituresInPeriodWeightedAverageExercisePrice"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward_1f72056e-5e50-4511-8228-3447d512aabd" xlink:to="loc_tgen_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsCancellationsAndForfeituresInPeriodWeightedAverageExercisePrice_0d111973-6d40-4ccd-972e-3e49117abc11" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_fdbfa0e1-79f6-40ee-a969-cac66822c606" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward_1f72056e-5e50-4511-8228-3447d512aabd" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_fdbfa0e1-79f6-40ee-a969-cac66822c606" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice_4b9bcb35-9d8d-4ab5-a8ef-7e486ae89d13" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward_1f72056e-5e50-4511-8228-3447d512aabd" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice_4b9bcb35-9d8d-4ab5-a8ef-7e486ae89d13" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice_b5f7ff7b-4d32-4695-b689-61654bf7e90f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward_1f72056e-5e50-4511-8228-3447d512aabd" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice_b5f7ff7b-4d32-4695-b689-61654bf7e90f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAdditionalDisclosuresAbstract_9eaead35-c15c-4a26-8123-bc8ef18823df" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAdditionalDisclosuresAbstract"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6c8e164b-7d5f-4975-8ee8-56d77612c575" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAdditionalDisclosuresAbstract_9eaead35-c15c-4a26-8123-bc8ef18823df" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2_73662c26-d049-46ab-b860-c6453443837b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAdditionalDisclosuresAbstract_9eaead35-c15c-4a26-8123-bc8ef18823df" xlink:to="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2_73662c26-d049-46ab-b860-c6453443837b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue_692ac1b5-ded1-463d-b5db-9228de361044" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAdditionalDisclosuresAbstract_9eaead35-c15c-4a26-8123-bc8ef18823df" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue_692ac1b5-ded1-463d-b5db-9228de361044" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue_a968f96a-75fc-4482-ae04-19135f5309c0" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAdditionalDisclosuresAbstract_9eaead35-c15c-4a26-8123-bc8ef18823df" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue_a968f96a-75fc-4482-ae04-19135f5309c0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1_47c79cf5-d46c-4141-8a60-ed02016b1f8d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAdditionalDisclosuresAbstract_9eaead35-c15c-4a26-8123-bc8ef18823df" xlink:to="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1_47c79cf5-d46c-4141-8a60-ed02016b1f8d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue_6c624aa6-b4d6-4351-85e3-2a4ec77a3326" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAdditionalDisclosuresAbstract_9eaead35-c15c-4a26-8123-bc8ef18823df" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue_6c624aa6-b4d6-4351-85e3-2a4ec77a3326" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ExercisePricePerShareAbstract_a21ae250-ea5a-40e7-80e6-bb222b4dc14a" xlink:href="tgen-20241231.xsd#tgen_ExercisePricePerShareAbstract"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6c8e164b-7d5f-4975-8ee8-56d77612c575" xlink:to="loc_tgen_ExercisePricePerShareAbstract_a21ae250-ea5a-40e7-80e6-bb222b4dc14a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit_94ed4354-a696-409b-8158-e0f25ac9a734" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tgen_ExercisePricePerShareAbstract_a21ae250-ea5a-40e7-80e6-bb222b4dc14a" xlink:to="loc_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit_94ed4354-a696-409b-8158-e0f25ac9a734" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit_7353d135-4f04-4d12-87bf-7fb91a4d32e1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tgen_ExercisePricePerShareAbstract_a21ae250-ea5a-40e7-80e6-bb222b4dc14a" xlink:to="loc_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit_7353d135-4f04-4d12-87bf-7fb91a4d32e1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansGrantedExercisePriceRangeLowerRangeLimit_21065cc4-b5fe-40e7-9cfd-5d7fcab087a5" xlink:href="tgen-20241231.xsd#tgen_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansGrantedExercisePriceRangeLowerRangeLimit"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tgen_ExercisePricePerShareAbstract_a21ae250-ea5a-40e7-80e6-bb222b4dc14a" xlink:to="loc_tgen_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansGrantedExercisePriceRangeLowerRangeLimit_21065cc4-b5fe-40e7-9cfd-5d7fcab087a5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansGrantedExercisePriceRangeUpperRangeLimit_b6ca5d40-cb46-4ab9-a9b3-7b3929ef3e4f" xlink:href="tgen-20241231.xsd#tgen_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansGrantedExercisePriceRangeUpperRangeLimit"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tgen_ExercisePricePerShareAbstract_a21ae250-ea5a-40e7-80e6-bb222b4dc14a" xlink:to="loc_tgen_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansGrantedExercisePriceRangeUpperRangeLimit_b6ca5d40-cb46-4ab9-a9b3-7b3929ef3e4f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ShareBasedPaymentArrangementOptionExercisesInPeriodExercisePricePerShare_dd153027-d429-40ec-9624-024fe5171b67" xlink:href="tgen-20241231.xsd#tgen_ShareBasedPaymentArrangementOptionExercisesInPeriodExercisePricePerShare"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tgen_ExercisePricePerShareAbstract_a21ae250-ea5a-40e7-80e6-bb222b4dc14a" xlink:to="loc_tgen_ShareBasedPaymentArrangementOptionExercisesInPeriodExercisePricePerShare_dd153027-d429-40ec-9624-024fe5171b67" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansCancelledAndForfeitedExercisePriceRangeLowerRangeLimit_d8b6b9cd-d27d-4750-a786-0965ac61818a" xlink:href="tgen-20241231.xsd#tgen_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansCancelledAndForfeitedExercisePriceRangeLowerRangeLimit"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tgen_ExercisePricePerShareAbstract_a21ae250-ea5a-40e7-80e6-bb222b4dc14a" xlink:to="loc_tgen_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansCancelledAndForfeitedExercisePriceRangeLowerRangeLimit_d8b6b9cd-d27d-4750-a786-0965ac61818a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansCancelledAndForfeitedExercisePriceRangeUpperRangeLimit_2bf90dbd-9a01-490d-9022-14c696494d1d" xlink:href="tgen-20241231.xsd#tgen_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansCancelledAndForfeitedExercisePriceRangeUpperRangeLimit"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tgen_ExercisePricePerShareAbstract_a21ae250-ea5a-40e7-80e6-bb222b4dc14a" xlink:to="loc_tgen_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansCancelledAndForfeitedExercisePriceRangeUpperRangeLimit_2bf90dbd-9a01-490d-9022-14c696494d1d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/StockholdersequityWeightedAverageAssumptionsDetails" xlink:type="simple" xlink:href="tgen-20241231.xsd#StockholdersequityWeightedAverageAssumptionsDetails"/>
  <link:presentationLink xlink:role="http://www.tecogen.com/role/StockholdersequityWeightedAverageAssumptionsDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquityAbstract_5cf70048-3629-4162-bb5c-8c35c3fbdc00" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EquityAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_753d0021-d900-4ce7-a9e1-7a85a46029b3" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquityAbstract_5cf70048-3629-4162-bb5c-8c35c3fbdc00" xlink:to="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_753d0021-d900-4ce7-a9e1-7a85a46029b3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ConsolidatedEntitiesAxis_649029b0-c17c-400b-9a5f-e88a4d90cfbc" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ConsolidatedEntitiesAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_753d0021-d900-4ce7-a9e1-7a85a46029b3" xlink:to="loc_srt_ConsolidatedEntitiesAxis_649029b0-c17c-400b-9a5f-e88a4d90cfbc" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ConsolidatedEntitiesDomain_e20c476b-bf6f-4df5-92bb-df6f24933210" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ConsolidatedEntitiesDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ConsolidatedEntitiesAxis_649029b0-c17c-400b-9a5f-e88a4d90cfbc" xlink:to="loc_srt_ConsolidatedEntitiesDomain_e20c476b-bf6f-4df5-92bb-df6f24933210" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ParentCompanyMember_96c8edcf-c30d-423e-99ee-f651f5c6626a" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ParentCompanyMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ConsolidatedEntitiesDomain_e20c476b-bf6f-4df5-92bb-df6f24933210" xlink:to="loc_srt_ParentCompanyMember_96c8edcf-c30d-423e-99ee-f651f5c6626a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AwardTypeAxis_3668624e-674c-4255-aae9-92de1f01c473" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AwardTypeAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_753d0021-d900-4ce7-a9e1-7a85a46029b3" xlink:to="loc_us-gaap_AwardTypeAxis_3668624e-674c-4255-aae9-92de1f01c473" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_02431dd2-67bb-437c-8a54-e9dfdc09cf6a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AwardTypeAxis_3668624e-674c-4255-aae9-92de1f01c473" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_02431dd2-67bb-437c-8a54-e9dfdc09cf6a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeStockOptionMember_b0b49050-ad26-45da-af03-6be4a38b00b4" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeStockOptionMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_02431dd2-67bb-437c-8a54-e9dfdc09cf6a" xlink:to="loc_us-gaap_EmployeeStockOptionMember_b0b49050-ad26-45da-af03-6be4a38b00b4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a4274df0-b524-491e-82eb-668617b9bded" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_753d0021-d900-4ce7-a9e1-7a85a46029b3" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a4274df0-b524-491e-82eb-668617b9bded" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1_a3937067-e7a1-48ae-a525-f3648948c2ff" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a4274df0-b524-491e-82eb-668617b9bded" xlink:to="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1_a3937067-e7a1-48ae-a525-f3648948c2ff" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate_03b91622-442e-4a6c-a7d4-ad6fac338bef" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a4274df0-b524-491e-82eb-668617b9bded" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate_03b91622-442e-4a6c-a7d4-ad6fac338bef" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate_5ece1005-4ea4-4ff8-97b2-3f8afd210487" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a4274df0-b524-491e-82eb-668617b9bded" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate_5ece1005-4ea4-4ff8-97b2-3f8afd210487" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate_d688b4ab-12d5-44c5-9ce9-9c54bc98ef3a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a4274df0-b524-491e-82eb-668617b9bded" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate_d688b4ab-12d5-44c5-9ce9-9c54bc98ef3a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/FairValueMeasurementsScheduleofAssetReportedinConsolidatedBalanceSheetMeasuredatFairValueonRecurringBasisDetails" xlink:type="simple" xlink:href="tgen-20241231.xsd#FairValueMeasurementsScheduleofAssetReportedinConsolidatedBalanceSheetMeasuredatFairValueonRecurringBasisDetails"/>
  <link:presentationLink xlink:role="http://www.tecogen.com/role/FairValueMeasurementsScheduleofAssetReportedinConsolidatedBalanceSheetMeasuredatFairValueonRecurringBasisDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueDisclosuresAbstract_3c061ccd-cdd4-47e9-8b9e-9e225df9da2b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueDisclosuresAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_cd0944a2-9498-431d-9ee8-dd6bae907b1f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueDisclosuresAbstract_3c061ccd-cdd4-47e9-8b9e-9e225df9da2b" xlink:to="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_cd0944a2-9498-431d-9ee8-dd6bae907b1f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_LegalEntityAxis_e2147de9-b99d-4ed5-be5d-1022b6dd8e84" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_LegalEntityAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_cd0944a2-9498-431d-9ee8-dd6bae907b1f" xlink:to="loc_dei_LegalEntityAxis_e2147de9-b99d-4ed5-be5d-1022b6dd8e84" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityDomain_4e3716c1-3ae2-4f01-9219-b26b360b8fab" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_LegalEntityAxis_e2147de9-b99d-4ed5-be5d-1022b6dd8e84" xlink:to="loc_dei_EntityDomain_4e3716c1-3ae2-4f01-9219-b26b360b8fab" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_EurositePowerIncMember_f78eb9e7-c99a-46a4-b971-6c1945ac9097" xlink:href="tgen-20241231.xsd#tgen_EurositePowerIncMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_EntityDomain_4e3716c1-3ae2-4f01-9219-b26b360b8fab" xlink:to="loc_tgen_EurositePowerIncMember_f78eb9e7-c99a-46a4-b971-6c1945ac9097" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueByMeasurementBasisAxis_66a8731e-b5d9-436f-9c22-6a9d6910fd72" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueByMeasurementBasisAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_cd0944a2-9498-431d-9ee8-dd6bae907b1f" xlink:to="loc_us-gaap_FairValueByMeasurementBasisAxis_66a8731e-b5d9-436f-9c22-6a9d6910fd72" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueDisclosureItemAmountsDomain_7a79c864-feac-46c9-a0b1-a3f01a00dc6a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueDisclosureItemAmountsDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueByMeasurementBasisAxis_66a8731e-b5d9-436f-9c22-6a9d6910fd72" xlink:to="loc_us-gaap_FairValueDisclosureItemAmountsDomain_7a79c864-feac-46c9-a0b1-a3f01a00dc6a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PortionAtFairValueFairValueDisclosureMember_4eed0195-ce96-40cc-be42-d8d8e9245a2a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PortionAtFairValueFairValueDisclosureMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueDisclosureItemAmountsDomain_7a79c864-feac-46c9-a0b1-a3f01a00dc6a" xlink:to="loc_us-gaap_PortionAtFairValueFairValueDisclosureMember_4eed0195-ce96-40cc-be42-d8d8e9245a2a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EstimateOfFairValueFairValueDisclosureMember_757a2e20-bdc1-470d-8c54-7dc8f43bbd19" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EstimateOfFairValueFairValueDisclosureMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PortionAtFairValueFairValueDisclosureMember_4eed0195-ce96-40cc-be42-d8d8e9245a2a" xlink:to="loc_us-gaap_EstimateOfFairValueFairValueDisclosureMember_757a2e20-bdc1-470d-8c54-7dc8f43bbd19" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueByMeasurementFrequencyAxis_e6f84d27-88f5-4c3f-9512-ce8ca5e5ad1d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueByMeasurementFrequencyAxis"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_cd0944a2-9498-431d-9ee8-dd6bae907b1f" xlink:to="loc_us-gaap_FairValueByMeasurementFrequencyAxis_e6f84d27-88f5-4c3f-9512-ce8ca5e5ad1d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueMeasurementFrequencyDomain_f5acb75b-8138-4452-aa55-d375332725b1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueMeasurementFrequencyDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueByMeasurementFrequencyAxis_e6f84d27-88f5-4c3f-9512-ce8ca5e5ad1d" xlink:to="loc_us-gaap_FairValueMeasurementFrequencyDomain_f5acb75b-8138-4452-aa55-d375332725b1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueMeasurementsRecurringMember_4369d774-3073-4d23-b430-74924538104d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueMeasurementsRecurringMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueMeasurementFrequencyDomain_f5acb75b-8138-4452-aa55-d375332725b1" xlink:to="loc_us-gaap_FairValueMeasurementsRecurringMember_4369d774-3073-4d23-b430-74924538104d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueByFairValueHierarchyLevelAxis_34098a62-b7c8-40e4-9878-b6bc4cb60187" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueByFairValueHierarchyLevelAxis"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_cd0944a2-9498-431d-9ee8-dd6bae907b1f" xlink:to="loc_us-gaap_FairValueByFairValueHierarchyLevelAxis_34098a62-b7c8-40e4-9878-b6bc4cb60187" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_8654a7c7-7508-410a-af1a-6d585ebf4efb" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueMeasurementsFairValueHierarchyDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueByFairValueHierarchyLevelAxis_34098a62-b7c8-40e4-9878-b6bc4cb60187" xlink:to="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_8654a7c7-7508-410a-af1a-6d585ebf4efb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueInputsLevel1Member_e84f4143-442f-4956-8036-706b441680d4" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueInputsLevel1Member"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_8654a7c7-7508-410a-af1a-6d585ebf4efb" xlink:to="loc_us-gaap_FairValueInputsLevel1Member_e84f4143-442f-4956-8036-706b441680d4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueInputsLevel2Member_581eb13d-48e1-4b4c-9f65-6a18d44805a8" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueInputsLevel2Member"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_8654a7c7-7508-410a-af1a-6d585ebf4efb" xlink:to="loc_us-gaap_FairValueInputsLevel2Member_581eb13d-48e1-4b4c-9f65-6a18d44805a8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueInputsLevel3Member_bb8c178a-db95-450c-bb60-13b206eca2ad" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueInputsLevel3Member"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_8654a7c7-7508-410a-af1a-6d585ebf4efb" xlink:to="loc_us-gaap_FairValueInputsLevel3Member_bb8c178a-db95-450c-bb60-13b206eca2ad" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueByLiabilityClassAxis_62d50b89-a8f1-424c-9274-79d03f11e09f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueByLiabilityClassAxis"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_cd0944a2-9498-431d-9ee8-dd6bae907b1f" xlink:to="loc_us-gaap_FairValueByLiabilityClassAxis_62d50b89-a8f1-424c-9274-79d03f11e09f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationByLiabilityClassDomain_65921677-8571-4d8e-a173-e1334b457445" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationByLiabilityClassDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueByLiabilityClassAxis_62d50b89-a8f1-424c-9274-79d03f11e09f" xlink:to="loc_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationByLiabilityClassDomain_65921677-8571-4d8e-a173-e1334b457445" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ContingentConsiderationCurrentMember_9d954c17-bc59-4dc3-97f1-4eebab249536" xlink:href="tgen-20241231.xsd#tgen_ContingentConsiderationCurrentMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationByLiabilityClassDomain_65921677-8571-4d8e-a173-e1334b457445" xlink:to="loc_tgen_ContingentConsiderationCurrentMember_9d954c17-bc59-4dc3-97f1-4eebab249536" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ContingentConsiderationNoncurrentMember_ec10f9ee-825f-4651-9886-6ac55034eaec" xlink:href="tgen-20241231.xsd#tgen_ContingentConsiderationNoncurrentMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationByLiabilityClassDomain_65921677-8571-4d8e-a173-e1334b457445" xlink:to="loc_tgen_ContingentConsiderationNoncurrentMember_ec10f9ee-825f-4651-9886-6ac55034eaec" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_9767d71d-82d9-497e-99cc-6133512957fc" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_cd0944a2-9498-431d-9ee8-dd6bae907b1f" xlink:to="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_9767d71d-82d9-497e-99cc-6133512957fc" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesDebtSecurities_c4f222f7-33ac-4967-be3e-950db3c97319" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AvailableForSaleSecuritiesDebtSecurities"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_9767d71d-82d9-497e-99cc-6133512957fc" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesDebtSecurities_c4f222f7-33ac-4967-be3e-950db3c97319" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax_736aef45-b589-4ecf-9e5b-93b407ee4c13" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_9767d71d-82d9-497e-99cc-6133512957fc" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax_736aef45-b589-4ecf-9e5b-93b407ee4c13" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetsFairValueDisclosure_5f683ef4-ae88-4c73-b345-794d86029f27" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetsFairValueDisclosure"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_9767d71d-82d9-497e-99cc-6133512957fc" xlink:to="loc_us-gaap_AssetsFairValueDisclosure_5f683ef4-ae88-4c73-b345-794d86029f27" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetAcquisitionContingentConsiderationLiabilityCurrent_a8cb1354-bcd2-48fd-94fe-57f474e7a27a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetAcquisitionContingentConsiderationLiabilityCurrent"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_9767d71d-82d9-497e-99cc-6133512957fc" xlink:to="loc_us-gaap_AssetAcquisitionContingentConsiderationLiabilityCurrent_a8cb1354-bcd2-48fd-94fe-57f474e7a27a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetAcquisitionContingentConsiderationLiabilityNoncurrent_0b72ef04-1582-4638-a316-52364bd5f38a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetAcquisitionContingentConsiderationLiabilityNoncurrent"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_9767d71d-82d9-497e-99cc-6133512957fc" xlink:to="loc_us-gaap_AssetAcquisitionContingentConsiderationLiabilityNoncurrent_0b72ef04-1582-4638-a316-52364bd5f38a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LiabilitiesFairValueDisclosure_4d01e712-602f-47c3-a7a0-17c7db0fa5ab" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LiabilitiesFairValueDisclosure"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_9767d71d-82d9-497e-99cc-6133512957fc" xlink:to="loc_us-gaap_LiabilitiesFairValueDisclosure_4d01e712-602f-47c3-a7a0-17c7db0fa5ab" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings_29a4a83f-746b-4d21-b2ee-c2a1ad34cc0a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_9767d71d-82d9-497e-99cc-6133512957fc" xlink:to="loc_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings_29a4a83f-746b-4d21-b2ee-c2a1ad34cc0a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/FairValueMeasuresandDisclosuresScheduleofChangesinLevel2AssetsDetails" xlink:type="simple" xlink:href="tgen-20241231.xsd#FairValueMeasuresandDisclosuresScheduleofChangesinLevel2AssetsDetails"/>
  <link:presentationLink xlink:role="http://www.tecogen.com/role/FairValueMeasuresandDisclosuresScheduleofChangesinLevel2AssetsDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueDisclosuresAbstract_1aa74ab5-92a9-44f5-b43b-dbbb27e7de6e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueDisclosuresAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationTable_0fe086ee-4599-4d1f-a202-1f7dfa60f1be" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueDisclosuresAbstract_1aa74ab5-92a9-44f5-b43b-dbbb27e7de6e" xlink:to="loc_us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationTable_0fe086ee-4599-4d1f-a202-1f7dfa60f1be" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueByMeasurementBasisAxis_265948ba-9f5e-431b-be8c-74d514fa6db8" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueByMeasurementBasisAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationTable_0fe086ee-4599-4d1f-a202-1f7dfa60f1be" xlink:to="loc_us-gaap_FairValueByMeasurementBasisAxis_265948ba-9f5e-431b-be8c-74d514fa6db8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueDisclosureItemAmountsDomain_910d639f-097a-4edd-a004-1c42023105e2" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueDisclosureItemAmountsDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueByMeasurementBasisAxis_265948ba-9f5e-431b-be8c-74d514fa6db8" xlink:to="loc_us-gaap_FairValueDisclosureItemAmountsDomain_910d639f-097a-4edd-a004-1c42023105e2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PortionAtFairValueFairValueDisclosureMember_4b0d1262-ab32-4383-8fa3-5c1336ed3497" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PortionAtFairValueFairValueDisclosureMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueDisclosureItemAmountsDomain_910d639f-097a-4edd-a004-1c42023105e2" xlink:to="loc_us-gaap_PortionAtFairValueFairValueDisclosureMember_4b0d1262-ab32-4383-8fa3-5c1336ed3497" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EstimateOfFairValueFairValueDisclosureMember_4bb42225-f613-4def-9e6d-6076e70a8884" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EstimateOfFairValueFairValueDisclosureMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PortionAtFairValueFairValueDisclosureMember_4b0d1262-ab32-4383-8fa3-5c1336ed3497" xlink:to="loc_us-gaap_EstimateOfFairValueFairValueDisclosureMember_4bb42225-f613-4def-9e6d-6076e70a8884" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueByMeasurementFrequencyAxis_2b46212e-2b8b-4a31-8e4b-f24ad49cb7e7" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueByMeasurementFrequencyAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationTable_0fe086ee-4599-4d1f-a202-1f7dfa60f1be" xlink:to="loc_us-gaap_FairValueByMeasurementFrequencyAxis_2b46212e-2b8b-4a31-8e4b-f24ad49cb7e7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueMeasurementFrequencyDomain_7418379c-9bf1-4c1e-8a2a-27a561e7590b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueMeasurementFrequencyDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueByMeasurementFrequencyAxis_2b46212e-2b8b-4a31-8e4b-f24ad49cb7e7" xlink:to="loc_us-gaap_FairValueMeasurementFrequencyDomain_7418379c-9bf1-4c1e-8a2a-27a561e7590b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueMeasurementsRecurringMember_f4ac25ee-7c16-4be7-9c2a-57a9dd58dda3" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueMeasurementsRecurringMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueMeasurementFrequencyDomain_7418379c-9bf1-4c1e-8a2a-27a561e7590b" xlink:to="loc_us-gaap_FairValueMeasurementsRecurringMember_f4ac25ee-7c16-4be7-9c2a-57a9dd58dda3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems_47c10d1f-9e8a-4b7c-bd7c-40b7548c8e17" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationTable_0fe086ee-4599-4d1f-a202-1f7dfa60f1be" xlink:to="loc_us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems_47c10d1f-9e8a-4b7c-bd7c-40b7548c8e17" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward_c4fa5a93-11fa-41f5-ab0f-f302be8095be" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems_47c10d1f-9e8a-4b7c-bd7c-40b7548c8e17" xlink:to="loc_us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward_c4fa5a93-11fa-41f5-ab0f-f302be8095be" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetsFairValueDisclosure_bf231875-df83-4cac-9c66-02b1993240a6" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetsFairValueDisclosure"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward_c4fa5a93-11fa-41f5-ab0f-f302be8095be" xlink:to="loc_us-gaap_AssetsFairValueDisclosure_bf231875-df83-4cac-9c66-02b1993240a6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSales_fa27c3a2-e51a-44bd-87fc-708b8718122e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSales"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward_c4fa5a93-11fa-41f5-ab0f-f302be8095be" xlink:to="loc_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSales_fa27c3a2-e51a-44bd-87fc-708b8718122e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInEarnings1_3a8617ef-a55c-4580-9881-580f74d0f83d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInEarnings1"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward_c4fa5a93-11fa-41f5-ab0f-f302be8095be" xlink:to="loc_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInEarnings1_3a8617ef-a55c-4580-9881-580f74d0f83d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetsFairValueDisclosure_f7ad3b72-21e3-44a5-9a66-e0a1fe138866" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetsFairValueDisclosure"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward_c4fa5a93-11fa-41f5-ab0f-f302be8095be" xlink:to="loc_us-gaap_AssetsFairValueDisclosure_f7ad3b72-21e3-44a5-9a66-e0a1fe138866" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/FairValueMeasurementsNarrativeDetails" xlink:type="simple" xlink:href="tgen-20241231.xsd#FairValueMeasurementsNarrativeDetails"/>
  <link:presentationLink xlink:role="http://www.tecogen.com/role/FairValueMeasurementsNarrativeDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueDisclosuresAbstract_33876393-e090-4021-82b5-e5e5b1218628" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueDisclosuresAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_b7d0c821-9e39-406b-8749-3e599f53b0c7" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueDisclosuresAbstract_33876393-e090-4021-82b5-e5e5b1218628" xlink:to="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_b7d0c821-9e39-406b-8749-3e599f53b0c7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetAcquisitionAxis_b500686f-955f-4b18-8aaf-7ed6668e188c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetAcquisitionAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_b7d0c821-9e39-406b-8749-3e599f53b0c7" xlink:to="loc_us-gaap_AssetAcquisitionAxis_b500686f-955f-4b18-8aaf-7ed6668e188c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetAcquisitionDomain_3e25ba22-29db-433f-9f2f-d4209d86bd63" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetAcquisitionDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetAcquisitionAxis_b500686f-955f-4b18-8aaf-7ed6668e188c" xlink:to="loc_us-gaap_AssetAcquisitionDomain_3e25ba22-29db-433f-9f2f-d4209d86bd63" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AegisEnergyServicesLLCMember_86ece65f-d641-49c3-86da-d5b54a2eefc1" xlink:href="tgen-20241231.xsd#tgen_AegisEnergyServicesLLCMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetAcquisitionDomain_3e25ba22-29db-433f-9f2f-d4209d86bd63" xlink:to="loc_tgen_AegisEnergyServicesLLCMember_86ece65f-d641-49c3-86da-d5b54a2eefc1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MeasurementInputTypeAxis_c292c4f1-b82b-4832-88e8-f683d7e6e3d2" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_MeasurementInputTypeAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_b7d0c821-9e39-406b-8749-3e599f53b0c7" xlink:to="loc_us-gaap_MeasurementInputTypeAxis_c292c4f1-b82b-4832-88e8-f683d7e6e3d2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MeasurementInputTypeDomain_90c6dedc-7a60-419f-982a-71cb5464cdf3" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_MeasurementInputTypeDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_MeasurementInputTypeAxis_c292c4f1-b82b-4832-88e8-f683d7e6e3d2" xlink:to="loc_us-gaap_MeasurementInputTypeDomain_90c6dedc-7a60-419f-982a-71cb5464cdf3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MeasurementInputDiscountRateMember_0f99332d-d579-4a26-a0ed-eecfea4ba1a2" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_MeasurementInputDiscountRateMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_MeasurementInputTypeDomain_90c6dedc-7a60-419f-982a-71cb5464cdf3" xlink:to="loc_us-gaap_MeasurementInputDiscountRateMember_0f99332d-d579-4a26-a0ed-eecfea4ba1a2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeAxis_bbd8764c-0d59-4965-a659-3570d7b4cb84" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeAxis"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_b7d0c821-9e39-406b-8749-3e599f53b0c7" xlink:to="loc_srt_RangeAxis_bbd8764c-0d59-4965-a659-3570d7b4cb84" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeMember_dd9db76b-d1f6-4a2f-bde2-6a19641a72a9" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RangeAxis_bbd8764c-0d59-4965-a659-3570d7b4cb84" xlink:to="loc_srt_RangeMember_dd9db76b-d1f6-4a2f-bde2-6a19641a72a9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MinimumMember_7a386867-fb7e-4d49-a5a7-710bbcfdb926" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MinimumMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RangeMember_dd9db76b-d1f6-4a2f-bde2-6a19641a72a9" xlink:to="loc_srt_MinimumMember_7a386867-fb7e-4d49-a5a7-710bbcfdb926" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MaximumMember_7b35a9ac-47fc-48f5-acb2-6a5a0a6b972d" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MaximumMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RangeMember_dd9db76b-d1f6-4a2f-bde2-6a19641a72a9" xlink:to="loc_srt_MaximumMember_7b35a9ac-47fc-48f5-acb2-6a5a0a6b972d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_461d2fc3-f13c-45e7-a1fd-3756752dd849" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_b7d0c821-9e39-406b-8749-3e599f53b0c7" xlink:to="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_461d2fc3-f13c-45e7-a1fd-3756752dd849" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_IntangibleAssetsMeasurementInput_33f6b358-1600-483a-9274-85ef9765a35c" xlink:href="tgen-20241231.xsd#tgen_IntangibleAssetsMeasurementInput"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_461d2fc3-f13c-45e7-a1fd-3756752dd849" xlink:to="loc_tgen_IntangibleAssetsMeasurementInput_33f6b358-1600-483a-9274-85ef9765a35c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_MaintenanceAgreementsApplicablePercentage_a819cc50-8127-4302-9712-0c2216e8b021" xlink:href="tgen-20241231.xsd#tgen_MaintenanceAgreementsApplicablePercentage"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_461d2fc3-f13c-45e7-a1fd-3756752dd849" xlink:to="loc_tgen_MaintenanceAgreementsApplicablePercentage_a819cc50-8127-4302-9712-0c2216e8b021" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/RetirementplansDetails" xlink:type="simple" xlink:href="tgen-20241231.xsd#RetirementplansDetails"/>
  <link:presentationLink xlink:role="http://www.tecogen.com/role/RetirementplansDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CompensationAndRetirementDisclosureAbstract_349f2b48-449d-4324-aefb-7b0550fb7a37" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CompensationAndRetirementDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DefinedContributionPlanEmployerMatchingContributionPercent_ec5a4d8e-0d06-4811-83b7-4b891383fd87" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DefinedContributionPlanEmployerMatchingContributionPercent"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CompensationAndRetirementDisclosureAbstract_349f2b48-449d-4324-aefb-7b0550fb7a37" xlink:to="loc_us-gaap_DefinedContributionPlanEmployerMatchingContributionPercent_ec5a4d8e-0d06-4811-83b7-4b891383fd87" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_DefinedContributionPlanMaximumQuarterlyEmployerMatchingContributionPerParticipant_3230ed10-5a27-43f2-b06b-8c35d166370f" xlink:href="tgen-20241231.xsd#tgen_DefinedContributionPlanMaximumQuarterlyEmployerMatchingContributionPerParticipant"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CompensationAndRetirementDisclosureAbstract_349f2b48-449d-4324-aefb-7b0550fb7a37" xlink:to="loc_tgen_DefinedContributionPlanMaximumQuarterlyEmployerMatchingContributionPerParticipant_3230ed10-5a27-43f2-b06b-8c35d166370f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_DefinedContributionPlanMaximumAnnualEmployerMatchingContributionPerParticipant_bd1c210c-ba99-4b26-a7cb-efaef54eb9a1" xlink:href="tgen-20241231.xsd#tgen_DefinedContributionPlanMaximumAnnualEmployerMatchingContributionPerParticipant"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CompensationAndRetirementDisclosureAbstract_349f2b48-449d-4324-aefb-7b0550fb7a37" xlink:to="loc_tgen_DefinedContributionPlanMaximumAnnualEmployerMatchingContributionPerParticipant_bd1c210c-ba99-4b26-a7cb-efaef54eb9a1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DefinedContributionPlanCostRecognized_44215fbc-5c41-42b4-8150-6b19910c8436" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DefinedContributionPlanCostRecognized"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CompensationAndRetirementDisclosureAbstract_349f2b48-449d-4324-aefb-7b0550fb7a37" xlink:to="loc_us-gaap_DefinedContributionPlanCostRecognized_44215fbc-5c41-42b4-8150-6b19910c8436" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/SegmentsDetails" xlink:type="simple" xlink:href="tgen-20241231.xsd#SegmentsDetails"/>
  <link:presentationLink xlink:role="http://www.tecogen.com/role/SegmentsDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SegmentReportingAbstract_e897a72e-2621-4f22-adaa-49ecc0c3e200" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SegmentReportingAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable_184e1109-8738-42aa-8f6d-19a2db02eee0" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SegmentReportingAbstract_e897a72e-2621-4f22-adaa-49ecc0c3e200" xlink:to="loc_us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable_184e1109-8738-42aa-8f6d-19a2db02eee0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ConsolidationItemsAxis_57f7c5b8-b278-4ea3-b295-363e3d41d1ce" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ConsolidationItemsAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable_184e1109-8738-42aa-8f6d-19a2db02eee0" xlink:to="loc_srt_ConsolidationItemsAxis_57f7c5b8-b278-4ea3-b295-363e3d41d1ce" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ConsolidationItemsDomain_0b542616-81a5-4f25-9c44-b2fd5fb621c3" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ConsolidationItemsDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ConsolidationItemsAxis_57f7c5b8-b278-4ea3-b295-363e3d41d1ce" xlink:to="loc_srt_ConsolidationItemsDomain_0b542616-81a5-4f25-9c44-b2fd5fb621c3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingSegmentsMember_2114ea97-c768-49b9-85e3-4325f47e4061" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingSegmentsMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ConsolidationItemsDomain_0b542616-81a5-4f25-9c44-b2fd5fb621c3" xlink:to="loc_us-gaap_OperatingSegmentsMember_2114ea97-c768-49b9-85e3-4325f47e4061" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IntersegmentEliminationMember_ce75556c-2708-4c1b-bf97-f311fada7f4f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IntersegmentEliminationMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ConsolidationItemsDomain_0b542616-81a5-4f25-9c44-b2fd5fb621c3" xlink:to="loc_us-gaap_IntersegmentEliminationMember_ce75556c-2708-4c1b-bf97-f311fada7f4f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementBusinessSegmentsAxis_2b0db2ac-331d-4a90-8d30-e01e3763737e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementBusinessSegmentsAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable_184e1109-8738-42aa-8f6d-19a2db02eee0" xlink:to="loc_us-gaap_StatementBusinessSegmentsAxis_2b0db2ac-331d-4a90-8d30-e01e3763737e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SegmentDomain_4ef90fd5-dba4-4066-9a8b-4519a6f26a17" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SegmentDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementBusinessSegmentsAxis_2b0db2ac-331d-4a90-8d30-e01e3763737e" xlink:to="loc_us-gaap_SegmentDomain_4ef90fd5-dba4-4066-9a8b-4519a6f26a17" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ProductsandServicesMember_fe7f08d6-fc46-46ab-9282-08361a0a9d3d" xlink:href="tgen-20241231.xsd#tgen_ProductsandServicesMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SegmentDomain_4ef90fd5-dba4-4066-9a8b-4519a6f26a17" xlink:to="loc_tgen_ProductsandServicesMember_fe7f08d6-fc46-46ab-9282-08361a0a9d3d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_EnergyProductionMember_55b1fcb5-7415-41b1-8bba-879964cd45e2" xlink:href="tgen-20241231.xsd#tgen_EnergyProductionMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SegmentDomain_4ef90fd5-dba4-4066-9a8b-4519a6f26a17" xlink:to="loc_tgen_EnergyProductionMember_55b1fcb5-7415-41b1-8bba-879964cd45e2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CorporateAndOtherMember_d65ad369-46f3-446e-ac4a-825a61a3fe28" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CorporateAndOtherMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SegmentDomain_4ef90fd5-dba4-4066-9a8b-4519a6f26a17" xlink:to="loc_us-gaap_CorporateAndOtherMember_d65ad369-46f3-446e-ac4a-825a61a3fe28" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ProductsSegmentMember_b8e10ab4-ac8e-4264-b409-350c429539ad" xlink:href="tgen-20241231.xsd#tgen_ProductsSegmentMember"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SegmentDomain_4ef90fd5-dba4-4066-9a8b-4519a6f26a17" xlink:to="loc_tgen_ProductsSegmentMember_b8e10ab4-ac8e-4264-b409-350c429539ad" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_ServicesAndOtherSegmentMember_912414a8-4176-4fba-b153-6a06f885bf9d" xlink:href="tgen-20241231.xsd#tgen_ServicesAndOtherSegmentMember"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SegmentDomain_4ef90fd5-dba4-4066-9a8b-4519a6f26a17" xlink:to="loc_tgen_ServicesAndOtherSegmentMember_912414a8-4176-4fba-b153-6a06f885bf9d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SegmentReportingInformationLineItems_4edb2239-356b-4112-802e-d9f1d589bb58" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SegmentReportingInformationLineItems"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable_184e1109-8738-42aa-8f6d-19a2db02eee0" xlink:to="loc_us-gaap_SegmentReportingInformationLineItems_4edb2239-356b-4112-802e-d9f1d589bb58" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NumberOfOperatingSegments_13847fad-71a8-4c3b-a4ad-e455004cb0d3" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NumberOfOperatingSegments"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SegmentReportingInformationLineItems_4edb2239-356b-4112-802e-d9f1d589bb58" xlink:to="loc_us-gaap_NumberOfOperatingSegments_13847fad-71a8-4c3b-a4ad-e455004cb0d3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_7859cb4a-d6e8-4d35-a4a6-7a45ae02b608" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SegmentReportingInformationLineItems_4edb2239-356b-4112-802e-d9f1d589bb58" xlink:to="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_7859cb4a-d6e8-4d35-a4a6-7a45ae02b608" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CostOfGoodsAndServicesSold_2d02719e-8e06-4a78-a996-00ac12fd0dbc" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CostOfGoodsAndServicesSold"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SegmentReportingInformationLineItems_4edb2239-356b-4112-802e-d9f1d589bb58" xlink:to="loc_us-gaap_CostOfGoodsAndServicesSold_2d02719e-8e06-4a78-a996-00ac12fd0dbc" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GrossProfit_b35f8c2c-48f0-438e-9486-831f70fe4482" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GrossProfit"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SegmentReportingInformationLineItems_4edb2239-356b-4112-802e-d9f1d589bb58" xlink:to="loc_us-gaap_GrossProfit_b35f8c2c-48f0-438e-9486-831f70fe4482" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingExpenses_97d217e9-fd24-430d-b10c-2ed61849bb15" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingExpenses"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SegmentReportingInformationLineItems_4edb2239-356b-4112-802e-d9f1d589bb58" xlink:to="loc_us-gaap_OperatingExpenses_97d217e9-fd24-430d-b10c-2ed61849bb15" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingIncomeLoss_4fb62776-d780-4db2-873f-2a54650c2219" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingIncomeLoss"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SegmentReportingInformationLineItems_4edb2239-356b-4112-802e-d9f1d589bb58" xlink:to="loc_us-gaap_OperatingIncomeLoss_4fb62776-d780-4db2-873f-2a54650c2219" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Assets_9f58d520-6591-4da1-bbb3-791e6a8989ca" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Assets"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SegmentReportingInformationLineItems_4edb2239-356b-4112-802e-d9f1d589bb58" xlink:to="loc_us-gaap_Assets_9f58d520-6591-4da1-bbb3-791e6a8989ca" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/IncometaxesReconciliationofFederalStatutoryIncomeTaxProvisiontoCompanysActualProvisionDetails" xlink:type="simple" xlink:href="tgen-20241231.xsd#IncometaxesReconciliationofFederalStatutoryIncomeTaxProvisiontoCompanysActualProvisionDetails"/>
  <link:presentationLink xlink:role="http://www.tecogen.com/role/IncometaxesReconciliationofFederalStatutoryIncomeTaxProvisiontoCompanysActualProvisionDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxDisclosureAbstract_ad0c0f7c-b649-4f66-8282-ca118cbddc1f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_IncomeTaxDisclosureTable_bb91e8b3-d7f0-45c2-b3e9-89d36e552fd7" xlink:href="tgen-20241231.xsd#tgen_IncomeTaxDisclosureTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_ad0c0f7c-b649-4f66-8282-ca118cbddc1f" xlink:to="loc_tgen_IncomeTaxDisclosureTable_bb91e8b3-d7f0-45c2-b3e9-89d36e552fd7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeStatementLocationAxis_7f61e6a8-2ec5-425c-bb42-a44e9b5b82d1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeStatementLocationAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tgen_IncomeTaxDisclosureTable_bb91e8b3-d7f0-45c2-b3e9-89d36e552fd7" xlink:to="loc_us-gaap_IncomeStatementLocationAxis_7f61e6a8-2ec5-425c-bb42-a44e9b5b82d1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeStatementLocationDomain_f437dd8d-dbc5-44c8-aa20-88663e60b221" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeStatementLocationDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementLocationAxis_7f61e6a8-2ec5-425c-bb42-a44e9b5b82d1" xlink:to="loc_us-gaap_IncomeStatementLocationDomain_f437dd8d-dbc5-44c8-aa20-88663e60b221" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_BenefitforIncomeTaxesMember_d4de1d1a-6526-4f5f-8933-03392a7d50ec" xlink:href="tgen-20241231.xsd#tgen_BenefitforIncomeTaxesMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementLocationDomain_f437dd8d-dbc5-44c8-aa20-88663e60b221" xlink:to="loc_tgen_BenefitforIncomeTaxesMember_d4de1d1a-6526-4f5f-8933-03392a7d50ec" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_IncomeTaxDisclosureLineItems_7c3eaa17-974c-4a3a-bfd7-a4b63d3f14d8" xlink:href="tgen-20241231.xsd#tgen_IncomeTaxDisclosureLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tgen_IncomeTaxDisclosureTable_bb91e8b3-d7f0-45c2-b3e9-89d36e552fd7" xlink:to="loc_tgen_IncomeTaxDisclosureLineItems_7c3eaa17-974c-4a3a-bfd7-a4b63d3f14d8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_b044b3c9-0784-4612-b8b4-653848754b4e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tgen_IncomeTaxDisclosureLineItems_7c3eaa17-974c-4a3a-bfd7-a4b63d3f14d8" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_b044b3c9-0784-4612-b8b4-653848754b4e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_0cab222c-d832-49c6-a7a5-a8590065cc12" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tgen_IncomeTaxDisclosureLineItems_7c3eaa17-974c-4a3a-bfd7-a4b63d3f14d8" xlink:to="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_0cab222c-d832-49c6-a7a5-a8590065cc12" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate_30974b9e-eb52-4aee-9527-eba9e5852e2e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tgen_IncomeTaxDisclosureLineItems_7c3eaa17-974c-4a3a-bfd7-a4b63d3f14d8" xlink:to="loc_us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate_30974b9e-eb52-4aee-9527-eba9e5852e2e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxReconciliationNondeductibleExpenseImpairmentLosses_235b2273-9a75-4f7d-9c78-e902527c5e3b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxReconciliationNondeductibleExpenseImpairmentLosses"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tgen_IncomeTaxDisclosureLineItems_7c3eaa17-974c-4a3a-bfd7-a4b63d3f14d8" xlink:to="loc_us-gaap_IncomeTaxReconciliationNondeductibleExpenseImpairmentLosses_235b2273-9a75-4f7d-9c78-e902527c5e3b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxReconciliationNondeductibleExpenseAmortization_ccca6391-468f-46ab-a78f-5987e064fa5f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxReconciliationNondeductibleExpenseAmortization"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tgen_IncomeTaxDisclosureLineItems_7c3eaa17-974c-4a3a-bfd7-a4b63d3f14d8" xlink:to="loc_us-gaap_IncomeTaxReconciliationNondeductibleExpenseAmortization_ccca6391-468f-46ab-a78f-5987e064fa5f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost_2054bc3c-0cde-4564-a190-4334536fe99e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tgen_IncomeTaxDisclosureLineItems_7c3eaa17-974c-4a3a-bfd7-a4b63d3f14d8" xlink:to="loc_us-gaap_IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost_2054bc3c-0cde-4564-a190-4334536fe99e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxReconciliationNondeductibleExpenseOther_99d9f6a1-ff56-44b1-b5d4-1092ca4a1e0a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxReconciliationNondeductibleExpenseOther"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tgen_IncomeTaxDisclosureLineItems_7c3eaa17-974c-4a3a-bfd7-a4b63d3f14d8" xlink:to="loc_us-gaap_IncomeTaxReconciliationNondeductibleExpenseOther_99d9f6a1-ff56-44b1-b5d4-1092ca4a1e0a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_EffectiveIncomeTaxRateReconciliationStateandLocalIncomeTaxesAmountCurrent_202b5cbd-2332-40c5-8197-4474374a6d66" xlink:href="tgen-20241231.xsd#tgen_EffectiveIncomeTaxRateReconciliationStateandLocalIncomeTaxesAmountCurrent"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tgen_IncomeTaxDisclosureLineItems_7c3eaa17-974c-4a3a-bfd7-a4b63d3f14d8" xlink:to="loc_tgen_EffectiveIncomeTaxRateReconciliationStateandLocalIncomeTaxesAmountCurrent_202b5cbd-2332-40c5-8197-4474374a6d66" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_EffectiveIncomeTaxRateReconciliationStateandLocalIncomeTaxesAmountDeferred_cc340fa4-9cfa-459c-ae52-90886dedb2b2" xlink:href="tgen-20241231.xsd#tgen_EffectiveIncomeTaxRateReconciliationStateandLocalIncomeTaxesAmountDeferred"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tgen_IncomeTaxDisclosureLineItems_7c3eaa17-974c-4a3a-bfd7-a4b63d3f14d8" xlink:to="loc_tgen_EffectiveIncomeTaxRateReconciliationStateandLocalIncomeTaxesAmountDeferred_cc340fa4-9cfa-459c-ae52-90886dedb2b2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_EffectiveIncomeTaxRateReconciliationOperatingLossCarryforwardExpired_8f6c2dae-3483-43c6-ac0f-df6b59d940f5" xlink:href="tgen-20241231.xsd#tgen_EffectiveIncomeTaxRateReconciliationOperatingLossCarryforwardExpired"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tgen_IncomeTaxDisclosureLineItems_7c3eaa17-974c-4a3a-bfd7-a4b63d3f14d8" xlink:to="loc_tgen_EffectiveIncomeTaxRateReconciliationOperatingLossCarryforwardExpired_8f6c2dae-3483-43c6-ac0f-df6b59d940f5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxReconciliationTaxCreditsResearch_7ebeb75c-d44a-4efb-89ad-4aaafd0714cb" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxReconciliationTaxCreditsResearch"/>
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tgen_IncomeTaxDisclosureLineItems_7c3eaa17-974c-4a3a-bfd7-a4b63d3f14d8" xlink:to="loc_us-gaap_IncomeTaxReconciliationTaxCreditsResearch_7ebeb75c-d44a-4efb-89ad-4aaafd0714cb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxReconciliationPriorYearIncomeTaxes_eb1f9f8a-de7b-47db-bbbb-81af508c5ed1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxReconciliationPriorYearIncomeTaxes"/>
    <link:presentationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tgen_IncomeTaxDisclosureLineItems_7c3eaa17-974c-4a3a-bfd7-a4b63d3f14d8" xlink:to="loc_us-gaap_IncomeTaxReconciliationPriorYearIncomeTaxes_eb1f9f8a-de7b-47db-bbbb-81af508c5ed1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance_d1784e4d-1709-4cc2-b250-530969d8cef8" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance"/>
    <link:presentationArc order="13" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tgen_IncomeTaxDisclosureLineItems_7c3eaa17-974c-4a3a-bfd7-a4b63d3f14d8" xlink:to="loc_us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance_d1784e4d-1709-4cc2-b250-530969d8cef8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxReconciliationNondeductibleExpenseResearchAndDevelopment_71a83bf8-a685-4716-91d0-ed0e135f33db" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxReconciliationNondeductibleExpenseResearchAndDevelopment"/>
    <link:presentationArc order="14" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tgen_IncomeTaxDisclosureLineItems_7c3eaa17-974c-4a3a-bfd7-a4b63d3f14d8" xlink:to="loc_us-gaap_IncomeTaxReconciliationNondeductibleExpenseResearchAndDevelopment_71a83bf8-a685-4716-91d0-ed0e135f33db" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_IncomeTaxReconciliationUnbenefitedOperatingLosses_84c17081-f24a-4fd1-9f76-fdbe54792903" xlink:href="tgen-20241231.xsd#tgen_IncomeTaxReconciliationUnbenefitedOperatingLosses"/>
    <link:presentationArc order="15" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tgen_IncomeTaxDisclosureLineItems_7c3eaa17-974c-4a3a-bfd7-a4b63d3f14d8" xlink:to="loc_tgen_IncomeTaxReconciliationUnbenefitedOperatingLosses_84c17081-f24a-4fd1-9f76-fdbe54792903" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxExpenseBenefit_a07580bc-3bdd-4af7-98c5-feab794235e1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxExpenseBenefit"/>
    <link:presentationArc order="16" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tgen_IncomeTaxDisclosureLineItems_7c3eaa17-974c-4a3a-bfd7-a4b63d3f14d8" xlink:to="loc_us-gaap_IncomeTaxExpenseBenefit_a07580bc-3bdd-4af7-98c5-feab794235e1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/IncometaxesScheduleofDeferredTaxAssetsDetails" xlink:type="simple" xlink:href="tgen-20241231.xsd#IncometaxesScheduleofDeferredTaxAssetsDetails"/>
  <link:presentationLink xlink:role="http://www.tecogen.com/role/IncometaxesScheduleofDeferredTaxAssetsDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxDisclosureAbstract_b379e6cd-b08b-4051-b50f-c160dd7897e3" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsOperatingLossCarryforwards_9138f5bf-7f0a-4e1b-b59e-1d68ff5a9b26" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsOperatingLossCarryforwards"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_b379e6cd-b08b-4051-b50f-c160dd7897e3" xlink:to="loc_us-gaap_DeferredTaxAssetsOperatingLossCarryforwards_9138f5bf-7f0a-4e1b-b59e-1d68ff5a9b26" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsTaxCreditCarryforwards_da2dd0d2-6f1b-4d4f-bd36-e7591f35671c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsTaxCreditCarryforwards"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_b379e6cd-b08b-4051-b50f-c160dd7897e3" xlink:to="loc_us-gaap_DeferredTaxAssetsTaxCreditCarryforwards_da2dd0d2-6f1b-4d4f-bd36-e7591f35671c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_DeferredTaxAssetTaxDeferredExpenseReservesAndAccrualsAccruedLiabilitiesAndOther_891f5927-1b84-4dc8-9697-f433971ed634" xlink:href="tgen-20241231.xsd#tgen_DeferredTaxAssetTaxDeferredExpenseReservesAndAccrualsAccruedLiabilitiesAndOther"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_b379e6cd-b08b-4051-b50f-c160dd7897e3" xlink:to="loc_tgen_DeferredTaxAssetTaxDeferredExpenseReservesAndAccrualsAccruedLiabilitiesAndOther_891f5927-1b84-4dc8-9697-f433971ed634" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsGoodwillAndIntangibleAssets_5baeff60-106f-439f-8c1a-59683e2ba31c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsGoodwillAndIntangibleAssets"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_b379e6cd-b08b-4051-b50f-c160dd7897e3" xlink:to="loc_us-gaap_DeferredTaxAssetsGoodwillAndIntangibleAssets_5baeff60-106f-439f-8c1a-59683e2ba31c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_DeferredTaxAssetLeases_9f33aa53-f58d-4d1f-9b4a-3bcae806f8d6" xlink:href="tgen-20241231.xsd#tgen_DeferredTaxAssetLeases"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_b379e6cd-b08b-4051-b50f-c160dd7897e3" xlink:to="loc_tgen_DeferredTaxAssetLeases_9f33aa53-f58d-4d1f-9b4a-3bcae806f8d6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts_434ef81c-d480-46ad-9c01-6e2dae5ffe8a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_b379e6cd-b08b-4051-b50f-c160dd7897e3" xlink:to="loc_us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts_434ef81c-d480-46ad-9c01-6e2dae5ffe8a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefits_9899063d-013d-438c-b01e-39e5e4922ebf" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefits"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_b379e6cd-b08b-4051-b50f-c160dd7897e3" xlink:to="loc_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefits_9899063d-013d-438c-b01e-39e5e4922ebf" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsInventory_c27370b6-fec4-4deb-b8a6-987c0386e84b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsInventory"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_b379e6cd-b08b-4051-b50f-c160dd7897e3" xlink:to="loc_us-gaap_DeferredTaxAssetsInventory_c27370b6-fec4-4deb-b8a6-987c0386e84b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsPropertyPlantAndEquipment_9206ab1a-441e-4412-8e6f-eb8690766417" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsPropertyPlantAndEquipment"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_b379e6cd-b08b-4051-b50f-c160dd7897e3" xlink:to="loc_us-gaap_DeferredTaxAssetsPropertyPlantAndEquipment_9206ab1a-441e-4412-8e6f-eb8690766417" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsOther_633eebf5-9750-4f4b-8768-07529acfc585" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsOther"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_b379e6cd-b08b-4051-b50f-c160dd7897e3" xlink:to="loc_us-gaap_DeferredTaxAssetsOther_633eebf5-9750-4f4b-8768-07529acfc585" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsGross_c526f1fe-ce58-4c34-8e98-6d38f45935c6" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsGross"/>
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_b379e6cd-b08b-4051-b50f-c160dd7897e3" xlink:to="loc_us-gaap_DeferredTaxAssetsGross_c526f1fe-ce58-4c34-8e98-6d38f45935c6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsValuationAllowance_7a09a0ae-dafd-41ae-85d1-c7d6deec81c6" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsValuationAllowance"/>
    <link:presentationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_b379e6cd-b08b-4051-b50f-c160dd7897e3" xlink:to="loc_us-gaap_DeferredTaxAssetsValuationAllowance_7a09a0ae-dafd-41ae-85d1-c7d6deec81c6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxLiabilities_d319e020-87db-42dc-8b9a-9793e0c57843" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxLiabilities"/>
    <link:presentationArc order="13" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_b379e6cd-b08b-4051-b50f-c160dd7897e3" xlink:to="loc_us-gaap_DeferredTaxLiabilities_d319e020-87db-42dc-8b9a-9793e0c57843" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTotalLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/IncometaxesNarrativeDetails" xlink:type="simple" xlink:href="tgen-20241231.xsd#IncometaxesNarrativeDetails"/>
  <link:presentationLink xlink:role="http://www.tecogen.com/role/IncometaxesNarrativeDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxDisclosureAbstract_cdbf2d1e-89a7-4987-a841-97828d3726c4" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLossCarryforwardsTable_c42cbb5c-df3b-413a-865d-3e460521adad" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLossCarryforwardsTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_cdbf2d1e-89a7-4987-a841-97828d3726c4" xlink:to="loc_us-gaap_OperatingLossCarryforwardsTable_c42cbb5c-df3b-413a-865d-3e460521adad" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_OwnershipAxis_42309622-e216-4fdd-9102-aa9377014829" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_OwnershipAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_OperatingLossCarryforwardsTable_c42cbb5c-df3b-413a-865d-3e460521adad" xlink:to="loc_srt_OwnershipAxis_42309622-e216-4fdd-9102-aa9377014829" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_OwnershipDomain_394b334f-8231-4529-9483-b04ac14b87b7" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_OwnershipDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_OwnershipAxis_42309622-e216-4fdd-9102-aa9377014829" xlink:to="loc_srt_OwnershipDomain_394b334f-8231-4529-9483-b04ac14b87b7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AmericanDgEnergyMember_df0c2bdc-6cf0-4a0e-b9b4-1fb9780caecd" xlink:href="tgen-20241231.xsd#tgen_AmericanDgEnergyMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_OwnershipDomain_394b334f-8231-4529-9483-b04ac14b87b7" xlink:to="loc_tgen_AmericanDgEnergyMember_df0c2bdc-6cf0-4a0e-b9b4-1fb9780caecd" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeStatementLocationAxis_cfc53502-7646-4e56-9100-50daabdaea1c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeStatementLocationAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_OperatingLossCarryforwardsTable_c42cbb5c-df3b-413a-865d-3e460521adad" xlink:to="loc_us-gaap_IncomeStatementLocationAxis_cfc53502-7646-4e56-9100-50daabdaea1c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeStatementLocationDomain_e8d2c8e1-a06a-4846-8ba4-33804605a661" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeStatementLocationDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementLocationAxis_cfc53502-7646-4e56-9100-50daabdaea1c" xlink:to="loc_us-gaap_IncomeStatementLocationDomain_e8d2c8e1-a06a-4846-8ba4-33804605a661" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_BenefitforIncomeTaxesMember_6d07c93b-8aa0-43b7-926f-b8bc0964e61f" xlink:href="tgen-20241231.xsd#tgen_BenefitforIncomeTaxesMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementLocationDomain_e8d2c8e1-a06a-4846-8ba4-33804605a661" xlink:to="loc_tgen_BenefitforIncomeTaxesMember_6d07c93b-8aa0-43b7-926f-b8bc0964e61f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxAuthorityAxis_78ec4c9a-cea4-4f62-bbc8-1e34dc2432fb" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxAuthorityAxis"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_OperatingLossCarryforwardsTable_c42cbb5c-df3b-413a-865d-3e460521adad" xlink:to="loc_us-gaap_IncomeTaxAuthorityAxis_78ec4c9a-cea4-4f62-bbc8-1e34dc2432fb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxAuthorityDomain_0c65dada-9728-4337-b4f3-4d17a0ffe3c8" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxAuthorityDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxAuthorityAxis_78ec4c9a-cea4-4f62-bbc8-1e34dc2432fb" xlink:to="loc_us-gaap_IncomeTaxAuthorityDomain_0c65dada-9728-4337-b4f3-4d17a0ffe3c8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InternalRevenueServiceIRSMember_30d10c2b-e328-49e6-9734-14aa127ea3a7" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InternalRevenueServiceIRSMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxAuthorityDomain_0c65dada-9728-4337-b4f3-4d17a0ffe3c8" xlink:to="loc_us-gaap_InternalRevenueServiceIRSMember_30d10c2b-e328-49e6-9734-14aa127ea3a7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StateAndLocalJurisdictionMember_e1dc1c46-d8ee-4e14-859d-f413cd999c07" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StateAndLocalJurisdictionMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxAuthorityDomain_0c65dada-9728-4337-b4f3-4d17a0ffe3c8" xlink:to="loc_us-gaap_StateAndLocalJurisdictionMember_e1dc1c46-d8ee-4e14-859d-f413cd999c07" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtInstrumentAxis_26445bcc-ee74-4255-b538-17c72fc9581a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentAxis"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_OperatingLossCarryforwardsTable_c42cbb5c-df3b-413a-865d-3e460521adad" xlink:to="loc_us-gaap_DebtInstrumentAxis_26445bcc-ee74-4255-b538-17c72fc9581a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtInstrumentNameDomain_42205817-6c83-4c50-9333-73a9f6a9adab" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentNameDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DebtInstrumentAxis_26445bcc-ee74-4255-b538-17c72fc9581a" xlink:to="loc_us-gaap_DebtInstrumentNameDomain_42205817-6c83-4c50-9333-73a9f6a9adab" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_PPPLoanProgramMember_02cb3705-dca8-48d8-8b15-08df89f8b40d" xlink:href="tgen-20241231.xsd#tgen_PPPLoanProgramMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DebtInstrumentNameDomain_42205817-6c83-4c50-9333-73a9f6a9adab" xlink:to="loc_tgen_PPPLoanProgramMember_02cb3705-dca8-48d8-8b15-08df89f8b40d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LineOfCreditFacilityAxis_ed7d797f-a996-4e3e-83a4-e614d163855d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LineOfCreditFacilityAxis"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_OperatingLossCarryforwardsTable_c42cbb5c-df3b-413a-865d-3e460521adad" xlink:to="loc_us-gaap_LineOfCreditFacilityAxis_ed7d797f-a996-4e3e-83a4-e614d163855d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LineOfCreditFacilityLenderDomain_25de42d0-a934-47e5-9177-16eb660663b8" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LineOfCreditFacilityLenderDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LineOfCreditFacilityAxis_ed7d797f-a996-4e3e-83a4-e614d163855d" xlink:to="loc_us-gaap_LineOfCreditFacilityLenderDomain_25de42d0-a934-47e5-9177-16eb660663b8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_WebsterBusinessCreditCorporationMember_1641e5d7-85c9-4958-9e88-75db06fe0fdf" xlink:href="tgen-20241231.xsd#tgen_WebsterBusinessCreditCorporationMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LineOfCreditFacilityLenderDomain_25de42d0-a934-47e5-9177-16eb660663b8" xlink:to="loc_tgen_WebsterBusinessCreditCorporationMember_1641e5d7-85c9-4958-9e88-75db06fe0fdf" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLossCarryforwardsLineItems_f9ab1764-e8ba-4483-ba8d-88eb4dce67f7" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLossCarryforwardsLineItems"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_OperatingLossCarryforwardsTable_c42cbb5c-df3b-413a-865d-3e460521adad" xlink:to="loc_us-gaap_OperatingLossCarryforwardsLineItems_f9ab1764-e8ba-4483-ba8d-88eb4dce67f7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLossCarryforwards_8de1c610-00a8-49cb-ac56-513a7d11b24e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLossCarryforwards"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_OperatingLossCarryforwardsLineItems_f9ab1764-e8ba-4483-ba8d-88eb4dce67f7" xlink:to="loc_us-gaap_OperatingLossCarryforwards_8de1c610-00a8-49cb-ac56-513a7d11b24e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_OperatingLossCarryforwardsExpired_b7bc2cc6-84db-4ea1-8e1b-14c7e9921968" xlink:href="tgen-20241231.xsd#tgen_OperatingLossCarryforwardsExpired"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_OperatingLossCarryforwardsLineItems_f9ab1764-e8ba-4483-ba8d-88eb4dce67f7" xlink:to="loc_tgen_OperatingLossCarryforwardsExpired_b7bc2cc6-84db-4ea1-8e1b-14c7e9921968" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_EffectiveIncomeTaxRateReconciliationOperatingLossCarryforwardExpired_a88592f4-b7ab-4660-9cc2-39c256723a51" xlink:href="tgen-20241231.xsd#tgen_EffectiveIncomeTaxRateReconciliationOperatingLossCarryforwardExpired"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_OperatingLossCarryforwardsLineItems_f9ab1764-e8ba-4483-ba8d-88eb4dce67f7" xlink:to="loc_tgen_EffectiveIncomeTaxRateReconciliationOperatingLossCarryforwardExpired_a88592f4-b7ab-4660-9cc2-39c256723a51" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsSubjectToExpiration_c25043e5-8635-4bb0-8040-85f2ca517edd" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsSubjectToExpiration"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_OperatingLossCarryforwardsLineItems_f9ab1764-e8ba-4483-ba8d-88eb4dce67f7" xlink:to="loc_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsSubjectToExpiration_c25043e5-8635-4bb0-8040-85f2ca517edd" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsNotSubjectToExpiration_1f7990b2-a8ff-4d4c-897e-a96e812f4d0f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsNotSubjectToExpiration"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_OperatingLossCarryforwardsLineItems_f9ab1764-e8ba-4483-ba8d-88eb4dce67f7" xlink:to="loc_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsNotSubjectToExpiration_1f7990b2-a8ff-4d4c-897e-a96e812f4d0f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance_50af6964-34b0-4c69-a306-223f9d07c210" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_OperatingLossCarryforwardsLineItems_f9ab1764-e8ba-4483-ba8d-88eb4dce67f7" xlink:to="loc_us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance_50af6964-34b0-4c69-a306-223f9d07c210" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NotesPayableToBank_29858c59-b0a8-4bd2-b58a-2dbf35ca4fd0" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NotesPayableToBank"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_OperatingLossCarryforwardsLineItems_f9ab1764-e8ba-4483-ba8d-88eb4dce67f7" xlink:to="loc_us-gaap_NotesPayableToBank_29858c59-b0a8-4bd2-b58a-2dbf35ca4fd0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_DebtInstrumentPrincipalDecreaseForgiveness_12f92d74-e6d8-4f0c-8dec-16b042c5a102" xlink:href="tgen-20241231.xsd#tgen_DebtInstrumentPrincipalDecreaseForgiveness"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_OperatingLossCarryforwardsLineItems_f9ab1764-e8ba-4483-ba8d-88eb4dce67f7" xlink:to="loc_tgen_DebtInstrumentPrincipalDecreaseForgiveness_12f92d74-e6d8-4f0c-8dec-16b042c5a102" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtInstrumentDecreaseForgiveness_6c367754-049b-47fb-bb31-4ebc246a455a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentDecreaseForgiveness"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_OperatingLossCarryforwardsLineItems_f9ab1764-e8ba-4483-ba8d-88eb4dce67f7" xlink:to="loc_us-gaap_DebtInstrumentDecreaseForgiveness_6c367754-049b-47fb-bb31-4ebc246a455a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_DebtInstrumentForgivenessAccruedInterest_501e1d47-7114-4271-a7c2-e24b191e300f" xlink:href="tgen-20241231.xsd#tgen_DebtInstrumentForgivenessAccruedInterest"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_OperatingLossCarryforwardsLineItems_f9ab1764-e8ba-4483-ba8d-88eb4dce67f7" xlink:to="loc_tgen_DebtInstrumentForgivenessAccruedInterest_501e1d47-7114-4271-a7c2-e24b191e300f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsidiaryOrEquityMethodInvesteeCumulativePercentageOwnershipAfterAllTransactions_e98a9279-df01-4783-8e05-4ff38873093a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsidiaryOrEquityMethodInvesteeCumulativePercentageOwnershipAfterAllTransactions"/>
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_OperatingLossCarryforwardsLineItems_f9ab1764-e8ba-4483-ba8d-88eb4dce67f7" xlink:to="loc_us-gaap_SubsidiaryOrEquityMethodInvesteeCumulativePercentageOwnershipAfterAllTransactions_e98a9279-df01-4783-8e05-4ff38873093a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AcquisitionAnnualNOLLimitationAmount_66841d14-9f29-4fba-a9be-848b1da09da6" xlink:href="tgen-20241231.xsd#tgen_AcquisitionAnnualNOLLimitationAmount"/>
    <link:presentationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_OperatingLossCarryforwardsLineItems_f9ab1764-e8ba-4483-ba8d-88eb4dce67f7" xlink:to="loc_tgen_AcquisitionAnnualNOLLimitationAmount_66841d14-9f29-4fba-a9be-848b1da09da6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AcquisitionNetOperatingLossLimitationPeriod_01febf5c-691c-47a1-9557-2482e04a459f" xlink:href="tgen-20241231.xsd#tgen_AcquisitionNetOperatingLossLimitationPeriod"/>
    <link:presentationArc order="13" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_OperatingLossCarryforwardsLineItems_f9ab1764-e8ba-4483-ba8d-88eb4dce67f7" xlink:to="loc_tgen_AcquisitionNetOperatingLossLimitationPeriod_01febf5c-691c-47a1-9557-2482e04a459f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.tecogen.com/role/SubsequentEventsDetails" xlink:type="simple" xlink:href="tgen-20241231.xsd#SubsequentEventsDetails"/>
  <link:presentationLink xlink:role="http://www.tecogen.com/role/SubsequentEventsDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventsAbstract_454d89c3-c555-479e-ba5b-183cf1bde4f6" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsequentEventsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventTable_ae73e9eb-7b9a-4c36-aab8-bef680cb26ad" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsequentEventTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SubsequentEventsAbstract_454d89c3-c555-479e-ba5b-183cf1bde4f6" xlink:to="loc_us-gaap_SubsequentEventTable_ae73e9eb-7b9a-4c36-aab8-bef680cb26ad" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventTypeAxis_dfe971c6-00b7-4dd5-9e3d-e39357fb7c18" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsequentEventTypeAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SubsequentEventTable_ae73e9eb-7b9a-4c36-aab8-bef680cb26ad" xlink:to="loc_us-gaap_SubsequentEventTypeAxis_dfe971c6-00b7-4dd5-9e3d-e39357fb7c18" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventTypeDomain_57288b0f-7fd8-4062-b76c-d2772ed6f093" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsequentEventTypeDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SubsequentEventTypeAxis_dfe971c6-00b7-4dd5-9e3d-e39357fb7c18" xlink:to="loc_us-gaap_SubsequentEventTypeDomain_57288b0f-7fd8-4062-b76c-d2772ed6f093" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventMember_4b0b175e-402a-4406-b797-9bd985ca5ad4" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsequentEventMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SubsequentEventTypeDomain_57288b0f-7fd8-4062-b76c-d2772ed6f093" xlink:to="loc_us-gaap_SubsequentEventMember_4b0b175e-402a-4406-b797-9bd985ca5ad4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_LitigationCaseAxis_b9147c41-3268-4a12-a75c-1f6cb5b4e9d2" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_LitigationCaseAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SubsequentEventTable_ae73e9eb-7b9a-4c36-aab8-bef680cb26ad" xlink:to="loc_srt_LitigationCaseAxis_b9147c41-3268-4a12-a75c-1f6cb5b4e9d2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_LitigationCaseTypeDomain_9194d42d-4a69-4da1-a974-baf267d3d2b2" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_LitigationCaseTypeDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_LitigationCaseAxis_b9147c41-3268-4a12-a75c-1f6cb5b4e9d2" xlink:to="loc_srt_LitigationCaseTypeDomain_9194d42d-4a69-4da1-a974-baf267d3d2b2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_TheCorporationOfTheTownOfMiltonMiltonEnergyGenerationSolutionsInc.AndMiltonHydroDistributionIncMember_8edfb9c6-5891-4454-a5a8-b67aea0f736d" xlink:href="tgen-20241231.xsd#tgen_TheCorporationOfTheTownOfMiltonMiltonEnergyGenerationSolutionsInc.AndMiltonHydroDistributionIncMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_LitigationCaseTypeDomain_9194d42d-4a69-4da1-a974-baf267d3d2b2" xlink:to="loc_tgen_TheCorporationOfTheTownOfMiltonMiltonEnergyGenerationSolutionsInc.AndMiltonHydroDistributionIncMember_8edfb9c6-5891-4454-a5a8-b67aea0f736d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyTransactionAxis_e9ef4e83-cb72-4206-b221-ae647f875720" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RelatedPartyTransactionAxis"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SubsequentEventTable_ae73e9eb-7b9a-4c36-aab8-bef680cb26ad" xlink:to="loc_us-gaap_RelatedPartyTransactionAxis_e9ef4e83-cb72-4206-b221-ae647f875720" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyTransactionDomain_56e0db88-b56d-4624-b551-12523965b167" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RelatedPartyTransactionDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RelatedPartyTransactionAxis_e9ef4e83-cb72-4206-b221-ae647f875720" xlink:to="loc_us-gaap_RelatedPartyTransactionDomain_56e0db88-b56d-4624-b551-12523965b167" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_AverageClosingSharePriceMember_57b6442f-c234-430c-8c76-be61d93558b9" xlink:href="tgen-20241231.xsd#tgen_AverageClosingSharePriceMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RelatedPartyTransactionDomain_56e0db88-b56d-4624-b551-12523965b167" xlink:to="loc_tgen_AverageClosingSharePriceMember_57b6442f-c234-430c-8c76-be61d93558b9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis_461d3c54-e6d3-418c-8f26-6c4c493d0c5e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RelatedPartyTransactionsByRelatedPartyAxis"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SubsequentEventTable_ae73e9eb-7b9a-4c36-aab8-bef680cb26ad" xlink:to="loc_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis_461d3c54-e6d3-418c-8f26-6c4c493d0c5e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyDomain_a1f6a859-c971-4e5e-8f9d-d07da09f5154" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RelatedPartyDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis_461d3c54-e6d3-418c-8f26-6c4c493d0c5e" xlink:to="loc_us-gaap_RelatedPartyDomain_a1f6a859-c971-4e5e-8f9d-d07da09f5154" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_DirectorMember_e6665629-5eb6-49f3-bac6-dea9f0cf1d05" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_DirectorMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RelatedPartyDomain_a1f6a859-c971-4e5e-8f9d-d07da09f5154" xlink:to="loc_srt_DirectorMember_e6665629-5eb6-49f3-bac6-dea9f0cf1d05" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventLineItems_4cc84077-1022-4172-8c65-92205467c5fa" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsequentEventLineItems"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SubsequentEventTable_ae73e9eb-7b9a-4c36-aab8-bef680cb26ad" xlink:to="loc_us-gaap_SubsequentEventLineItems_4cc84077-1022-4172-8c65-92205467c5fa" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LossContingencyDamagesAwardedValue_7d347083-4b82-4d2c-bfa8-aefa95d2bdff" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LossContingencyDamagesAwardedValue"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SubsequentEventLineItems_4cc84077-1022-4172-8c65-92205467c5fa" xlink:to="loc_us-gaap_LossContingencyDamagesAwardedValue_7d347083-4b82-4d2c-bfa8-aefa95d2bdff" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LossContingencyDamagesPaidValue_71c0c9ba-2739-4710-8b08-67b1e5e58055" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LossContingencyDamagesPaidValue"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SubsequentEventLineItems_4cc84077-1022-4172-8c65-92205467c5fa" xlink:to="loc_us-gaap_LossContingencyDamagesPaidValue_71c0c9ba-2739-4710-8b08-67b1e5e58055" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_LitigationSettlementFeeExpenseBenefit_676bc263-adb8-456a-9f9f-53a5ac164911" xlink:href="tgen-20241231.xsd#tgen_LitigationSettlementFeeExpenseBenefit"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SubsequentEventLineItems_4cc84077-1022-4172-8c65-92205467c5fa" xlink:to="loc_tgen_LitigationSettlementFeeExpenseBenefit_676bc263-adb8-456a-9f9f-53a5ac164911" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_SalesAndMarketingAgreementTerm_ab8c5d35-b395-4766-9dc7-e8da84e0738d" xlink:href="tgen-20241231.xsd#tgen_SalesAndMarketingAgreementTerm"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SubsequentEventLineItems_4cc84077-1022-4172-8c65-92205467c5fa" xlink:to="loc_tgen_SalesAndMarketingAgreementTerm_ab8c5d35-b395-4766-9dc7-e8da84e0738d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_tgen_RelatedPartyTransactionPeriod_2200964a-813c-403d-acab-5f94ef01ac62" xlink:href="tgen-20241231.xsd#tgen_RelatedPartyTransactionPeriod"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SubsequentEventLineItems_4cc84077-1022-4172-8c65-92205467c5fa" xlink:to="loc_tgen_RelatedPartyTransactionPeriod_2200964a-813c-403d-acab-5f94ef01ac62" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" xlink:type="simple" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#AwardTimingDisclosure"/>
  <link:presentationLink xlink:role="http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardTmgDiscLineItems" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AwardTmgDiscLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardTmgMnpiDiscTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AwardTmgMnpiDiscTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AwardTmgDiscLineItems" xlink:to="loc_ecd_AwardTmgMnpiDiscTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardTmgMethodTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AwardTmgMethodTextBlock"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AwardTmgDiscLineItems" xlink:to="loc_ecd_AwardTmgMethodTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardTmgPredtrmndFlag" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AwardTmgPredtrmndFlag"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AwardTmgDiscLineItems" xlink:to="loc_ecd_AwardTmgPredtrmndFlag" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardTmgMnpiCnsdrdFlag" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AwardTmgMnpiCnsdrdFlag"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AwardTmgDiscLineItems" xlink:to="loc_ecd_AwardTmgMnpiCnsdrdFlag" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardTmgHowMnpiCnsdrdTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AwardTmgHowMnpiCnsdrdTextBlock"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AwardTmgDiscLineItems" xlink:to="loc_ecd_AwardTmgHowMnpiCnsdrdTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_MnpiDiscTimedForCompValFlag" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_MnpiDiscTimedForCompValFlag"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AwardTmgDiscLineItems" xlink:to="loc_ecd_MnpiDiscTimedForCompValFlag" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardsCloseToMnpiDiscTableTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AwardsCloseToMnpiDiscTableTextBlock"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AwardTmgDiscLineItems" xlink:to="loc_ecd_AwardsCloseToMnpiDiscTableTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardsCloseToMnpiDiscTable" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AwardsCloseToMnpiDiscTable"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AwardTmgDiscLineItems" xlink:to="loc_ecd_AwardsCloseToMnpiDiscTable" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_IndividualAxis" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_IndividualAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AwardsCloseToMnpiDiscTable" xlink:to="loc_ecd_IndividualAxis" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AllIndividualsMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AllIndividualsMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_IndividualAxis" xlink:to="loc_ecd_AllIndividualsMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AwardTypeAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AwardTypeAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AwardsCloseToMnpiDiscTable" xlink:to="loc_us-gaap_AwardTypeAxis" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AwardTypeAxis" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeStockOptionMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeStockOptionMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="loc_us-gaap_EmployeeStockOptionMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockAppreciationRightsSARSMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockAppreciationRightsSARSMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="loc_us-gaap_StockAppreciationRightsSARSMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardsCloseToMnpiDiscIndName" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AwardsCloseToMnpiDiscIndName"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AwardTmgDiscLineItems" xlink:to="loc_ecd_AwardsCloseToMnpiDiscIndName" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardUndrlygSecuritiesAmt" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AwardUndrlygSecuritiesAmt"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AwardTmgDiscLineItems" xlink:to="loc_ecd_AwardUndrlygSecuritiesAmt" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardExrcPrice" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AwardExrcPrice"/>
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AwardTmgDiscLineItems" xlink:to="loc_ecd_AwardExrcPrice" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardGrantDateFairValue" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AwardGrantDateFairValue"/>
    <link:presentationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AwardTmgDiscLineItems" xlink:to="loc_ecd_AwardGrantDateFairValue" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_UndrlygSecurityMktPriceChngPct" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_UndrlygSecurityMktPriceChngPct"/>
    <link:presentationArc order="13" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AwardTmgDiscLineItems" xlink:to="loc_ecd_UndrlygSecurityMktPriceChngPct" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" xlink:type="simple" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ErrCompDisclosure"/>
  <link:presentationLink xlink:role="http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_ecd_RecoveryOfErrCompDisclosureLineItems" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_RecoveryOfErrCompDisclosureLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_ErrCompRecoveryTable" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_ErrCompRecoveryTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_RecoveryOfErrCompDisclosureLineItems" xlink:to="loc_ecd_ErrCompRecoveryTable" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_RestatementDateAxis" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_RestatementDateAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_ErrCompRecoveryTable" xlink:to="loc_ecd_RestatementDateAxis" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_IndividualAxis" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_IndividualAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_ErrCompRecoveryTable" xlink:to="loc_ecd_IndividualAxis" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AllIndividualsMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AllIndividualsMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_IndividualAxis" xlink:to="loc_ecd_AllIndividualsMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_NonNeosMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_NonNeosMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AllIndividualsMember" xlink:to="loc_ecd_NonNeosMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_RestatementDeterminationDate" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_RestatementDeterminationDate"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_RecoveryOfErrCompDisclosureLineItems" xlink:to="loc_ecd_RestatementDeterminationDate" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AggtErrCompAmt" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AggtErrCompAmt"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_RecoveryOfErrCompDisclosureLineItems" xlink:to="loc_ecd_AggtErrCompAmt" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_ErrCompAnalysisTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_ErrCompAnalysisTextBlock"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_RecoveryOfErrCompDisclosureLineItems" xlink:to="loc_ecd_ErrCompAnalysisTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_StkPrcOrTsrEstimationMethodTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_StkPrcOrTsrEstimationMethodTextBlock"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_RecoveryOfErrCompDisclosureLineItems" xlink:to="loc_ecd_StkPrcOrTsrEstimationMethodTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_OutstandingAggtErrCompAmt" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_OutstandingAggtErrCompAmt"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_RecoveryOfErrCompDisclosureLineItems" xlink:to="loc_ecd_OutstandingAggtErrCompAmt" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AggtErrCompNotYetDeterminedTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AggtErrCompNotYetDeterminedTextBlock"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_RecoveryOfErrCompDisclosureLineItems" xlink:to="loc_ecd_AggtErrCompNotYetDeterminedTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_ForgoneRecoveryIndName" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_ForgoneRecoveryIndName"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_RecoveryOfErrCompDisclosureLineItems" xlink:to="loc_ecd_ForgoneRecoveryIndName" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_ForgoneRecoveryDueToExpenseOfEnforcementAmt" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_ForgoneRecoveryDueToExpenseOfEnforcementAmt"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_RecoveryOfErrCompDisclosureLineItems" xlink:to="loc_ecd_ForgoneRecoveryDueToExpenseOfEnforcementAmt" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_ForgoneRecoveryDueToViolationOfHomeCountryLawAmt" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_ForgoneRecoveryDueToViolationOfHomeCountryLawAmt"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_RecoveryOfErrCompDisclosureLineItems" xlink:to="loc_ecd_ForgoneRecoveryDueToViolationOfHomeCountryLawAmt" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_ForgoneRecoveryDueToDisqualificationOfTaxBenefitsAmt" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_ForgoneRecoveryDueToDisqualificationOfTaxBenefitsAmt"/>
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_RecoveryOfErrCompDisclosureLineItems" xlink:to="loc_ecd_ForgoneRecoveryDueToDisqualificationOfTaxBenefitsAmt" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_ForgoneRecoveryExplanationOfImpracticabilityTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_ForgoneRecoveryExplanationOfImpracticabilityTextBlock"/>
    <link:presentationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_RecoveryOfErrCompDisclosureLineItems" xlink:to="loc_ecd_ForgoneRecoveryExplanationOfImpracticabilityTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_OutstandingRecoveryIndName" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_OutstandingRecoveryIndName"/>
    <link:presentationArc order="13" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_RecoveryOfErrCompDisclosureLineItems" xlink:to="loc_ecd_OutstandingRecoveryIndName" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_OutstandingRecoveryCompAmt" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_OutstandingRecoveryCompAmt"/>
    <link:presentationArc order="14" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_RecoveryOfErrCompDisclosureLineItems" xlink:to="loc_ecd_OutstandingRecoveryCompAmt" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_RestatementDoesNotRequireRecoveryTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_RestatementDoesNotRequireRecoveryTextBlock"/>
    <link:presentationArc order="15" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_RecoveryOfErrCompDisclosureLineItems" xlink:to="loc_ecd_RestatementDoesNotRequireRecoveryTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://xbrl.sec.gov/ecd/role/PvpDisclosure" xlink:type="simple" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#PvpDisclosure"/>
  <link:presentationLink xlink:role="http://xbrl.sec.gov/ecd/role/PvpDisclosure" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_PayVsPerformanceDisclosureLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_PvpTable" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_PvpTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_PvpTable" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_ExecutiveCategoryAxis" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_ExecutiveCategoryAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PvpTable" xlink:to="loc_ecd_ExecutiveCategoryAxis" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AllExecutiveCategoriesMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AllExecutiveCategoriesMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_ExecutiveCategoryAxis" xlink:to="loc_ecd_AllExecutiveCategoriesMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_PeoMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_PeoMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AllExecutiveCategoriesMember" xlink:to="loc_ecd_PeoMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_NonPeoNeoMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_NonPeoNeoMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AllExecutiveCategoriesMember" xlink:to="loc_ecd_NonPeoNeoMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_IndividualAxis" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_IndividualAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PvpTable" xlink:to="loc_ecd_IndividualAxis" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AllIndividualsMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AllIndividualsMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_IndividualAxis" xlink:to="loc_ecd_AllIndividualsMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AdjToCompAxis" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AdjToCompAxis"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PvpTable" xlink:to="loc_ecd_AdjToCompAxis" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AllAdjToCompMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AllAdjToCompMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AdjToCompAxis" xlink:to="loc_ecd_AllAdjToCompMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AggtChngPnsnValInSummryCompstnTblForAplblYrMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AggtChngPnsnValInSummryCompstnTblForAplblYrMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AllAdjToCompMember" xlink:to="loc_ecd_AggtChngPnsnValInSummryCompstnTblForAplblYrMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AggtPnsnAdjsSvcCstMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AggtPnsnAdjsSvcCstMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AllAdjToCompMember" xlink:to="loc_ecd_AggtPnsnAdjsSvcCstMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_PnsnAdjsSvcCstMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_PnsnAdjsSvcCstMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AggtPnsnAdjsSvcCstMember" xlink:to="loc_ecd_PnsnAdjsSvcCstMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_PnsnAdjsPrrSvcCstMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_PnsnAdjsPrrSvcCstMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AggtPnsnAdjsSvcCstMember" xlink:to="loc_ecd_PnsnAdjsPrrSvcCstMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_EqtyAwrdsAdjsMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_EqtyAwrdsAdjsMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AllAdjToCompMember" xlink:to="loc_ecd_EqtyAwrdsAdjsMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_EqtyAwrdsInSummryCompstnTblForAplblYrMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_EqtyAwrdsInSummryCompstnTblForAplblYrMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_EqtyAwrdsAdjsMember" xlink:to="loc_ecd_EqtyAwrdsInSummryCompstnTblForAplblYrMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_EqtyAwrdsAdjsExclgValRprtdInSummryCompstnTblMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_EqtyAwrdsAdjsExclgValRprtdInSummryCompstnTblMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_EqtyAwrdsAdjsMember" xlink:to="loc_ecd_EqtyAwrdsAdjsExclgValRprtdInSummryCompstnTblMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_YrEndFrValOfEqtyAwrdsGrntdInCvrdYrOutsdngAndUnvstdMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_YrEndFrValOfEqtyAwrdsGrntdInCvrdYrOutsdngAndUnvstdMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_EqtyAwrdsAdjsExclgValRprtdInSummryCompstnTblMember" xlink:to="loc_ecd_YrEndFrValOfEqtyAwrdsGrntdInCvrdYrOutsdngAndUnvstdMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_ChngInFrValOfOutsdngAndUnvstdEqtyAwrdsGrntdInPrrYrsMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_ChngInFrValOfOutsdngAndUnvstdEqtyAwrdsGrntdInPrrYrsMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_EqtyAwrdsAdjsExclgValRprtdInSummryCompstnTblMember" xlink:to="loc_ecd_ChngInFrValOfOutsdngAndUnvstdEqtyAwrdsGrntdInPrrYrsMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_VstngDtFrValOfEqtyAwrdsGrntdAndVstdInCvrdYrMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_VstngDtFrValOfEqtyAwrdsGrntdAndVstdInCvrdYrMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_EqtyAwrdsAdjsExclgValRprtdInSummryCompstnTblMember" xlink:to="loc_ecd_VstngDtFrValOfEqtyAwrdsGrntdAndVstdInCvrdYrMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_ChngInFrValAsOfVstngDtOfPrrYrEqtyAwrdsVstdInCvrdYrMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_ChngInFrValAsOfVstngDtOfPrrYrEqtyAwrdsVstdInCvrdYrMember"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_EqtyAwrdsAdjsExclgValRprtdInSummryCompstnTblMember" xlink:to="loc_ecd_ChngInFrValAsOfVstngDtOfPrrYrEqtyAwrdsVstdInCvrdYrMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_FrValAsOfPrrYrEndOfEqtyAwrdsGrntdInPrrYrsFldVstngCondsDrngCvrdYrMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_FrValAsOfPrrYrEndOfEqtyAwrdsGrntdInPrrYrsFldVstngCondsDrngCvrdYrMember"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_EqtyAwrdsAdjsExclgValRprtdInSummryCompstnTblMember" xlink:to="loc_ecd_FrValAsOfPrrYrEndOfEqtyAwrdsGrntdInPrrYrsFldVstngCondsDrngCvrdYrMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_DvddsOrOthrErngsPdOnEqtyAwrdsNtOthrwsRflctdInTtlCompForCvrdYrMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_DvddsOrOthrErngsPdOnEqtyAwrdsNtOthrwsRflctdInTtlCompForCvrdYrMember"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_EqtyAwrdsAdjsExclgValRprtdInSummryCompstnTblMember" xlink:to="loc_ecd_DvddsOrOthrErngsPdOnEqtyAwrdsNtOthrwsRflctdInTtlCompForCvrdYrMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_MeasureAxis" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_MeasureAxis"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PvpTable" xlink:to="loc_ecd_MeasureAxis" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_PvpTableTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_PvpTableTextBlock"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_PvpTableTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_CoSelectedMeasureName" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_CoSelectedMeasureName"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_CoSelectedMeasureName" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_NamedExecutiveOfficersFnTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_NamedExecutiveOfficersFnTextBlock"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_NamedExecutiveOfficersFnTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_PeerGroupIssuersFnTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_PeerGroupIssuersFnTextBlock"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_PeerGroupIssuersFnTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_ChangedPeerGroupFnTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_ChangedPeerGroupFnTextBlock"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_ChangedPeerGroupFnTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_PeoTotalCompAmt" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_PeoTotalCompAmt"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_PeoTotalCompAmt" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_PeoActuallyPaidCompAmt" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_PeoActuallyPaidCompAmt"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_PeoActuallyPaidCompAmt" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AdjToPeoCompFnTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AdjToPeoCompFnTextBlock"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_AdjToPeoCompFnTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_NonPeoNeoAvgTotalCompAmt" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_NonPeoNeoAvgTotalCompAmt"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_NonPeoNeoAvgTotalCompAmt" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_NonPeoNeoAvgCompActuallyPaidAmt" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_NonPeoNeoAvgCompActuallyPaidAmt"/>
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_NonPeoNeoAvgCompActuallyPaidAmt" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AdjToNonPeoNeoCompFnTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AdjToNonPeoNeoCompFnTextBlock"/>
    <link:presentationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_AdjToNonPeoNeoCompFnTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_EquityValuationAssumptionDifferenceFnTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_EquityValuationAssumptionDifferenceFnTextBlock"/>
    <link:presentationArc order="13" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_EquityValuationAssumptionDifferenceFnTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_CompActuallyPaidVsTotalShareholderRtnTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_CompActuallyPaidVsTotalShareholderRtnTextBlock"/>
    <link:presentationArc order="14" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_CompActuallyPaidVsTotalShareholderRtnTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_CompActuallyPaidVsNetIncomeTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_CompActuallyPaidVsNetIncomeTextBlock"/>
    <link:presentationArc order="15" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_CompActuallyPaidVsNetIncomeTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_CompActuallyPaidVsCoSelectedMeasureTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_CompActuallyPaidVsCoSelectedMeasureTextBlock"/>
    <link:presentationArc order="16" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_CompActuallyPaidVsCoSelectedMeasureTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TotalShareholderRtnVsPeerGroupTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_TotalShareholderRtnVsPeerGroupTextBlock"/>
    <link:presentationArc order="17" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_TotalShareholderRtnVsPeerGroupTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_CompActuallyPaidVsOtherMeasureTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_CompActuallyPaidVsOtherMeasureTextBlock"/>
    <link:presentationArc order="18" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_CompActuallyPaidVsOtherMeasureTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TabularListTableTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_TabularListTableTextBlock"/>
    <link:presentationArc order="19" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_TabularListTableTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TotalShareholderRtnAmt" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_TotalShareholderRtnAmt"/>
    <link:presentationArc order="20" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_TotalShareholderRtnAmt" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_PeerGroupTotalShareholderRtnAmt" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_PeerGroupTotalShareholderRtnAmt"/>
    <link:presentationArc order="21" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_PeerGroupTotalShareholderRtnAmt" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetIncomeLoss" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetIncomeLoss"/>
    <link:presentationArc order="22" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_us-gaap_NetIncomeLoss" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_CoSelectedMeasureAmt" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_CoSelectedMeasureAmt"/>
    <link:presentationArc order="23" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_CoSelectedMeasureAmt" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_OtherPerfMeasureAmt" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_OtherPerfMeasureAmt"/>
    <link:presentationArc order="24" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_OtherPerfMeasureAmt" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AdjToCompAmt" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AdjToCompAmt"/>
    <link:presentationArc order="25" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_AdjToCompAmt" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_PeoName" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_PeoName"/>
    <link:presentationArc order="26" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_PeoName" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_MeasureName" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_MeasureName"/>
    <link:presentationArc order="27" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_MeasureName" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_NonGaapMeasureDescriptionTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_NonGaapMeasureDescriptionTextBlock"/>
    <link:presentationArc order="28" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_NonGaapMeasureDescriptionTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_Additional402vDisclosureTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_Additional402vDisclosureTextBlock"/>
    <link:presentationArc order="29" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_Additional402vDisclosureTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_PnsnBnftsAdjFnTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_PnsnBnftsAdjFnTextBlock"/>
    <link:presentationArc order="30" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_PnsnBnftsAdjFnTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_EqtyAwrdsAdjFnTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_EqtyAwrdsAdjFnTextBlock"/>
    <link:presentationArc order="31" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_EqtyAwrdsAdjFnTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" xlink:type="simple" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#InsiderTradingArrangements"/>
  <link:presentationLink xlink:role="http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_ecd_InsiderTradingArrLineItems" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_InsiderTradingArrLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TradingArrByIndTable" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_TradingArrByIndTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_InsiderTradingArrLineItems" xlink:to="loc_ecd_TradingArrByIndTable" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TradingArrAxis" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_TradingArrAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_TradingArrByIndTable" xlink:to="loc_ecd_TradingArrAxis" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AllTradingArrangementsMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AllTradingArrangementsMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_TradingArrAxis" xlink:to="loc_ecd_AllTradingArrangementsMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_IndividualAxis" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_IndividualAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_TradingArrByIndTable" xlink:to="loc_ecd_IndividualAxis" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AllIndividualsMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AllIndividualsMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_IndividualAxis" xlink:to="loc_ecd_AllIndividualsMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_MtrlTermsOfTrdArrTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_MtrlTermsOfTrdArrTextBlock"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_InsiderTradingArrLineItems" xlink:to="loc_ecd_MtrlTermsOfTrdArrTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TrdArrIndName" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_TrdArrIndName"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_InsiderTradingArrLineItems" xlink:to="loc_ecd_TrdArrIndName" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TrdArrIndTitle" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_TrdArrIndTitle"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_InsiderTradingArrLineItems" xlink:to="loc_ecd_TrdArrIndTitle" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_Rule10b51ArrAdoptedFlag" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_Rule10b51ArrAdoptedFlag"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_InsiderTradingArrLineItems" xlink:to="loc_ecd_Rule10b51ArrAdoptedFlag" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_NonRule10b51ArrAdoptedFlag" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_NonRule10b51ArrAdoptedFlag"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_InsiderTradingArrLineItems" xlink:to="loc_ecd_NonRule10b51ArrAdoptedFlag" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TrdArrAdoptionDate" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_TrdArrAdoptionDate"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_InsiderTradingArrLineItems" xlink:to="loc_ecd_TrdArrAdoptionDate" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_Rule10b51ArrTrmntdFlag" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_Rule10b51ArrTrmntdFlag"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_InsiderTradingArrLineItems" xlink:to="loc_ecd_Rule10b51ArrTrmntdFlag" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_NonRule10b51ArrTrmntdFlag" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_NonRule10b51ArrTrmntdFlag"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_InsiderTradingArrLineItems" xlink:to="loc_ecd_NonRule10b51ArrTrmntdFlag" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TrdArrTerminationDate" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_TrdArrTerminationDate"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_InsiderTradingArrLineItems" xlink:to="loc_ecd_TrdArrTerminationDate" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TrdArrExpirationDate" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_TrdArrExpirationDate"/>
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_InsiderTradingArrLineItems" xlink:to="loc_ecd_TrdArrExpirationDate" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TrdArrDuration" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_TrdArrDuration"/>
    <link:presentationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_InsiderTradingArrLineItems" xlink:to="loc_ecd_TrdArrDuration" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TrdArrSecuritiesAggAvailAmt" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_TrdArrSecuritiesAggAvailAmt"/>
    <link:presentationArc order="13" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_InsiderTradingArrLineItems" xlink:to="loc_ecd_TrdArrSecuritiesAggAvailAmt" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://xbrl.sec.gov/ecd/role/InsiderTradingPoliciesProc" xlink:type="simple" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#InsiderTradingPoliciesProc"/>
  <link:presentationLink xlink:role="http://xbrl.sec.gov/ecd/role/InsiderTradingPoliciesProc" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_ecd_InsiderTradingPoliciesProcLineItems" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_InsiderTradingPoliciesProcLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_InsiderTrdPoliciesProcAdoptedFlag" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_InsiderTrdPoliciesProcAdoptedFlag"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_InsiderTradingPoliciesProcLineItems" xlink:to="loc_ecd_InsiderTrdPoliciesProcAdoptedFlag" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_InsiderTrdPoliciesProcNotAdoptedTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_InsiderTrdPoliciesProcNotAdoptedTextBlock"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_InsiderTradingPoliciesProcLineItems" xlink:to="loc_ecd_InsiderTrdPoliciesProcNotAdoptedTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>13
<FILENAME>R1.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Cover - USD ($)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Mar. 18, 2025</div></th>
<th class="th"><div>Jun. 30, 2024</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_CoverAbstract', window );"><strong>Cover [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_DocumentType', window );">Document Type</a></td>
<td class="text">10-K<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_DocumentAnnualReport', window );">Document Annual Report</a></td>
<td class="text">true<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_DocumentPeriodEndDate', window );">Document Period End Date</a></td>
<td class="text">Dec. 31,  2024<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_CurrentFiscalYearEndDate', window );">Current Fiscal Year End Date</a></td>
<td class="text">--12-31<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_DocumentTransitionReport', window );">Document Transition Report</a></td>
<td class="text">false<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityFileNumber', window );">Entity File Number</a></td>
<td class="text">001-36103<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityRegistrantName', window );">Entity Registrant Name</a></td>
<td class="text">TECOGEN INC.<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityIncorporationStateCountryCode', window );">Entity Incorporation, State or Country Code</a></td>
<td class="text">DE<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityTaxIdentificationNumber', window );">Entity Tax Identification Number</a></td>
<td class="text">04-3536131<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityAddressAddressLine1', window );">Entity Address, Address Line One</a></td>
<td class="text">76 Treble Cove Road, Bldg. 1<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityAddressCityOrTown', window );">Entity Address, City or Town</a></td>
<td class="text">North Billerica<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityAddressStateOrProvince', window );">Entity Address, State or Province</a></td>
<td class="text">MA<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityAddressPostalZipCode', window );">Entity Address, Postal Zip Code</a></td>
<td class="text">01862<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_CityAreaCode', window );">City Area Code</a></td>
<td class="text">781<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_LocalPhoneNumber', window );">Local Phone Number</a></td>
<td class="text">466-6400<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_Security12gTitle', window );">Title of 12(g) Security</a></td>
<td class="text">Common Stock, $.001 par value per share<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityWellKnownSeasonedIssuer', window );">Entity Well-known Seasoned Issuer</a></td>
<td class="text">No<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityVoluntaryFilers', window );">Entity Voluntary Filers</a></td>
<td class="text">No<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityCurrentReportingStatus', window );">Entity Current Reporting Status</a></td>
<td class="text">Yes<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityInteractiveDataCurrent', window );">Entity Interactive Data Current</a></td>
<td class="text">Yes<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityFilerCategory', window );">Entity Filer Category</a></td>
<td class="text">Non-accelerated Filer<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityEmergingGrowthCompany', window );">Entity Emerging Growth Company</a></td>
<td class="text">false<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntitySmallBusiness', window );">Entity Small Business</a></td>
<td class="text">true<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_IcfrAuditorAttestationFlag', window );">ICFR Auditor Attestation Flag</a></td>
<td class="text">false<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_DocumentFinStmtErrorCorrectionFlag', window );">Document Financial Statement Error Correction [Flag]</a></td>
<td class="text">false<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityShellCompany', window );">Entity Shell Company</a></td>
<td class="text">false<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityPublicFloat', window );">Entity Public Float</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 13,555,089<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityCommonStockSharesOutstanding', window );">Entity Common Stock, Shares Outstanding</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">24,985,261<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_DocumentsIncorporatedByReferenceTextBlock', window );">Documents Incorporated by Reference</a></td>
<td class="text"><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%">Certain information required for Part III of this Annual Report on Form 10-K is incorporated by reference to Tecogen Inc.'s definitive proxy statement for its 2024 Annual Meeting of Stockholders to be filed with the Securities and Exchange Commission pursuant to Regulation 14A under the Securities Exchange Act of 1934, as amended, within 120 days following its fiscal year ended December&#160;31, 2024.</span></div><span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityCentralIndexKey', window );">Entity Central Index Key</a></td>
<td class="text">0001537435<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_DocumentFiscalYearFocus', window );">Document Fiscal Year Focus</a></td>
<td class="text">2024<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_DocumentFiscalPeriodFocus', window );">Document Fiscal Period Focus</a></td>
<td class="text">FY<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_AmendmentFlag', window );">Amendment Flag</a></td>
<td class="text">false<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_AmendmentFlag">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Boolean flag that is true when the XBRL content amends previously-filed or accepted submission.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_AmendmentFlag</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_CityAreaCode">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Area code of city</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_CityAreaCode</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:normalizedStringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_CoverAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Cover page.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_CoverAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_CurrentFiscalYearEndDate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>End date of current fiscal year in the format --MM-DD.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_CurrentFiscalYearEndDate</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:gMonthDayItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_DocumentAnnualReport">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Boolean flag that is true only for a form used as an annual report.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 10-K<br> -Number 249<br> -Section 310<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Number 249<br> -Section 220<br> -Subsection f<br><br>Reference 3: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 40-F<br> -Number 249<br> -Section 240<br> -Subsection f<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_DocumentAnnualReport</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_DocumentFinStmtErrorCorrectionFlag">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Indicates whether any of the financial statement period in the filing include a restatement due to error correction.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Number 229<br> -Section 402<br> -Subsection w<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 10-K<br> -Number 249<br> -Section 310<br><br>Reference 3: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Number 249<br> -Section 220<br> -Subsection f<br><br>Reference 4: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 40-F<br> -Number 249<br> -Section 240<br> -Subsection f<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_DocumentFinStmtErrorCorrectionFlag</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_DocumentFiscalPeriodFocus">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_DocumentFiscalPeriodFocus</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:fiscalPeriodItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_DocumentFiscalYearFocus">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_DocumentFiscalYearFocus</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:gYearItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_DocumentPeriodEndDate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_DocumentPeriodEndDate</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:dateItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_DocumentTransitionReport">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Boolean flag that is true only for a form used as a transition report.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Forms 10-K, 10-Q, 20-F<br> -Number 240<br> -Section 13<br> -Subsection a-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_DocumentTransitionReport</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_DocumentType">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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'.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_DocumentType</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:submissionTypeItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_DocumentsIncorporatedByReferenceTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Documents incorporated by reference.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection b-23<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_DocumentsIncorporatedByReferenceTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityAddressAddressLine1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Address Line 1 such as Attn, Building Name, Street Name</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityAddressAddressLine1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:normalizedStringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityAddressCityOrTown">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Name of the City or Town</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityAddressCityOrTown</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:normalizedStringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityAddressPostalZipCode">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Code for the postal or zip code</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityAddressPostalZipCode</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:normalizedStringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityAddressStateOrProvince">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Name of the state or province.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityAddressStateOrProvince</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:stateOrProvinceItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityCentralIndexKey">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>A unique 10-digit SEC-issued value to identify entities that have filed disclosures with the SEC. It is commonly abbreviated as CIK.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityCentralIndexKey</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:centralIndexKeyItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityCommonStockSharesOutstanding">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityCommonStockSharesOutstanding</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityCurrentReportingStatus">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityCurrentReportingStatus</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:yesNoItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityEmergingGrowthCompany">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Indicate if registrant meets the emerging growth company criteria.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityEmergingGrowthCompany</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityFileNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityFileNumber</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:fileNumberItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityFilerCategory">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityFilerCategory</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:filerCategoryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityIncorporationStateCountryCode">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Two-character EDGAR code representing the state or country of incorporation.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityIncorporationStateCountryCode</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:edgarStateCountryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityInteractiveDataCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-T<br> -Number 232<br> -Section 405<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityInteractiveDataCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:yesNoItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityPublicFloat">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The aggregate market value of the voting and non-voting common equity held by non-affiliates computed by reference to the price at which the common equity was last sold, or the average bid and asked price of such common equity, as of the last business day of the registrant's most recently completed second fiscal quarter.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityPublicFloat</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityRegistrantName">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The exact name of the entity filing the report as specified in its charter, which is required by forms filed with the SEC.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityRegistrantName</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:normalizedStringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityShellCompany">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Boolean flag that is true when the registrant is a shell company as defined in Rule 12b-2 of the Exchange Act.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityShellCompany</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntitySmallBusiness">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Indicates that the company is a Smaller Reporting Company (SRC).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntitySmallBusiness</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityTaxIdentificationNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The Tax Identification Number (TIN), also known as an Employer Identification Number (EIN), is a unique 9-digit value assigned by the IRS.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityTaxIdentificationNumber</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:employerIdItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityVoluntaryFilers">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Indicate 'Yes' or 'No' if the registrant is not required to file reports pursuant to Section 13 or Section 15(d) of the Act.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityVoluntaryFilers</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:yesNoItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityWellKnownSeasonedIssuer">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Indicate 'Yes' or 'No' if the registrant is a well-known seasoned issuer, as defined in Rule 405 of the Securities Act. Is used on Form Type: 10-K, 10-Q, 8-K, 20-F, 6-K, 10-K/A, 10-Q/A, 20-F/A, 6-K/A, N-CSR, N-Q, N-1A.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Securities Act<br> -Number 230<br> -Section 405<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityWellKnownSeasonedIssuer</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:yesNoItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_IcfrAuditorAttestationFlag">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 10-K<br> -Number 249<br> -Section 310<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Number 249<br> -Section 220<br> -Subsection f<br><br>Reference 3: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 40-F<br> -Number 249<br> -Section 240<br> -Subsection f<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_IcfrAuditorAttestationFlag</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_LocalPhoneNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Local phone number for entity.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_LocalPhoneNumber</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:normalizedStringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_Security12gTitle">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Title of a 12(g) registered security.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection g<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_Security12gTitle</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:securityTitleItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>14
<FILENAME>R2.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Audit Information<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_AuditInformationAbstract', window );"><strong>Audit Information [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_AuditorName', window );">Auditor Name</a></td>
<td class="text">WOLF & COMPANY, P.C.<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_AuditorFirmId', window );">Auditor Firm ID</a></td>
<td class="text">392<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_AuditorLocation', window );">Auditor Location</a></td>
<td class="text">Boston, Massachusetts<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_AuditorFirmId">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>PCAOB issued Audit Firm Identifier</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 10-K<br> -Number 249<br> -Section 310<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Number 249<br> -Section 220<br> -Subsection f<br><br>Reference 3: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 40-F<br> -Number 249<br> -Section 240<br> -Subsection f<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_AuditorFirmId</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:nonemptySequenceNumberItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_AuditorLocation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 10-K<br> -Number 249<br> -Section 310<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Number 249<br> -Section 220<br> -Subsection f<br><br>Reference 3: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 40-F<br> -Number 249<br> -Section 240<br> -Subsection f<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_AuditorLocation</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:internationalNameItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_AuditorName">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 10-K<br> -Number 249<br> -Section 310<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Number 249<br> -Section 220<br> -Subsection f<br><br>Reference 3: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 40-F<br> -Number 249<br> -Section 240<br> -Subsection f<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_AuditorName</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:internationalNameItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_AuditInformationAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Audit Information</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_AuditInformationAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>15
<FILENAME>R3.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Consolidated Balance Sheets - USD ($)<br></strong></div></th>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AssetsCurrentAbstract', window );"><strong>Current assets:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashAndCashEquivalentsAtCarryingValue', window );">Cash and cash equivalents</a></td>
<td class="nump">$ 5,405,233<span></span>
</td>
<td class="nump">$ 1,351,270<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccountsReceivableNetCurrent', window );">Accounts receivable, net</a></td>
<td class="nump">6,026,545<span></span>
</td>
<td class="nump">6,735,336<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_EmployeeRetentionCreditCurrent', window );">Employee retention credit receivable</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">46,148<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ContractWithCustomerAssetNetCurrent', window );">Unbilled revenue</a></td>
<td class="nump">398,898<span></span>
</td>
<td class="nump">1,258,532<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InventoryNet', window );">Inventory, net</a></td>
<td class="nump">9,634,005<span></span>
</td>
<td class="nump">10,553,419<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PrepaidExpenseAndOtherAssetsCurrent', window );">Prepaid and other current assets</a></td>
<td class="nump">680,565<span></span>
</td>
<td class="nump">360,639<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AssetsCurrent', window );">Total current assets</a></td>
<td class="nump">22,145,246<span></span>
</td>
<td class="nump">20,305,344<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentNet', window );">Property, plant and equipment, net</a></td>
<td class="nump">1,738,036<span></span>
</td>
<td class="nump">1,162,577<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseRightOfUseAsset', window );">Right of use assets - operating leases</a></td>
<td class="nump">1,730,358<span></span>
</td>
<td class="nump">743,096<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FinanceLeaseRightOfUseAsset', window );">Right of use assets - finance leases</a></td>
<td class="nump">452,390<span></span>
</td>
<td class="nump">200,187<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsNet', window );">Intangible assets, net</a></td>
<td class="nump">2,513,189<span></span>
</td>
<td class="nump">2,436,230<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_Goodwill', window );">Goodwill</a></td>
<td class="nump">2,346,566<span></span>
</td>
<td class="nump">2,743,424<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherAssetsNoncurrent', window );">Other assets</a></td>
<td class="nump">166,474<span></span>
</td>
<td class="nump">201,771<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_Assets', window );">TOTAL ASSETS</a></td>
<td class="nump">31,092,259<span></span>
</td>
<td class="nump">27,792,629<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LiabilitiesCurrentAbstract', window );"><strong>Current liabilities:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NotesPayable', window );">Related party notes payable</a></td>
<td class="nump">1,548,872<span></span>
</td>
<td class="nump">505,505<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccountsPayableCurrent', window );">Accounts payable</a></td>
<td class="nump">4,142,678<span></span>
</td>
<td class="nump">4,514,415<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccruedLiabilitiesCurrent', window );">Accrued expenses</a></td>
<td class="nump">2,890,886<span></span>
</td>
<td class="nump">2,504,629<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredRevenueCurrent', window );">Deferred revenue</a></td>
<td class="nump">6,701,131<span></span>
</td>
<td class="nump">1,647,206<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiabilityCurrent', window );">Operating lease liability, current</a></td>
<td class="nump">430,382<span></span>
</td>
<td class="nump">248,933<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FinanceLeaseLiabilityCurrent', window );">Finance lease obligations, current</a></td>
<td class="nump">85,646<span></span>
</td>
<td class="nump">40,540<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationContingentConsiderationLiabilityCurrent', window );">Acquisition liabilities, current</a></td>
<td class="nump">902,552<span></span>
</td>
<td class="nump">845,363<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedFinancialLiabilitiesCurrent', window );">Unfavorable contract liabilities, current</a></td>
<td class="nump">113,449<span></span>
</td>
<td class="nump">176,207<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LiabilitiesCurrent', window );">Total current liabilities</a></td>
<td class="nump">16,815,596<span></span>
</td>
<td class="nump">10,482,798<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LiabilitiesNoncurrentAbstract', window );"><strong>Long-term liabilities:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredRevenueNoncurrent', window );">Deferred revenue, net of current portion</a></td>
<td class="nump">1,165,951<span></span>
</td>
<td class="nump">369,611<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiabilityNoncurrent', window );">Operating lease liability, long-term</a></td>
<td class="nump">1,341,789<span></span>
</td>
<td class="nump">523,660<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FinanceLeaseLiabilityNoncurrent', window );">Finance lease obligations, net of current portion</a></td>
<td class="nump">325,235<span></span>
</td>
<td class="nump">159,647<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationContingentConsiderationLiabilityNoncurrent', window );">Acquisition liabilities, net of current portion</a></td>
<td class="nump">1,008,760<span></span>
</td>
<td class="nump">1,181,779<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedFinancialLiabilities', window );">Unfavorable contract liability, net of current portion</a></td>
<td class="nump">309,390<span></span>
</td>
<td class="nump">422,839<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_Liabilities', window );">Total liabilities</a></td>
<td class="nump">20,966,721<span></span>
</td>
<td class="nump">13,140,334<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommitmentsAndContingencies', window );">Commitments and contingencies</a></td>
<td class="text"> <span></span>
</td>
<td class="text"> <span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquityAbstract', window );"><strong>Tecogen Inc. shareholders&#8217; equity:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommonStockValue', window );">Stockholders&#8217; equity:</a></td>
<td class="nump">24,950<span></span>
</td>
<td class="nump">24,850<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AdditionalPaidInCapital', window );">Additional paid-in capital</a></td>
<td class="nump">57,845,289<span></span>
</td>
<td class="nump">57,601,402<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RetainedEarningsAccumulatedDeficit', window );">Accumulated deficit</a></td>
<td class="num">(47,639,894)<span></span>
</td>
<td class="num">(42,879,656)<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Equity, Attributable to Parent, Total</a></td>
<td class="nump">10,230,345<span></span>
</td>
<td class="nump">14,746,596<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_MinorityInterest', window );">Noncontrolling interest</a></td>
<td class="num">(104,807)<span></span>
</td>
<td class="num">(94,301)<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest', window );">Equity, Including Portion Attributable to Noncontrolling Interest, Total</a></td>
<td class="nump">10,125,538<span></span>
</td>
<td class="nump">14,652,295<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LiabilitiesAndStockholdersEquity', window );">TOTAL LIABILITIES AND STOCKHOLDERS&#8217; EQUITY</a></td>
<td class="nump">$ 31,092,259<span></span>
</td>
<td class="nump">$ 27,792,629<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedFinancialLiabilitiesCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Financial Liabilities, Current</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedFinancialLiabilitiesCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_EmployeeRetentionCreditCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Employee Retention Credit, Current</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_EmployeeRetentionCreditCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccountsPayableCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(19)(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccountsPayableCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccountsReceivableNetCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 310<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481990/310-10-45-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccountsReceivableNetCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccruedLiabilitiesCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(20))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccruedLiabilitiesCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AdditionalPaidInCapital">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(18))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(30)(a)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AdditionalPaidInCapital</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_Assets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of asset recognized for present right to economic benefit.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 48<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-48<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 49<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-49<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (bb)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481203/810-10-50-3<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 25<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481231/810-10-45-25<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 12: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 13: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479168/946-830-55-12<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(12))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-1<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(8))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-1<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(18))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 18: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 19: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 28: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481404/852-10-50-7<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-30<br><br>Reference 30: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(11))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478546/942-210-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_Assets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AssetsCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of asset recognized for present right to economic benefit, classified as current.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (bb)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481203/810-10-50-3<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 25<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481231/810-10-45-25<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 6: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483467/210-10-45-1<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(9))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 10: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 11: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 20: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481404/852-10-50-7<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AssetsCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AssetsCurrentAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AssetsCurrentAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationContingentConsiderationLiabilityCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of liability recognized arising from contingent consideration in a business combination, expected to be settled within one year or the normal operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 805<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 35<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479613/805-30-35-1<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 30<br> -Section 25<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479668/805-30-25-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationContingentConsiderationLiabilityCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationContingentConsiderationLiabilityNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of liability recognized arising from contingent consideration in a business combination, expected to be settled beyond one year or the normal operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 805<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 35<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479613/805-30-35-1<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 30<br> -Section 25<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479668/805-30-25-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationContingentConsiderationLiabilityNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedFinancialLiabilities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The amount of financial liabilities assumed (as defined) which have been recognized as of the acquisition date.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 10<br> -Section 55<br> -Paragraph 37<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479303/805-10-55-37<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479907/805-20-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedFinancialLiabilities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CashAndCashEquivalentsAtCarryingValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483467/210-10-45-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CashAndCashEquivalentsAtCarryingValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommitmentsAndContingencies">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(17))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478546/942-210-S99-1<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(25))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(19))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(15))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommitmentsAndContingencies</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommonStockValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(22))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommonStockValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ContractWithCustomerAssetNetCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, after allowance for credit loss, of right to consideration in exchange for good or service transferred to customer when right is conditioned on something other than passage of time, classified as current.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479837/606-10-45-3<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479837/606-10-45-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-8<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ContractWithCustomerAssetNetCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredRevenueCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of deferred income and obligation to transfer product and service to customer for which consideration has been received or is receivable, classified as current.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(20))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredRevenueCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredRevenueNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of deferred income and obligation to transfer product and service to customer for which consideration has been received or is receivable, classified as noncurrent.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(26)(c))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredRevenueNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FinanceLeaseLiabilityCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Present value of lessee's discounted obligation for lease payments from finance lease, classified as current.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479041/842-20-45-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FinanceLeaseLiabilityCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FinanceLeaseLiabilityNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Present value of lessee's discounted obligation for lease payments from finance lease, classified as noncurrent.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479041/842-20-45-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FinanceLeaseLiabilityNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FinanceLeaseRightOfUseAsset">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, after accumulated amortization, of right-of-use asset from finance lease.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479041/842-20-45-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FinanceLeaseRightOfUseAsset</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount after amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 926<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483154/926-20-50-5<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_Goodwill">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 49<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-49<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482548/350-20-55-24<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 100<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482078/820-10-55-100<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(15))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482598/350-20-45-1<br><br>Reference 7: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1<br><br>Reference 8: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (h)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(10)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478546/942-210-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_Goodwill</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InventoryNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount after valuation and LIFO reserves of inventory expected to be sold, or consumed within one year or operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483467/210-10-45-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InventoryNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_Liabilities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of liability recognized for present obligation requiring transfer or otherwise providing economic benefit to others.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(22))<br> -SubTopic 10<br> -Topic 210<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(20))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(24))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(19))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(25))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(26))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 7: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(23))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 8: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(21))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481203/810-10-50-3<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 25<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481231/810-10-45-25<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (bb)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481203/810-10-50-3<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 15: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479168/946-830-55-12<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(14))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-1<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 18: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 27: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481404/852-10-50-7<br><br>Reference 28: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481404/852-10-50-7<br><br>Reference 29: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-30<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_Liabilities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LiabilitiesAndStockholdersEquity">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of liabilities and equity items, including the portion of equity attributable to noncontrolling interests, if any.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(25))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-1<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 5: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(23))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478546/942-210-S99-1<br><br>Reference 7: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(32))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LiabilitiesAndStockholdersEquity</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LiabilitiesCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(21))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481203/810-10-50-3<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 25<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481231/810-10-45-25<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (bb)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481203/810-10-50-3<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 8: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483467/210-10-45-5<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 11: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 20: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481404/852-10-50-7<br><br>Reference 21: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481404/852-10-50-7<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LiabilitiesCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LiabilitiesCurrentAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LiabilitiesCurrentAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LiabilitiesNoncurrentAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LiabilitiesNoncurrentAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_MinorityInterest">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of equity (deficit) attributable to noncontrolling interest. Excludes temporary equity.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(31))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(24))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-1<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(19))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 13: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(22))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478546/942-210-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_MinorityInterest</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NotesPayable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Including the current and noncurrent portions, aggregate carrying amount of all types of notes payable, as of the balance sheet date, with initial maturities beyond one year or beyond the normal operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(22))<br> -SubTopic 10<br> -Topic 210<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(16))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478546/942-210-S99-1<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(16)(a)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-1<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(17))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NotesPayable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseLiabilityCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Present value of lessee's discounted obligation for lease payments from operating lease, classified as current.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479041/842-20-45-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseLiabilityCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseLiabilityNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Present value of lessee's discounted obligation for lease payments from operating lease, classified as noncurrent.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479041/842-20-45-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseLiabilityNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseRightOfUseAsset">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's right to use underlying asset under operating lease.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479041/842-20-45-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseRightOfUseAsset</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherAssetsNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of noncurrent assets classified as other.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(17))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherAssetsNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PrepaidExpenseAndOtherAssetsCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(9))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PrepaidExpenseAndOtherAssetsCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -SubTopic 10<br> -Topic 360<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482099/360-10-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7A<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-7A<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(8))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 360<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478451/942-360-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RetainedEarningsAccumulatedDeficit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of accumulated undistributed earnings (deficit).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(30)(a)(3))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(2)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480016/944-40-65-2<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (h)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480016/944-40-65-2<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480990/946-20-50-11<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(23)(a)(4))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(17))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-1<br><br>Reference 8: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480008/505-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RetainedEarningsAccumulatedDeficit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockholdersEquity">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of equity (deficit) attributable to parent. Excludes temporary equity and equity attributable to noncontrolling interest.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(30))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(31))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 5: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479168/946-830-55-12<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(19))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.6-05(4))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-2<br><br>Reference 8: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(4)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(6))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(7))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 11: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 12: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 13: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 14: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 310<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 4.E)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480418/310-10-S99-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockholdersEquity</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockholdersEquityAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockholdersEquityAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of equity (deficit) attributable to parent and noncontrolling interest. Excludes temporary equity.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-6<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 60<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476176/805-60-65-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 60<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (d)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476176/805-60-65-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 323<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478666/740-323-65-2<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 323<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(4)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478666/740-323-65-2<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 323<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (d)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478666/740-323-65-2<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 323<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (d)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478666/740-323-65-2<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 848<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (a)(3)(iii)(03)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483550/848-10-65-2<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 8<br> -Subparagraph (c)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479832/842-10-65-8<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483421/250-10-45-24<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 23<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483421/250-10-45-23<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 5<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483421/250-10-45-5<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 5<br> -Subparagraph (c)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479654/326-10-65-5<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 6<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480528/815-20-65-6<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 6<br> -Subparagraph (h)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480528/815-20-65-6<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 6<br> -Subparagraph (h)(1)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480528/815-20-65-6<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 6<br> -Subparagraph (h)(1)(iii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480528/815-20-65-6<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 6<br> -Subparagraph (h)(1)(iv)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480528/815-20-65-6<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 6<br> -Subparagraph (i)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480528/815-20-65-6<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 105<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 6<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479343/105-10-65-6<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 105<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 6<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479343/105-10-65-6<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (f)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480016/944-40-65-2<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (f)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480016/944-40-65-2<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 8<br> -Subparagraph (d)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482615/740-10-65-8<br><br>Reference 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 8<br> -Subparagraph (d)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482615/740-10-65-8<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 4<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479654/326-10-65-4<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-1<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (e)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480175/815-40-65-1<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-7<br><br>Reference 30: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482765/220-10-50-5<br><br>Reference 31: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 830<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481674/830-30-50-1<br><br>Reference 32: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 830<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 17<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481694/830-30-45-17<br><br>Reference 33: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 830<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 20<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481694/830-30-45-20<br><br>Reference 34: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 11<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479168/946-830-55-11<br><br>Reference 35: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 205<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478009/946-205-45-3<br><br>Reference 36: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 505<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478448/946-505-50-3<br><br>Reference 37: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(19))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-1<br><br>Reference 38: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.6-05(4))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-2<br><br>Reference 39: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(4)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 40: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(6))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 41: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(7))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 42: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480008/505-10-S99-1<br><br>Reference 43: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 44: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 45: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 46: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 45<br> -Paragraph 15<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481231/810-10-45-15<br><br>Reference 47: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 45<br> -Paragraph 16<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481231/810-10-45-16<br><br>Reference 48: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 55<br> -Paragraph 4I<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481175/810-10-55-4I<br><br>Reference 49: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 60<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476166/350-60-65-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>16
<FILENAME>R4.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Consolidated Balance Sheets (Parenthetical) - $ / shares<br></strong></div></th>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StatementOfFinancialPositionAbstract', window );"><strong>Statement of Financial Position [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommonStockParOrStatedValuePerShare', window );">Common stock, par value (usd per share)</a></td>
<td class="nump">$ 0.001<span></span>
</td>
<td class="nump">$ 0.001<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommonStockSharesAuthorized', window );">Common Stock, Shares Authorized</a></td>
<td class="nump">100,000,000<span></span>
</td>
<td class="nump">100,000,000<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommonStockSharesIssued', window );">Common Stock, Shares, Issued</a></td>
<td class="nump">24,950,261<span></span>
</td>
<td class="nump">24,850,261<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommonStockSharesOutstanding', window );">Common Stock, Shares, Outstanding</a></td>
<td class="nump">24,950,261<span></span>
</td>
<td class="nump">24,850,261<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommonStockParOrStatedValuePerShare">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Face amount or stated value per share of common stock.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommonStockParOrStatedValuePerShare</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommonStockSharesAuthorized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The maximum number of common shares permitted to be issued by an entity's charter and bylaws.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(16)(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommonStockSharesAuthorized</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommonStockSharesIssued">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommonStockSharesIssued</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommonStockSharesOutstanding">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of shares of common stock outstanding. Common stock represent the ownership interest in a corporation.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -SubTopic 10<br> -Topic 505<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-2<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.6-05(4))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-2<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(4)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(16)(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-1<br><br>Reference 6: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(7))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommonStockSharesOutstanding</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StatementOfFinancialPositionAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StatementOfFinancialPositionAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>17
<FILENAME>R5.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Consolidated Statements of Operations - USD ($)<br></strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Total revenues</a></td>
<td class="nump">$ 22,619,536<span></span>
</td>
<td class="nump">$ 25,139,419<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CostOfGoodsAndServicesSold', window );">Total cost of sales</a></td>
<td class="nump">12,749,363<span></span>
</td>
<td class="nump">14,937,801<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GrossProfit', window );">Gross profit</a></td>
<td class="nump">9,870,173<span></span>
</td>
<td class="nump">10,201,618<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingExpensesAbstract', window );"><strong>Operating expenses</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GeneralAndAdministrativeExpense', window );">General and administrative</a></td>
<td class="nump">11,356,406<span></span>
</td>
<td class="nump">11,880,389<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SellingExpense', window );">Selling</a></td>
<td class="nump">1,880,903<span></span>
</td>
<td class="nump">1,931,037<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ResearchAndDevelopmentExpense', window );">Research and development</a></td>
<td class="nump">961,837<span></span>
</td>
<td class="nump">840,011<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GainLossOnDispositionOfAssets1', window );">Gain on sale of assets</a></td>
<td class="num">(12,181)<span></span>
</td>
<td class="num">(36,207)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ImpairmentOfLongLivedAssetsHeldForUse', window );">Impairment of long-lived assets</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GoodwillImpairmentLoss', window );">Goodwill impairment</a></td>
<td class="nump">217,295<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingExpenses', window );">Operating Expenses</a></td>
<td class="nump">14,404,260<span></span>
</td>
<td class="nump">14,615,230<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingIncomeLoss', window );">Loss from operations</a></td>
<td class="num">(4,534,087)<span></span>
</td>
<td class="num">(4,413,612)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherIncomeAndExpensesAbstract', window );"><strong>Other income (expense)</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_InterestAndOtherIncomeExpense', window );">Interest and other income (expense)</a></td>
<td class="num">(26,814)<span></span>
</td>
<td class="num">(61,003)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InterestExpenseNonoperating', window );">Interest expense</a></td>
<td class="num">(90,304)<span></span>
</td>
<td class="num">(16,050)<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NonoperatingIncomeExpense', window );">Total other expense, net</a></td>
<td class="num">(117,118)<span></span>
</td>
<td class="num">(77,053)<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest', window );">Loss before income taxes</a></td>
<td class="num">(4,651,205)<span></span>
</td>
<td class="num">(4,490,665)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_IncomeTaxExpenseBenefitState', window );">State income tax provision</a></td>
<td class="nump">22,565<span></span>
</td>
<td class="nump">32,491<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ProfitLoss', window );">Net income (loss)</a></td>
<td class="num">(4,673,770)<span></span>
</td>
<td class="num">(4,523,156)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetIncomeLossAttributableToNoncontrollingInterest', window );">Income attributable to the noncontrolling interest</a></td>
<td class="num">(86,468)<span></span>
</td>
<td class="num">(74,952)<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net loss attributable to Tecogen Inc.</a></td>
<td class="num">$ (4,760,238)<span></span>
</td>
<td class="num">$ (4,598,108)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EarningsPerShareBasic', window );">Net income (loss) per share - basic (in USD per share)</a></td>
<td class="num">$ (0.19)<span></span>
</td>
<td class="num">$ (0.19)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic', window );">Weighted average shares outstanding - basic (in shares)</a></td>
<td class="nump">24,861,190<span></span>
</td>
<td class="nump">24,850,261<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EarningsPerShareDiluted', window );">Net income (loss) per share - diluted (in USD per share)</a></td>
<td class="num">$ (0.19)<span></span>
</td>
<td class="num">$ (0.19)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding', window );">Weighted average shares outstanding - diluted (in shares)</a></td>
<td class="nump">24,861,190<span></span>
</td>
<td class="nump">24,850,261<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_ProductOrServiceAxis=us-gaap_ProductMember', window );">Products</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Total revenues</a></td>
<td class="nump">$ 4,443,996<span></span>
</td>
<td class="nump">$ 8,859,946<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CostOfGoodsAndServicesSold', window );">Total cost of sales</a></td>
<td class="nump">3,014,655<span></span>
</td>
<td class="nump">5,923,096<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_ProductOrServiceAxis=us-gaap_ServiceMember', window );">Services</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Total revenues</a></td>
<td class="nump">16,074,870<span></span>
</td>
<td class="nump">14,523,054<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CostOfGoodsAndServicesSold', window );">Total cost of sales</a></td>
<td class="nump">8,432,876<span></span>
</td>
<td class="nump">7,909,202<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_ProductOrServiceAxis=us-gaap_EnergyServiceMember', window );">Energy production</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Total revenues</a></td>
<td class="nump">2,100,670<span></span>
</td>
<td class="nump">1,756,419<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CostOfGoodsAndServicesSold', window );">Total cost of sales</a></td>
<td class="nump">$ 1,301,832<span></span>
</td>
<td class="nump">$ 1,105,503<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_IncomeTaxExpenseBenefitState">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Income Tax Expense (Benefit), State</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_IncomeTaxExpenseBenefitState</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_InterestAndOtherIncomeExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Interest and Other Income (Expense)</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_InterestAndOtherIncomeExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CostOfGoodsAndServicesSold">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(2)(d))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(2)(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 924<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 11.L)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479941/924-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CostOfGoodsAndServicesSold</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerShareBasic">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The amount of net income (loss) for the period per each share of common stock or unit outstanding during the reporting period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-6<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 52<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482635/260-10-55-52<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 60<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476176/805-60-65-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 323<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478666/740-323-65-2<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-3<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 15<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482635/260-10-55-15<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (e)(4)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480175/815-40-65-1<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480175/815-40-65-1<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-7<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-2<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-60B<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-4<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482662/260-10-50-1<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-10<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(25))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(27))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478524/942-220-S99-1<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(23))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-7<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerShareBasic</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerShareDiluted">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-6<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 52<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482635/260-10-55-52<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 60<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476176/805-60-65-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 323<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478666/740-323-65-2<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-3<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 15<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482635/260-10-55-15<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (e)(4)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480175/815-40-65-1<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480175/815-40-65-1<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-7<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-2<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-60B<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-4<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482662/260-10-50-1<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(25))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(27))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478524/942-220-S99-1<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(23))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-7<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerShareDiluted</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GainLossOnDispositionOfAssets1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of gain (loss) on sale or disposal of assets, including but not limited to property plant and equipment, intangible assets and equity in securities of subsidiaries or equity method investee.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GainLossOnDispositionOfAssets1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GeneralAndAdministrativeExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(4))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-07(2)(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GeneralAndAdministrativeExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GoodwillImpairmentLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482548/350-20-55-24<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-2<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 100<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482078/820-10-55-100<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482598/350-20-45-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GoodwillImpairmentLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GrossProfit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Aggregate revenue less cost of goods and services sold or operating expenses directly attributable to the revenue generation activity.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 48<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-48<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-30<br><br>Reference 5: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 6: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 7: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 8: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 9: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 14: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 23: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 31<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-31<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GrossProfit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ImpairmentOfLongLivedAssetsHeldForUse">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The aggregate amount of write-downs for impairments recognized during the period for long lived assets held for use (including those held for disposal by means other than sale).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 100<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482078/820-10-55-100<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 360<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482099/360-10-50-2<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 360<br> -SubTopic 10<br> -Section 45<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482130/360-10-45-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ImpairmentOfLongLivedAssetsHeldForUse</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 48<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-48<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-30<br><br>Reference 5: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 6: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 7: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(11))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 9: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 31<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-31<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 235<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-05(b)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477314/942-235-S99-1<br><br>Reference 11: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(10))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 12: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(15))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478524/942-220-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InterestExpenseNonoperating">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of interest expense classified as nonoperating.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InterestExpenseNonoperating</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetIncomeLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The portion of profit or loss for the period, net of income taxes, which is attributable to the parent.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-6<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-9<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 60<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476176/805-60-65-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 323<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478666/740-323-65-2<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(20))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482765/220-10-50-6<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-3<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-1<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480175/815-40-65-1<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-8<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-4<br><br>Reference 17: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479168/946-830-55-10<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479105/946-220-45-7<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(18))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-07(9))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-1<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(1)(d))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 23: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 30: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 31: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 32: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-60B<br><br>Reference 33: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 205<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483499/205-20-50-7<br><br>Reference 34: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br><br>Reference 35: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1A<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-1A<br><br>Reference 36: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1B<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-1B<br><br>Reference 37: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(22))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478524/942-220-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetIncomeLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetIncomeLossAttributableToNoncontrollingInterest">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of Net Income (Loss) attributable to noncontrolling interest.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-6<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-9<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-8<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(17))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 5: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482765/220-10-50-6<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1A<br> -Subparagraph (a)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481203/810-10-50-1A<br><br>Reference 7: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 55<br> -Paragraph 4J<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481175/810-10-55-4J<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1A<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-1A<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1B<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-1B<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetIncomeLossAttributableToNoncontrollingInterest</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NonoperatingIncomeExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The aggregate amount of income or expense from ancillary business-related activities (that is to say, excluding major activities considered part of the normal operations of the business).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(7))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NonoperatingIncomeExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingExpenses">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingExpenses</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingExpensesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingExpensesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingIncomeLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The net result for the period of deducting operating expenses from operating revenues.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-30<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 5: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 7: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 31<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-31<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingIncomeLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherIncomeAndExpensesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherIncomeAndExpensesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ProfitLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The consolidated profit or loss for the period, net of income taxes, including the portion attributable to the noncontrolling interest.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-6<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-9<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 60<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476176/805-60-65-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 323<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478666/740-323-65-2<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-1<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480175/815-40-65-1<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-8<br><br>Reference 11: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 11<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479168/946-830-55-11<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 205<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 3<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478009/946-205-45-3<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479105/946-220-45-7<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(16))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-07(9))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-1<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(1)(d))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 19<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481231/810-10-45-19<br><br>Reference 18: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482765/220-10-50-6<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 20: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 235<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-05(b)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477314/942-235-S99-1<br><br>Reference 30: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 205<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483499/205-20-50-7<br><br>Reference 31: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 4J<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481175/810-10-55-4J<br><br>Reference 32: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 4K<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481175/810-10-55-4K<br><br>Reference 33: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1A<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-1A<br><br>Reference 34: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1B<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-1B<br><br>Reference 35: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-2<br><br>Reference 36: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1A<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481203/810-10-50-1A<br><br>Reference 37: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1A<br> -Subparagraph (c)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481203/810-10-50-1A<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ProfitLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ResearchAndDevelopmentExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 48<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-48<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 985<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481283/985-20-50-2<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 730<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482916/730-10-50-1<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 912<br> -SubTopic 730<br> -Name Accounting Standards Codification<br> -Section 25<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479532/912-730-25-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ResearchAndDevelopmentExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 41<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-41<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 924<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 11.L)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479941/924-10-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-5<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-30<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 42<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-42<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 40<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-40<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SellingExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Expenses recognized in the period that are directly related to the selling and distribution of products or services.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(4))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SellingExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482662/260-10-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 16<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-16<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482662/260-10-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-10<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_WeightedAverageNumberOfSharesOutstandingBasic</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_ProductOrServiceAxis=us-gaap_ProductMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_ProductOrServiceAxis=us-gaap_ProductMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_ProductOrServiceAxis=us-gaap_ServiceMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_ProductOrServiceAxis=us-gaap_ServiceMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_ProductOrServiceAxis=us-gaap_EnergyServiceMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_ProductOrServiceAxis=us-gaap_EnergyServiceMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>18
<FILENAME>R6.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Consolidated Statements of Stockholders' Equity - USD ($)<br></strong></div></th>
<th class="th"><div>Total</div></th>
<th class="th"><div>Common Stock 0.001 Par Value</div></th>
<th class="th"><div>Additional Paid-in Capital</div></th>
<th class="th"><div>Accumulated Deficit</div></th>
<th class="th"><div>Noncontrolling Interest</div></th>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharesOutstanding', window );">Beginning balance, shares at Dec. 31, 2022</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">24,850,261<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest', window );">Balance, beginning balance at Dec. 31, 2022</a></td>
<td class="nump">$ 18,987,750<span></span>
</td>
<td class="nump">$ 24,850<span></span>
</td>
<td class="nump">$ 57,351,008<span></span>
</td>
<td class="num">$ (38,281,548)<span></span>
</td>
<td class="num">$ (106,560)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward', window );"><strong>Increase (Decrease) in Stockholders' Equity [Roll Forward]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_MinorityInterestDecreaseFromDistributionsToNoncontrollingInterestHolders', window );">Distributions to noncontrolling interest</a></td>
<td class="num">(62,693)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(62,693)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue', window );">Stock-based compensation</a></td>
<td class="nump">250,394<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">250,394<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ProfitLoss', window );">Net income (loss)</a></td>
<td class="num">(4,523,156)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(4,598,108)<span></span>
</td>
<td class="nump">74,952<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharesOutstanding', window );">Ending balance, shares at Dec. 31, 2023</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">24,850,261<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest', window );">Balance, ending balance at Dec. 31, 2023</a></td>
<td class="nump">14,652,295<span></span>
</td>
<td class="nump">$ 24,850<span></span>
</td>
<td class="nump">57,601,402<span></span>
</td>
<td class="num">(42,879,656)<span></span>
</td>
<td class="num">(94,301)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward', window );"><strong>Increase (Decrease) in Stockholders' Equity [Roll Forward]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised', window );">Exercise of stock options (in shares)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">100,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised', window );">Exercise of stock options</a></td>
<td class="nump">71,000<span></span>
</td>
<td class="nump">$ 100<span></span>
</td>
<td class="nump">70,900<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_MinorityInterestDecreaseFromDistributionsToNoncontrollingInterestHolders', window );">Distributions to noncontrolling interest</a></td>
<td class="num">(96,974)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(96,974)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue', window );">Stock-based compensation</a></td>
<td class="nump">172,987<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">172,987<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ProfitLoss', window );">Net income (loss)</a></td>
<td class="num">(4,673,770)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(4,760,238)<span></span>
</td>
<td class="nump">86,468<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharesOutstanding', window );">Ending balance, shares at Dec. 31, 2024</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">24,950,261<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest', window );">Balance, ending balance at Dec. 31, 2024</a></td>
<td class="nump">$ 10,125,538<span></span>
</td>
<td class="nump">$ 24,950<span></span>
</td>
<td class="nump">$ 57,845,289<span></span>
</td>
<td class="num">$ (47,639,894)<span></span>
</td>
<td class="num">$ (104,807)<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of increase to additional paid-in capital (APIC) for recognition of cost for award under share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 35<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480483/718-10-35-2<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 20<br> -Section 55<br> -Paragraph 13<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481089/718-20-55-13<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 20<br> -Section 55<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481089/718-20-55-12<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInStockholdersEquityRollForward</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_MinorityInterestDecreaseFromDistributionsToNoncontrollingInterestHolders">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Decrease in noncontrolling interest balance from payment of dividends or other distributions by the non-wholly owned subsidiary or partially owned entity, included in the consolidation of the parent entity, to the noncontrolling interest holders.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480008/505-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_MinorityInterestDecreaseFromDistributionsToNoncontrollingInterestHolders</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ProfitLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The consolidated profit or loss for the period, net of income taxes, including the portion attributable to the noncontrolling interest.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-6<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-9<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 60<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476176/805-60-65-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 323<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478666/740-323-65-2<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-1<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480175/815-40-65-1<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-8<br><br>Reference 11: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 11<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479168/946-830-55-11<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 205<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 3<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478009/946-205-45-3<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479105/946-220-45-7<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(16))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-07(9))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-1<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(1)(d))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 19<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481231/810-10-45-19<br><br>Reference 18: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482765/220-10-50-6<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 20: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 235<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-05(b)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477314/942-235-S99-1<br><br>Reference 30: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 205<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483499/205-20-50-7<br><br>Reference 31: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 4J<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481175/810-10-55-4J<br><br>Reference 32: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 4K<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481175/810-10-55-4K<br><br>Reference 33: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1A<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-1A<br><br>Reference 34: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1B<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-1B<br><br>Reference 35: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-2<br><br>Reference 36: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1A<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481203/810-10-50-1A<br><br>Reference 37: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1A<br> -Subparagraph (c)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481203/810-10-50-1A<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ProfitLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SharesOutstanding">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of shares issued which are neither cancelled nor held in the treasury.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SharesOutstanding</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of share options (or share units) exercised during the current period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -SubTopic 10<br> -Topic 505<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-2<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(02)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480008/505-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Value of stock issued as a result of the exercise of stock options.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -SubTopic 10<br> -Topic 505<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-2<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(30))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(31))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480008/505-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of equity (deficit) attributable to parent and noncontrolling interest. Excludes temporary equity.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-6<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 60<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476176/805-60-65-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 60<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (d)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476176/805-60-65-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 323<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478666/740-323-65-2<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 323<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(4)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478666/740-323-65-2<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 323<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (d)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478666/740-323-65-2<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 323<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (d)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478666/740-323-65-2<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 848<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (a)(3)(iii)(03)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483550/848-10-65-2<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 8<br> -Subparagraph (c)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479832/842-10-65-8<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483421/250-10-45-24<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 23<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483421/250-10-45-23<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 5<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483421/250-10-45-5<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 5<br> -Subparagraph (c)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479654/326-10-65-5<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 6<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480528/815-20-65-6<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 6<br> -Subparagraph (h)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480528/815-20-65-6<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 6<br> -Subparagraph (h)(1)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480528/815-20-65-6<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 6<br> -Subparagraph (h)(1)(iii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480528/815-20-65-6<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 6<br> -Subparagraph (h)(1)(iv)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480528/815-20-65-6<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 6<br> -Subparagraph (i)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480528/815-20-65-6<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 105<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 6<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479343/105-10-65-6<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 105<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 6<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479343/105-10-65-6<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (f)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480016/944-40-65-2<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (f)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480016/944-40-65-2<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 8<br> -Subparagraph (d)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482615/740-10-65-8<br><br>Reference 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 8<br> -Subparagraph (d)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482615/740-10-65-8<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 4<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479654/326-10-65-4<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-1<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (e)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480175/815-40-65-1<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-7<br><br>Reference 30: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482765/220-10-50-5<br><br>Reference 31: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 830<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481674/830-30-50-1<br><br>Reference 32: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 830<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 17<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481694/830-30-45-17<br><br>Reference 33: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 830<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 20<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481694/830-30-45-20<br><br>Reference 34: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 11<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479168/946-830-55-11<br><br>Reference 35: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 205<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478009/946-205-45-3<br><br>Reference 36: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 505<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478448/946-505-50-3<br><br>Reference 37: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(19))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-1<br><br>Reference 38: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.6-05(4))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-2<br><br>Reference 39: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(4)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 40: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(6))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 41: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(7))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 42: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480008/505-10-S99-1<br><br>Reference 43: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 44: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 45: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 46: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 45<br> -Paragraph 15<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481231/810-10-45-15<br><br>Reference 47: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 45<br> -Paragraph 16<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481231/810-10-45-16<br><br>Reference 48: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 55<br> -Paragraph 4I<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481175/810-10-55-4I<br><br>Reference 49: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 60<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476166/350-60-65-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>19
<FILENAME>R7.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Consolidated Statements of Stockholders' Equity Parenthetical - $ / shares<br></strong></div></th>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StatementOfStockholdersEquityAbstract', window );"><strong>Statement of Stockholders' Equity [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommonStockParOrStatedValuePerShare', window );">Common stock, par value (usd per share)</a></td>
<td class="nump">$ 0.001<span></span>
</td>
<td class="nump">$ 0.001<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommonStockParOrStatedValuePerShare">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Face amount or stated value per share of common stock.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommonStockParOrStatedValuePerShare</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StatementOfStockholdersEquityAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StatementOfStockholdersEquityAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>20
<FILENAME>R8.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Consolidated Statements of Cash Flows - USD ($)<br></strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract', window );"><strong>CASH FLOWS FROM OPERATING ACTIVITIES:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ProfitLoss', window );">Consolidated loss</a></td>
<td class="num">$ (4,673,770)<span></span>
</td>
<td class="num">$ (4,523,156)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract', window );"><strong>Adjustments to reconcile net loss to net cash used in operating activities:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DepreciationDepletionAndAmortization', window );">Depreciation, accretion and amortization, net</a></td>
<td class="nump">553,783<span></span>
</td>
<td class="nump">567,712<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GainLossOnDispositionOfAssets1', window );">Gain on sale of assets</a></td>
<td class="num">(12,181)<span></span>
</td>
<td class="num">(36,207)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ProvisionForDoubtfulAccounts', window );">Provision for credit losses</a></td>
<td class="nump">146,010<span></span>
</td>
<td class="nump">902,432<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InventoryWriteDown', window );">Provision for inventory reserve</a></td>
<td class="nump">70,530<span></span>
</td>
<td class="nump">402,883<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensation', window );">Stock-based compensation</a></td>
<td class="nump">172,987<span></span>
</td>
<td class="nump">250,394<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GoodwillImpairmentLoss', window );">Goodwill impairment</a></td>
<td class="nump">217,295<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_NoncashInterestExpense', window );">Non-cash interest expense</a></td>
<td class="nump">45,025<span></span>
</td>
<td class="nump">5,505<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInOperatingAssetsAbstract', window );"><strong>(Increase) decrease in:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInAccountsReceivable', window );">Accounts receivable</a></td>
<td class="nump">608,929<span></span>
</td>
<td class="num">(81,195)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInInventories', window );">Inventory, net</a></td>
<td class="nump">848,884<span></span>
</td>
<td class="num">(82,525)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInContractWithCustomerLiability', window );">Unbilled revenue</a></td>
<td class="nump">859,634<span></span>
</td>
<td class="nump">56,994<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_IncreaseDecreaseInPrepaidExpenseAndOtherCurrentAssets', window );">Prepaid assets and other current assets</a></td>
<td class="num">(319,926)<span></span>
</td>
<td class="nump">40,550<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInOtherOperatingAssets', window );">Other non-current assets</a></td>
<td class="nump">510,723<span></span>
</td>
<td class="nump">265,725<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInOperatingLiabilitiesAbstract', window );"><strong>Increase (decrease) in:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInAccountsPayable', window );">Accounts payable</a></td>
<td class="num">(371,736)<span></span>
</td>
<td class="nump">1,161,416<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInAccruedLiabilities', window );">Accrued expenses</a></td>
<td class="nump">386,257<span></span>
</td>
<td class="nump">128,869<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInDeferredRevenue', window );">Deferred revenue</a></td>
<td class="nump">5,850,265<span></span>
</td>
<td class="nump">543,842<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInOtherCurrentLiabilities', window );">Other current liabilities</a></td>
<td class="num">(832,162)<span></span>
</td>
<td class="num">(421,049)<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetCashProvidedByUsedInOperatingActivities', window );">Net cash provided by (used in) operating activities</a></td>
<td class="nump">4,060,547<span></span>
</td>
<td class="num">(817,810)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract', window );"><strong>CASH FLOWS FROM INVESTING ACTIVITIES:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment', window );">Purchases of property and equipment</a></td>
<td class="num">(969,163)<span></span>
</td>
<td class="num">(46,851)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment', window );">Proceeds on sale of property and equipment</a></td>
<td class="nump">51,400<span></span>
</td>
<td class="nump">34,655<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired', window );">Payment for business acquisition</a></td>
<td class="nump">0<span></span>
</td>
<td class="num">(170,000)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_PaymentsToNoncontrollingInterestsInvestingActivities', window );">Distributions to noncontrolling interest</a></td>
<td class="num">(96,974)<span></span>
</td>
<td class="num">(62,693)<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetCashProvidedByUsedInInvestingActivities', window );">Net used in investing activities</a></td>
<td class="num">(1,014,737)<span></span>
</td>
<td class="num">(244,889)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract', window );"><strong>CASH FLOWS FROM FINANCING ACTIVITIES:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ProceedsFromNotesPayable', window );">Proceeds from related party note</a></td>
<td class="nump">1,000,000<span></span>
</td>
<td class="nump">500,000<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FinanceLeasePrincipalPayments', window );">Finance lease principal payments</a></td>
<td class="num">(62,847)<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ProceedsFromStockOptionsExercised', window );">Proceeds from exercise of stock options</a></td>
<td class="nump">71,000<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetCashProvidedByUsedInFinancingActivities', window );">Net cash provided by financing activities</a></td>
<td class="nump">1,008,153<span></span>
</td>
<td class="nump">500,000<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect', window );">Change in cash and cash equivalents</a></td>
<td class="nump">4,053,963<span></span>
</td>
<td class="num">(562,699)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents', window );">Cash and cash equivalents, beginning of the year</a></td>
<td class="nump">1,351,270<span></span>
</td>
<td class="nump">1,913,969<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents', window );">Cash and cash equivalents, end of the year</a></td>
<td class="nump">5,405,233<span></span>
</td>
<td class="nump">1,351,270<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SupplementalCashFlowInformationAbstract', window );"><strong>Supplemental disclosures of cash flows information:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InterestPaidNet', window );">Cash paid for interest</a></td>
<td class="nump">45,278<span></span>
</td>
<td class="nump">10,926<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxesPaid', window );">Cash paid for taxes</a></td>
<td class="nump">22,565<span></span>
</td>
<td class="nump">32,491<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AdditionalCashFlowElementsInvestingActivitiesAbstract', window );"><strong>Non-cash investing activities</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability', window );">Right-of-use assets obtained in exchange for operating lease liabilities</a></td>
<td class="nump">1,650,994<span></span>
</td>
<td class="nump">148,093<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_VehiclesAcquiredUnderFinanceLeases', window );">Right-of-use assets acquired under finance leases</a></td>
<td class="nump">295,085<span></span>
</td>
<td class="nump">200,187<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_AssetAcquisitionConsiderationTransferredNonCashAccountsReceivableCredit', window );">Accounts receivable credit</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">300,000<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_AssetAcquisitionConsiderationTransferredNonCashAccountsPayable', window );">Accounts payable assumed</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">91,048<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_AssetAcquisitionConsiderationTransferredNonCashContingentConsideration', window );">Contingent consideration</a></td>
<td class="nump">272,901<span></span>
</td>
<td class="nump">1,256,656<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_AssetAcquisitionConsiderationTransferredNonCash', window );">Total fair value of non-cash consideration</a></td>
<td class="nump">$ 272,901<span></span>
</td>
<td class="nump">$ 1,647,704<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_AssetAcquisitionConsiderationTransferredNonCash">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Asset Acquisition, Consideration Transferred, Non-Cash</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_AssetAcquisitionConsiderationTransferredNonCash</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_AssetAcquisitionConsiderationTransferredNonCashAccountsPayable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Asset Acquisition, Consideration Transferred, Non-Cash, Accounts Payable</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_AssetAcquisitionConsiderationTransferredNonCashAccountsPayable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_AssetAcquisitionConsiderationTransferredNonCashAccountsReceivableCredit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Asset Acquisition, Consideration Transferred, Non-Cash, Accounts Receivable Credit</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_AssetAcquisitionConsiderationTransferredNonCashAccountsReceivableCredit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_AssetAcquisitionConsiderationTransferredNonCashContingentConsideration">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Asset Acquisition, Consideration Transferred, Non-Cash, Contingent Consideration</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_AssetAcquisitionConsiderationTransferredNonCashContingentConsideration</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_IncreaseDecreaseInPrepaidExpenseAndOtherCurrentAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Increase (Decrease) in Prepaid Expense and Other Current Assets</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_IncreaseDecreaseInPrepaidExpenseAndOtherCurrentAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_NoncashInterestExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Non-cash Interest Expense</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_NoncashInterestExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_PaymentsToNoncontrollingInterestsInvestingActivities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Payments to Noncontrolling Interests, Investing Activities</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_PaymentsToNoncontrollingInterestsInvestingActivities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_VehiclesAcquiredUnderFinanceLeases">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Vehicles Acquired Under Finance Leases</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_VehiclesAcquiredUnderFinanceLeases</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AdditionalCashFlowElementsInvestingActivitiesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AdditionalCashFlowElementsInvestingActivitiesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482913/230-10-50-8<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-24<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-24<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -SubTopic 230<br> -Topic 830<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477401/830-230-45-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DepreciationDepletionAndAmortization">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The aggregate expense recognized in the current period that allocates the cost of tangible assets, intangible assets, or depleting assets to periods that benefit from use of the assets.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 48<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-48<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 49<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-49<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DepreciationDepletionAndAmortization</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FinanceLeasePrincipalPayments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash outflow for principal payment on finance lease.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (g)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-4<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 5<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479041/842-20-45-5<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FinanceLeasePrincipalPayments</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GainLossOnDispositionOfAssets1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of gain (loss) on sale or disposal of assets, including but not limited to property plant and equipment, intangible assets and equity in securities of subsidiaries or equity method investee.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GainLossOnDispositionOfAssets1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GoodwillImpairmentLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482548/350-20-55-24<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-2<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 100<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482078/820-10-55-100<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482598/350-20-45-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GoodwillImpairmentLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxesPaid">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, before refund, of cash paid to foreign, federal, state, and local jurisdictions as income tax.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2A<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482913/230-10-50-2A<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 23<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-23<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-22<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 25<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-25<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482913/230-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxesPaid</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncreaseDecreaseInAccountsPayable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInAccountsPayable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncreaseDecreaseInAccountsReceivable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInAccountsReceivable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncreaseDecreaseInAccruedLiabilities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The increase (decrease) during the reporting period in the aggregate amount of expenses incurred but not yet paid.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInAccruedLiabilities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncreaseDecreaseInContractWithCustomerLiability">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of increase (decrease) in obligation to transfer good or service to customer for which consideration has been received or is receivable.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 912<br> -SubTopic 310<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 11<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478345/912-310-45-11<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInContractWithCustomerLiability</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncreaseDecreaseInDeferredRevenue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInDeferredRevenue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncreaseDecreaseInInventories">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInInventories</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncreaseDecreaseInOperatingAssetsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInOperatingAssetsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncreaseDecreaseInOperatingLiabilitiesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInOperatingLiabilitiesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncreaseDecreaseInOtherCurrentLiabilities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of increase (decrease) in current liabilities classified as other.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInOtherCurrentLiabilities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncreaseDecreaseInOtherOperatingAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of increase (decrease) in operating assets classified as other.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInOtherOperatingAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InterestPaidNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash paid for interest, excluding capitalized interest, classified as operating activity. Includes, but is not limited to, payment to settle zero-coupon bond for accreted interest of debt discount and debt instrument with insignificant coupon interest rate in relation to effective interest rate of borrowing attributable to accreted interest of debt discount.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 17<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-17<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 25<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-25<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482913/230-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InterestPaidNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InventoryWriteDown">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of loss from reductions in inventory due to subsequent measurement adjustments, including, but not limited to, physical deterioration, obsolescence, or changes in price levels.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 330<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483080/330-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InventoryWriteDown</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetCashProvidedByUsedInFinancingActivities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-24<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetCashProvidedByUsedInFinancingActivities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetCashProvidedByUsedInInvestingActivities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-24<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetCashProvidedByUsedInInvestingActivities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetCashProvidedByUsedInOperatingActivities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-24<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 25<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-25<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetCashProvidedByUsedInOperatingActivities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The cash outflow associated with the acquisition of a business, net of the cash acquired from the purchase.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 13<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-13<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 13<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-13<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PaymentsToAcquirePropertyPlantAndEquipment</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ProceedsFromNotesPayable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The cash inflow from a borrowing supported by a written promise to pay an obligation.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 14<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-14<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ProceedsFromNotesPayable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The cash inflow from the sale of long-lived, physical assets that are used in the normal conduct of business to produce goods and services and not intended for resale.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 12<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-12<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ProceedsFromStockOptionsExercised">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash inflow from exercise of option under share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 14<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-14<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2A<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 718<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2A<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ProceedsFromStockOptionsExercised</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ProfitLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The consolidated profit or loss for the period, net of income taxes, including the portion attributable to the noncontrolling interest.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-6<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-9<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 60<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476176/805-60-65-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 323<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478666/740-323-65-2<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-1<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480175/815-40-65-1<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-8<br><br>Reference 11: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 11<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479168/946-830-55-11<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 205<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 3<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478009/946-205-45-3<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479105/946-220-45-7<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(16))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-07(9))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-1<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(1)(d))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 19<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481231/810-10-45-19<br><br>Reference 18: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482765/220-10-50-6<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 20: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 235<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-05(b)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477314/942-235-S99-1<br><br>Reference 30: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 205<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483499/205-20-50-7<br><br>Reference 31: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 4J<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481175/810-10-55-4J<br><br>Reference 32: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 4K<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481175/810-10-55-4K<br><br>Reference 33: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1A<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-1A<br><br>Reference 34: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1B<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-1B<br><br>Reference 35: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-2<br><br>Reference 36: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1A<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481203/810-10-50-1A<br><br>Reference 37: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1A<br> -Subparagraph (c)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481203/810-10-50-1A<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ProfitLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ProvisionForDoubtfulAccounts">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of expense (reversal of expense) for expected credit loss on accounts receivable.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479319/326-20-50-13<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ProvisionForDoubtfulAccounts</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of increase in right-of-use asset obtained in exchange for operating lease liability.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 53<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479589/842-20-55-53<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (g)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of noncash expense for share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensation</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SupplementalCashFlowInformationAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SupplementalCashFlowInformationAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>21
<FILENAME>R9.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Nature of business and operations<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract', window );"><strong>Organization, Consolidation and Presentation of Financial Statements [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NatureOfOperations', window );">Nature of business and operations</a></td>
<td class="text">Nature of Business and Operations<div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Tecogen Inc. (together with its subsidiaries "we", "our", "us", "Tecogen", or "Company"), a Delaware Corporation, was incorporated on September 15, 2000, and acquired the assets and liabilities of the Tecogen Products division of Thermo Power Corporation. We produce commercial and industrial, natural-gas-fueled engine-driven, combined heat and power (CHP) products that reduce energy costs, decrease greenhouse gas emissions and alleviate congestion on the national power grid. Our products supply electric power or mechanical power for cooling, while heat from the engine is recovered and purposefully used at a facility. The majority of our customers are located in regions with the highest utility rates, typically California, the Midwest and the Northeast.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our operations are comprised of three business segments. Our Products segment designs, manufactures and sells industrial and commercial cogeneration systems as described above. Our Services segment provides operation and maintenance services to customers for our products.  Our Energy Production segment sells energy in the form of electricity, heat, hot water and cooling to our customers under long-term sales agreements. </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Liquidity, Going Concern and Management's Plans</span></div><div style="text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The consolidated financial statements have been prepared in accordance with U.S. generally accepted accounting </span></div><div style="text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">principles assuming that we will continue as a going concern, which contemplates the realization of assets and the settlement of obligations in the normal course of business. As of December&#160;31, 2024, our cash and cash equivalents were $5,405,233, compared to $1,351,270 at December&#160;31, 2023, an increase of $4,053,963. For the year ended December&#160;31, 2024 we generated $4,060,547 in cash from operations and incurred net operating losses of $4,534,087, due to lower Products sales and lower gross margin. Working capital at December&#160;31, 2024 was $5,329,650, compared to $9,822,546 at December&#160;31, 2023, a decrease of $4,492,896 and our accumulated deficit was $47,639,894. </span></div>As a result of the above factors, management has performed an analysis to evaluate the entity&#8217;s ability to continue as a going concern for one year after the financial statements issuance date. Management&#8217;s analysis includes forecasting future revenues, expenditures and cash flows, taking into consideration past performance as well as key initiatives recently undertaken. Our forecasts are dependent on our ability to maintain margins based on the Company's ability to close on new and expanded business, leverage existing working capital, and effectively manage expenses. New and expanded business includes the sale and shipment of newly developed hybrid-drive air-cooled chillers, increased services revenue due to the acquisition of additional maintenance contracts in February 2024 and April 2024, and the anticipated expansion of markets served by our chiller products into the data center market, which is currently experiencing power constraints. Our backlog at December&#160;31, 2024 was $12,336,248, which is an increase of $4,948,103 from the December&#160;31, 2023 backlog. Based on management's analysis, we believe that cash flows from operations  will be sufficient to fund operations over the next twelve months.<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NatureOfOperations">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for the nature of an entity's business, major products or services, principal markets including location, and the relative importance of its operations in each business and the basis for the determination, including but not limited to, assets, revenues, or earnings. For an entity that has not commenced principal operations, disclosures about the risks and uncertainties related to the activities in which the entity is currently engaged and an understanding of what those activities are being directed toward.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Topic 275<br> -Publisher FASB<br> -URI https://asc.fasb.org/275/tableOfContent<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 275<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482861/275-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NatureOfOperations</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>22
<FILENAME>R10.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Summary of significant accounting policies<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccountingPoliciesAbstract', window );"><strong>Accounting Policies [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BasisOfPresentationAndSignificantAccountingPoliciesTextBlock', window );">Summary of significant accounting policies</a></td>
<td class="text">Summary of Significant Accounting Policies<div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Principles of Consolidation and Basis of Presentation</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The financial statements have been prepared in accordance with accounting standards set by the Financial Accounting Standards Board, or FASB.  The FASB sets generally accepted accounting principles, or GAAP, to ensure financial condition, results of operations, and cash flows are consistently reported. References to GAAP issued by the FASB in these footnotes are to the FASB Accounting Standards Codification, or ASC.  We adopted the presentation requirements for noncontrolling interests required by ASC 810 Consolidation. Under ASC 810, earnings or losses attributed to the noncontrolling interests are reported as part of the consolidated earnings and not a separate component of income or expense.  </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The accompanying consolidated financial statements include our accounts and the accounts of the entities in which we have a controlling financial interest. Those entities include our wholly-owned subsidiary, American DG Energy Inc. ("ADGE"), Tecogen CHP Solutions, Inc., and a joint venture, American DG New York, LLC, or ADGNY, in which ADGE holds a 51.0% interest. As the controlling partner, all major decisions in respect of ADGNY are made by ADGE in accordance with the joint venture agreement. The interests in the individual underlying energy system projects in ADGNY vary between ADGE and its joint venture partner. The noncontrolling interest and distributions are determined based on economic ownership. The economic ownership is calculated by the amount invested by us and the noncontrolling partner in each site. Each quarter, we calculate a year-to-date profit/loss for each site that is part of ADGNY and the noncontrolling interest percent of economic ownership in each site is applied to determine the noncontrolling interest share in the profit/loss. The same methodology is used to determine quarterly distributions of available cash to the noncontrolling interest partner. On our balance sheet, noncontrolling interest represents the joint venture partner&#8217;s investment in ADGNY, plus its share of after-tax profits less any cash distributions. ADGE owned a controlling 51.0% legal and economic interest in ADGNY as of December&#160;31, 2024. </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Investments in partnerships and companies in which we do not have a controlling financial interest but where we have significant influence, if any, are accounted for under the equity method.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Noncontrolling interests in the net assets and operations of ADGNY are reflected in the caption &#8220;Noncontrolling interest&#8221; in the accompanying consolidated financial statements.  All intercompany transactions have been eliminated. </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Use of Estimates</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The preparation of financial statements in conformity with accounting principles generally accepted in the United States of America requires management to make estimates and assumptions that affect the reported amounts of assets and liabilities and disclosure of contingent assets and liabilities at the date of the financial statements and the reported amounts of revenues and expenses during the reporting period.  Actual results could differ from those estimates.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Reclassification of Prior Year Presentation</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Certain prior year amounts have been reclassified for consistency with the current year presentation. These reclassifications had no effect on the reported results of operations.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Concentration of Credit Risk</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Financial instruments that expose us to concentrations of credit risk consist primarily of cash and cash equivalents and accounts receivable.  We maintain our cash balances in bank accounts, which at times may exceed the Federal Deposit Insurance Corporation&#8217;s ("FDIC") general deposit insurance limits.  The amount on deposit at December&#160;31, 2024 and 2023 which exceeded the $250,000 federally insured limit were approximately $4,954,395 and $1,009,094, respectively.  We have not experienced any losses in such accounts and thus believe that we are not exposed to any significant credit risk on cash.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">There was no customer who represented 10% of revenues for the years ended December&#160;31, 2024 and December&#160;31, 2023. There was one customer who represented 12% of the accounts receivable balance as of December&#160;31, 2024, and one customers who represented 14% of the accounts receivable balance as of December&#160;31, 2023.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Cash and Cash Equivalents</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We consider all highly liquid instruments with an original maturity date of three months or less when purchased to be cash and cash equivalents. We have cash balances in certain financial institutions in amounts which occasionally exceed current FDIC limits. The financial stability of these institutions is continually reviewed by senior management. We believe that we are not exposed to any significant credit risk on cash and cash equivalents.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Accounts Receivable</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On January 1, 2023, we adopted ASU 2016-13, </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Financial Instruments, Credit Losses (Topic 326)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. Accounts receivable are stated at the amount management expects to collect from outstanding balances. The allowance for credit losses is estimated based on historical experience, aging of the receivable, the counterparty&#8217;s ability to pay, condition of general economy and industry, and </span><span style="color:#2d2d2d;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">combined with management's estimate of current conditions, reasonable and supportable forecasts of future losses to determine estimated credit losses in our</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> evaluation of outstanding accounts receivable at the end of the year. The allowance for credit losses reflects management's evaluation of our outstanding accounts receivable at the end of the year and our best estimate of probable losses inherent in the accounts receivable balance. Accounts receivable deemed uncollectible are charged against the allowance for credit losses when identified. Our provision for credit losses decreased to $146,010 in the year ended December&#160;31, 2024, compared to $902,432 in the year ended December&#160;31, 2023, due to the write down of certain install receivables which were deemed uncollectible in the year ended December&#160;31, 2023. At December&#160;31, 2024 and 2023, the allowance for credit losses was $295,932 and $149,992, respectively.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Inventory</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Raw materials, work in process, and finished goods inventories are stated at the lower of cost, as determined by the average cost method, or net realizable value.  We periodically review inventory quantities on hand for excess and/or obsolete inventory based primarily on historical usage, as well as based on estimated forecast of product demand and anticipated usage.  Any reserves that result from this review are charged to cost of sales.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Property, Plant and Equipment</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Property, plant and equipment are recorded at cost. Depreciation is provided using the straight-line method over the estimated useful life of the asset, which range from <span style="-sec-ix-hidden:f-343">three</span> to fifteen years.  Leasehold improvements are amortized using the straight-line method over the lesser of the estimated useful lives of the assets or the term of the related leases.  Expenditures for maintenance and repairs are expensed, while renewals and betterments that materially extend the life of an asset are capitalized.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We review our property, plant and equipment for potential impairment whenever events or changes in business circumstances indicate that the carrying value of the assets may not be fully recoverable or that the useful lives of the assets are </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">no longer appropriate. We evaluate the recoverability of our long-lived assets when impairment is indicated by comparing the net book value of the asset group to the estimated future undiscounted cash flows attributable to such assets. If the sum of the projected undiscounted cash flows (excluding interest charges) is less than the carrying value of the assets, the assets will be written down to the estimated fair value and such loss is recognized in income from continuing operations in the period in which the determination is made. If impairment is indicated, the asset is written down to its estimated fair value. </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Intangible Assets</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Intangible assets subject to amortization include costs incurred by us to acquire product certifications, certain patent costs, developed technologies, and customer contracts.  These costs are amortized on a straight-line basis over the estimated economic life of the intangible asset.  Indefinite life intangible assets such as trademarks are recorded at cost and not amortized. </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The favorable contract asset which relates to existing ADGE customer contracts is more fully described in Note 8. "Intangible Assets and Liabilities other than Goodwill". Customer contracts are more fully described in Note 5. "Aegis Contract and Related Asset Acquisition".  </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Impairment of Long-lived Assets</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Long-lived assets, including intangible assets and property, plant and equipment, are evaluated for impairment whenever events or changes in circumstances have indicated that an asset may not be recoverable and are grouped with other assets to the lowest level for which identifiable cash flows are largely independent of the cash flows of other groups of assets and liabilities.  If the sum of the projected undiscounted cash flows (excluding interest charges) is less than the carrying value of the assets, the assets will be written down to the estimated fair value and such loss is recognized in income from continuing operations in the period in which the determination is made. Management determined that no impairment of long-lived assets existed as of December&#160;31, 2024 and 2023, respectively.</span></div><div style="margin-bottom:6pt;margin-top:6pt;padding-left:36pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Business Combinations</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In accordance with applicable accounting standards, we estimate the fair value of assets acquired and liabilities assumed as of the acquisition date of each business combination. Any excess purchase price over the fair value of the net tangible and intangible assets acquired is allocated to goodwill. We may make certain estimates and assumptions when determining the fair values of assets acquired and liabilities assumed, including intangible assets. Critical estimates in valuing certain intangible assets include but are not limited to future expected cash flows from energy production sites or customer maintenance contracts, estimated operating costs, as well as discount rates. At the acquisition date, we will also record acquisition related liabilities, if applicable, for any contingent consideration or deferred payments to the seller and pre-acquisition deferred maintenance contingencies identified at service contract acquisition. Contingent consideration and pre-acquisition deferred maintenance contingencies are recorded at fair value on the acquisition date based on our expectation of achieving the contractually defined revenue targets and actual and projected future costs. The fair value of the contingent consideration and pre-acquisition deferred maintenance liabilities are remeasured each reporting period after the acquisition date and any changes in the estimated fair value are reflected as gains or losses in cost of goods sold or general and administrative expense in the consolidated statement of operations. Contingent consideration liabilities and deferred payments to sellers are recorded as current liabilities and other long-term liabilities in the consolidated balance sheets based on the expected timing of settlement.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Management&#8217;s estimates of fair value are based upon assumptions believed to be reasonable, but which are inherently uncertain and unpredictable and, as a result, actual results may differ from estimates. Any changes to provisional amounts identified during the measurement period are recognized in the reporting period in which the adjustment amounts are determined. Transaction costs associated with business combinations are expensed as incurred.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Goodwill</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Goodwill is the excess of the fair value of consideration paid for businesses over the fair value of the identifiable net assets acquired. Impairment testing for goodwill is performed annually, generally in the fourth fiscal quarter, or more frequently if impairment indicators are present. </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">To determine if goodwill is potentially impaired, we have the option to perform a qualitative assessment. However, we may elect to bypass the qualitative assessment and perform an impairment test even if no indications of a potential impairment exist. The impairment test for goodwill is performed at the reporting unit level and compares the fair value of the reporting unit (calculated using a discounted cash flow method) to its carrying value, including goodwill.  The discount rate represents our estimate of the weighted-average cost of capital, or expected return, that a marketplace participant would have required as of the valuation date. If the carrying value exceeds the fair value, an impairment charge is recorded for the excess carrying value over fair value, limited to the total amount of goodwill of that reporting unit. For 2024, we assessed goodwill impairment of our energy production reporting unit and our Aegis service maintenance contracts reporting unit.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We used a discounted cash flow approach to develop the estimated fair value of each reporting unit. Management </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">judgment is required in developing the assumptions for the discounted cash flow model. The discount rate, profitability assumptions, and terminal growth rate assumptions of the Energy Production unit utilized in the discounted cash flow model used to estimate its fair value are specific to the Energy Production unit, which the discount rate, profitability assumptions, and terminal growth rate assumptions utilized for the Aegis service maintenance reporting unit are specific to the Aegis service maintenance reporting. An impairment would be recorded if the carrying amount of a reporting unit including goodwill exceeded the estimated fair value. Based on the aforementioned analysis, our assessment in 2024 indicated that the carrying  value of our energy production reporting unit exceeded their fair value and therefore goodwill was impaired. We recorded a goodwill impairment charge of $217,295 in our Consolidated Financial Statements. Our assessment of the Aegis service maintenance contracts reporting unit, at December&#160;31, 2024, indicated that the carrying value of the service maintenance contracts did not exceed their fair value and therefore goodwill was not impaired. (see Note 10."Goodwill").</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We adopted the provisions of ASU 2017-04, during 2018, which simplified the impairment testing process by eliminating the requirement to determine the implied fair value of goodwill. We test goodwill for impairment on either a qualitative basis under certain conditions, or a quantitative basis. On a quantitative basis, fair value of the reporting units is primarily determined using a probability weighted discounted cash flow analysis.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Acquisition-Related Contingent Consideration</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Acquisition-related contingent consideration, which primarily consists of contingent consideration payable obligations, equal to a percentage of the revenue collected for maintenance services pursuant to the Aegis contract and related asset acquisitions, was recorded in the Consolidated Balance Sheets at its acquisition date estimated fair value, in accordance with the acquisition method of accounting. The fair value of the acquisition-related contingent consideration is remeasured each reporting period, with changes in fair value recorded in the Consolidated Statements of Operations. The fair value measurement of contingent consideration obligations arising from business combinations is determined via a probability-weighted discounted cash flow analysis, using unobservable (Level 3) inputs. These inputs may include: (i) the estimated amount and timing of projected cash flows, (ii) the probability of the achievement of the factor(s) on which the contingency is based and (iii) the risk-adjusted discount rate used to present value the probability-weighted cash flows. Significant increases or decreases in any of those inputs in isolation could result in a significantly higher or lower fair value measurement.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Leases</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On January 1, 2019, we adopted the guidance under ASU No. 2016-02, &#8220;Leases&#8221; ("ASC 842&#8221;). ASC 842 requires lessees to recognize most leases on their balance sheets as a right-of-use ("ROU") asset with a corresponding lease liability. ROU assets represent our right to use an underlying asset for the lease term and lease liabilities represent our obligation to make lease payments arising from the lease. Lease ROU assets and liabilities are recognized at lease commencement date based on the present value of lease payments over the expected lease term. See Note 14."Leases". </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Income (loss) per Common Share</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We compute basic income (loss) per share by dividing net income (loss) for the period by the weighted-average number of shares of common stock outstanding during the period.  We compute our diluted earnings (loss) per common share using the treasury stock method.  For purposes of calculating diluted earnings per share, we consider our shares issuable in connection with convertible debentures, stock options and warrants to be dilutive common stock equivalents when the exercise/conversion price is less than the average market price of our common stock for the period. </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Segment Information</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our operations are comprised of three business segments. Our Products segment designs, manufactures and sells industrial and commercial cogeneration systems as described above. Our Services segment installs and maintains our cogeneration systems. Our Energy Production segment sells energy in the form of electricity, heat, hot water and cooling to our customers under long-term sales agreements. Segment profit is based on operating income after the elimination of intercompany transactions. Segment profit is a measure of operating performance of our reportable segments and may not be comparable to similar measures reported by other companies. Segment profit is a performance metric utilized by our Chief Executive Officer, who is our Chief Operating Decision Maker, to allocate resources to and access performance of our segments. See Note 18. "Segments" for a reconciliation of segment profit to income from operations.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Income Taxes</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We use the asset and liability method of accounting for income taxes.  The current or deferred tax consequences of transactions are measured by applying the provisions of enacted tax laws to determine the amount of taxes payable currently or in future years.  Deferred tax assets and liabilities are determined based on the difference between the financial statement and tax bases of assets and liabilities and expected future tax consequences of events that have been included in the financial statements or tax returns using enacted tax rates in effect for the years in which the differences are expected to reverse.  Under this method, a valuation allowance is used to offset deferred taxes if, based upon the available evidence, it is more likely than </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">not that some or all of the deferred tax assets may not be realized.  Management evaluates the recoverability of deferred taxes and the adequacy of the valuation allowance annually.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We have adopted the provisions of the accounting standards relative to accounting for uncertainties in tax positions. These provisions provide guidance on the recognition, derecognition and measurement of potential tax benefits associated with tax positions.  We elected to recognize interest and penalties related to income tax matters as a component of income tax expense in the statements of operations.  We have analyzed our current tax return compliance positions and determined that no uncertain tax positions have been taken that would require recognition.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">With few exceptions, we are no longer subject to possible income tax examinations by federal, state or local taxing authorities for tax years before 2021, with the exception of loss carryforwards in the event they are utilized in future years.  Our  tax returns are open to adjustment from 2001 forward, as a result of the fact that the we have loss carryforwards from those years, which may be adjusted in the year those losses are utilized.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Fair Value of Financial Instruments</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our financial instruments are cash and cash equivalents, accounts receivable, available-for-sale securities and accounts payable.  The recorded values of cash and cash equivalents, accounts receivable and accounts payable approximate their fair values based on their short-term nature. See Note 16. "Fair Value Measurements".</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Revenue Recognition</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Revenue is recognized when performance obligations under the terms of a contract with our customer are satisfied; generally, this occurs with the transfer of control of our products, services and energy production. Revenue is measured as the amount of consideration we expect to receive in exchange for transferring goods or providing services or energy to customers. </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Shipping and handling fees billed to customers in a sales transaction are recorded in revenue for goods provided. were $96,890 and $174,662, for the years ended December&#160;31, 2024 and 2023, respectively. The related shipping and handling costs incurred are accounted for as fulfillment activities and are recognized as cost of goods sold when control of the product transfers to the customer, which were $59,331 and $79,616, for the years ended December&#160;31, 2024 and 2023, respectively. The costs of inbound freight is recorded in general and administrative expenses. For the years ended December&#160;31, 2024 and 2023, $248,229 and $427,880 of shipping and handling costs were included in general and administrative expenses in the accompanying consolidated statements of operations, respectively. We elected to exclude from revenue any value-add sales and other taxes which we collect concurrent with revenue-producing activities. These accounting policy elections are consistent with the manner in which we have historically recorded shipping and handling fees and taxes. Incremental costs incurred by us in obtaining a contract with a customer are negligible, if any, and are expensed ratably in proportion to the related revenue recognized.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Advertising Costs</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We expense the costs of advertising as incurred.  For the years ended December&#160;31, 2024 and 2023, advertising expense was approximately $74,000 and $80,000, respectively.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Research and Development Costs</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Research and development expenditures are expensed as incurred.  Our total research and development expenditures were approximately $962,000 and $840,000 for the years ended December&#160;31, 2024 and 2023, respectively. </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Stock-Based Compensation</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Stock-based compensation cost is measured at the grant date, based on the estimated fair value of the award, and is recognized as an expense in the statements of operations over the requisite service period.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The determination of the fair value of share-based payment awards is affected by our stock price.  For the awards issued prior to our being publicly traded, we considered the sales price of the common stock in private placements to unrelated third parties as a measure of the fair value of our common stock.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We utilize actual forfeitures when calculating the expense for the period. Stock-based compensation expense recognized is based on awards that are ultimately expected to vest.  We evaluate the assumptions used to value awards regularly and if factors change and different assumptions are employed, stock-based compensation expense may differ significantly from what has been recorded in the past.  If there are any modifications or cancellations of the underlying unvested securities, we may be required to accelerate, increase or cancel any remaining unearned stock-based compensation expense.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">See Note 15."Stockholders' Equity" for a summary of the restricted stock and stock option activity under our stock-based employee compensation plan for the years ended December&#160;31, 2024, and 2023. </span></div><div style="margin-bottom:6pt;margin-top:6pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Disaggregated Revenue</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In general, our business segmentation is aligned according to the nature and economic characteristics of our products and customer relationships and provides meaningful disaggregation of each business segment's results of operations. </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table further disaggregates our revenue by major source by segment for the years ended December&#160;31, 2024 and 2023.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:center;text-indent:36pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:401.25pt"><tr><td style="width:1.0pt"></td><td style="width:193.00pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:1.75pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:97.75pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:1.00pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:97.75pt"></td><td style="width:1.0pt"></td></tr><tr style="height:14pt"><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="9" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Years Ended</span></td></tr><tr style="height:14pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2024</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2023</span></td></tr><tr style="height:14pt"><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Products:</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"></td></tr><tr style="height:14pt"><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Cogeneration</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,677,930&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,761,667&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:14pt"><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Chiller</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,647,374&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">5,303,978&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:14pt"><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Engineered Accessories</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">118,692&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">794,301&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:14pt"><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total Products Revenue</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4,443,996&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">8,859,946&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr style="height:14pt"><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Services</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">16,074,870&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">14,523,054&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:14pt"><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Energy production</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,100,670&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,756,419&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:14pt"><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total revenue</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">22,619,536&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">25,139,419&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><div style="margin-bottom:6pt;margin-top:6pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Products Segment</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our Product revenues include cogeneration systems that supply electricity and hot water, chillers that provide air-conditioning and hot water and engineered accessories, which consist of ancillary products and parts necessary to install a cogeneration unit including integration into the customers&#8217; existing electrical and mechanical systems. We refer to the package of engineered accessories and engineering and design services necessary for the customers' installation of a cogeneration unit as light installation services.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We transfer control and generally recognize a sale when we ship a product from our manufacturing facility at which point the customer takes ownership of the product. Payment terms on product sales are generally 30 days. </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We recognize revenue in certain circumstances before delivery to the customer has occurred (commonly referred to as bill and hold transactions). We recognize revenue related to such transactions once, among other things, the customer has made a written fixed commitment to purchase the product(s) under normal billing and credit terms, the customer has requested the product(s) be held for future delivery as scheduled and designated by them, risk of ownership has been assumed by the customer, and the product(s) are tagged as sold and segregated for storage awaiting further direction from the customer. Due to the infrequent nature and duration of bill and hold arrangements, the value associated with custodial storage services is deemed immaterial in the context of the contract and in total, and accordingly, none of the transaction price is allocated to such service.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Depending on the product and terms of the arrangement, we may defer the recognition of a portion of the transaction price received because we have to satisfy a future obligation (e.g., product start-up service). Amounts allocated to product start-up services are recognized as revenue when the start-up service has been completed. We use an observable selling price to determine standalone selling prices where available and either a combination of an adjusted market assessment approach, an expected cost plus a margin approach, and/or a residual approach to determine the standalone selling prices for separate performance obligations as a basis for allocating contract consideration when an observable selling price is not available. Amounts received but not recognized pending completion of performance are recognized as contract liabilities and are recorded as deferred revenue along with deposits by customers. </span></div><div style="margin-bottom:6pt;margin-top:6pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Services Segment</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Maintenance services are provided under either long-term maintenance contracts or time and material maintenance contracts. Revenue under time and material maintenance contracts is recognized when the maintenance service is completed. Revenue under long-term maintenance contracts is recognized either ratably over the term of the contract where the contract price is fixed or when the periodic maintenance activities are completed and the invoiced cost to the customer is based on run hours or kilowatts produced in a given period. We use an output method to measure progress towards completion of our performance obligation which results in the recognition of revenue on the basis of a direct measurement of the value to the customer of the services transferred to date relative to the remaining services promised under the contract. We use the practical expedient at ASC 606-10-55-18 of recognizing revenue in an amount equal to the amount we have the right to invoice the customer under the contract. </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our initial acquisition of the Aegis maintenance contracts and related business closed on March 15, 2023. We have included the financial results of the Aegis maintenance agreements in our consolidated financial statements from April 1, 2023, from February 1, 2024 and from May 1, 2024, the closing or acquisition dates for the acquisitions in our revenue from the Services segment. Payment terms for maintenance services are generally 30 days.</span></div><div style="margin-bottom:6pt;margin-top:6pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Energy Production Segment</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Revenue from energy contracts is recognized when electricity, heat, hot and/or chilled water is produced by our owned on-site cogeneration systems. Each month we bill the customer and recognize revenue for the various forms of energy delivered, based on meter readings which capture the quantity of the various forms of energy delivered in a given month, under a contractually defined formula which takes into account the current month's cost of energy from the local power utility. </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As the various forms of energy delivered by us under energy production contracts are simultaneously delivered and consumed by the customer, our performance obligation under these contracts is considered to be satisfied over time. We use an output method to measure progress towards completion of our performance obligation which results in the recognition of revenue on the basis of a direct measurement of the value to the customer of the services transferred to date relative to the remaining services promised under the contract. We use the practical expedient at ASC 606-10-55-18 of recognizing revenue in an amount equal to that amount to which we have the right to invoice the customer under the contract. Payment terms on invoices under these contracts are generally 30 days. </span></div><div style="margin-bottom:6pt;margin-top:6pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Contract Balances</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The timing of revenue recognition, billings and cash collections result in billed accounts receivable, unbilled revenue (contract assets) and deferred revenue, consisting of customer deposits and billings in excess of revenue recognized (contract liabilities) on the consolidated balance sheets.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We did not recognize any revenue during the year ended December&#160;31, 2024 that was included in the unbilled revenue receivable as of December&#160;31, 2024. </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Revenue recognized during the year ended December&#160;31, 2024 that was included in deferred revenue at the beginning of the period was $662,730.</span></div><div style="margin-bottom:6pt;margin-top:6pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Remaining Performance Obligations</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Remaining performance obligations related to ASC 606 represent the aggregate transaction price allocated to performance obligations with an original contract term greater than one year, excluding certain maintenance contracts and all energy production contracts where a direct measurement of the value to the customer is used as a method of measuring progress towards completion of our performance obligation. Exclusion of these remaining performance obligations is due in part to the inability to quantify values based on unknown future levels of delivery and in some cases rates used to bill customers. Remaining performance obligations therefore consist of unsatisfied or partially satisfied performance obligations related to fixed price maintenance contracts and installation contracts. </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As of December&#160;31, 2024, the aggregate amount of the transaction price allocated to remaining unsatisfied performance obligations was approximately $7,867,082. We expect to recognize revenue of approximately 84% of the remaining performance obligations over the next 24 months, 82% recognized in the first 12 months and 2%&#160;recognized over the subsequent 12 months, and the remainder recognized thereafter.</span></div><div style="margin-bottom:6pt;margin-top:6pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Significant New Accounting Standards Adopted this Period </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">New accounting standards adopted in the year ended December&#160;31, 2023.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Financial Instruments, Credit Losses (Topic 326)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. In June 2016, the Financial Accounting Standards Board issued ASU No. 2016-13, </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Financial Instruments, Credit Losses (Topic 326)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">, which was subsequently amended by ASUs 2018-19, 2019-04, 2019-05, 2019-11, and 2020-03. Topic 326 replaces the existing incurred loss impairment model with a methodology that incorporates all expected credit loss estimates, resulting in more timely recognition of losses. Under Topic 326, we are required to measure all expected credit losses for financial assets held at the reporting date based on historical experience, current conditions, and reasonable and supportable forecasts that affect the collectability of the reported financial assets. It also requires credit losses related to available-for-sale debt securities to be recorded through an allowance for credit losses. We adopted Topic 326 on January 1, 2023 on a modified retrospective basis. The adoption did not have a material effect on our consolidated financial statements. </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">New accounting standards adopted in the year ended December&#160;31, 2024.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Segment Reporting (Topic 280) - Improvements to Reportable Segment Disclosure</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">s. In November 2023, the Financial Accounting Standards Board issued ASU 2023-07, </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Segment Reporting (Topic 280) - Improvements to Reportable Segment Disclosures</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. The new standard requires enhanced disclosures about a public entity's reportable segments including more detailed information about a reportable segment's expenses. The amendments in this update apply to all public entities that are required to report segment information, and include those entities that have a single reportable segment. The amendments in this update are effective for fiscal years beginning after December 15, 2023, and interim periods within fiscal years beginning after December 15, 2024. Early adoption is permitted. We adopted Topic 280 on January 1, 2024. Retrospective application is </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">required for all periods presented in the financial statements. The adoption of Topic 280 did not have a material effect on our consolidated financial statements, other than with respect to expanded disclosure.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Recently Issued Accounting Pronouncements</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Income Taxes (Topic 740) - Improvements to Income Tax Disclosure</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">s. In December 2023, the Financial Accounting Standards Board issued ASU 2023-09, </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Income Taxes (Topic 740) - Improvements to Income Tax Disclosures</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. ASU 2023-09 provides more transparency about income tax information through improvements to income tax disclosures primarily related to the rate reconciliation and income taxes paid information. The amendments in this update are effective for annual periods beginning after December 15, 2024. Early adoption is permitted. The adoption of Topic 740 will not have a material effect on our consolidated financial statements, other than with respect to expanded disclosure.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Compensation - Stock Compensation (Topic 718) - </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In March 2024, the Financial Accounting Standards Board Issued ASU 2024-01, </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Compensation - Stock Compensation (Topic 718)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. ASU 2024-01 addresses generally accepted accounting principles relating to profits interest awards and similar awards provided to employees or non-employees to align compensation with an entity's operating performance and provide the holders with the opportunity to participate in future profits and/or equity appreciation of the entity. Since profits interest holders only participate in future profits and/or equity appreciation and have no rights to the existing assets of the entity, a profits interest award should be accounted for as a share-based compensation arrangement (Topic 718) or similar to a cash bonus or profit-sharing arrangement (Topic 710). The amendments in this update apply to all entities that enter into share-based payment transactions and are effective for annual periods beginning after December 15, 2024 and interim periods for those annual periods. Early adoption is permitted for both interim and annual periods that have not yet been issued or made available for issuance. If adopted in an interim period, the Update should be adopted as of the beginning of the annual period that includes the interim period. The amendments can be applied retrospectively to all prior periods presented in the financial statements or prospectively to profits interest and similar awards granted or modified on or after the date the entity first applies the amendments. If applied retrospectively,  the entity is required to provide disclosures in paragraphs 250-10-50-1 through 50-3. If applied prospectively, the entity is required to disclose the nature and reason for the change in accounting principle. ASU 2024-01 may apply to Tecogen should we issue profits interest awards after December 15, 2024, adoption of which we believe will not have a material effect on our financial position or results of operation.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Codification Improvements &#8211; Amendments to Remove References to the Concepts Statements</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. In March 2024, the Financial Accounting Standards Board Issued ASU 2024-02, </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Codification Improvements &#8211; Amendments to Remove References to the Concepts Statements</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. ASU 2024-02 contains amendments to the Codification that remove references to various FASB Concept Statements, affecting a variety of Topics in the Codification and applies to all reporting entities. The amendments in this update are effective for public entities for fiscal years beginning after December 31, 2024. Early application of the amendments in this update are permitted for any fiscal year or interim period for which financial statements have not yet been issued or made available for issuance. If adopted in an interim period, the amendment must be adopted as of the beginning of the fiscal years that includes the interim period. An entity should apply the amendments prospectively to all new transactions recognized on or after the date that the entity first applies the amendments, or retrospectively to the beginning of the earliest comparative period presented in which the amendments were first applied, by adjusting the opening balance of retained earnings, or other appropriated components of equity or net assets, as of the beginning of the earliest comparative period presented. ASU 2024-02 will apply to Tecogen after December 15, 2024, adoption of which we believe will not have a material effect on our financial position or results of operation.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"> Income Statement &#8211; Reporting Comprehensive Income &#8211; Expense Disaggregation Disclosures (Subtopic 220-40). </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In November 2024, the Financial Accounting Standards Board Issued ASU 2024-03 </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Income Statement- Reporting Comprehensive Income &#8211; Expense Disaggregation Disclosures (Subtopic 220-40)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. This update is intended to improve disclosures about public entity&#8217;s expenses and will require more detailed information about types of expenses including inventory purchases, employee compensation, depreciation, amortization and depletion in commonly presented captions such as cost of sales, SG&amp;A and research and development. In addition, an entity will be required to include certain amounts that are already disclosed under GAAP in the same disclosure as the other disaggregation requirements; disclose a qualitative description of the amounts remaining in expense captions not separately disaggregated quantitatively; and, disclose the amount of selling expense and, in annual reporting periods, the entity&#8217;s definition of selling expenses. The amendments are effective for annual reporting periods beginning after December 15, 2026, and interim reporting periods beginning after December 15, 2027. Early adoption is permitted. The amendments should be applied prospectively to the financial statements after the effective date and retrospectively to any and all prior periods presented in the financial statements. ASU 2024-03 will apply to Tecogen after December 15, 2026, adoption of which will not have a material effect on our financial position or results of operation, but will require additional disclosure.</span></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccountingPoliciesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccountingPoliciesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BasisOfPresentationAndSignificantAccountingPoliciesTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for the basis of presentation and significant accounting policies concepts. Basis of presentation describes the underlying basis used to prepare the financial statements (for example, US Generally Accepted Accounting Principles, Other Comprehensive Basis of Accounting, IFRS). Accounting policies describe all significant accounting policies of the reporting entity.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 235<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/235/tableOfContent<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BasisOfPresentationAndSignificantAccountingPoliciesTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>23
<FILENAME>R11.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Loss per common share<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EarningsPerShareAbstract', window );"><strong>Earnings Per Share [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EarningsPerShareTextBlock', window );">Loss per common share</a></td>
<td class="text">Income (loss) per Common Share:<div style="margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Basic and diluted loss per common share for the years ended</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%"> </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">December&#160;31, 2024 and 2023, respectively, was as follows:</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:center;text-indent:36pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:85.964%"><tr><td style="width:1.0%"></td><td style="width:54.852%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:20.498%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.650%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:20.500%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Years Ended</span></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2024</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2023</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Numerator:</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Net loss attributable to stockholders</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(4,760,238)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(4,598,108)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Denominator:</span></td><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Weighted average shares outstanding - Basic</span></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">24,861,190</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">24,850,261</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Effect of dilutive securities:</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Stock options</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Weighted average shares outstanding - Diluted</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">24,861,190&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">24,850,261&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Basic loss per share</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(0.19)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(0.19)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Diluted loss per share</span></td><td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(0.19)</span></td><td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(0.19)</span></td><td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:14pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Anti-dilutive shares underlying stock options outstanding</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,222,516&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,757,676&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr></table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerShareAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerShareAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerShareTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for earnings per share.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482662/260-10-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/260/tableOfContent<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482662/260-10-50-2<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482662/260-10-50-3<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerShareTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>24
<FILENAME>R12.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Acquisition of American DG Energy Inc. (Notes)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationsAbstract', window );"><strong>Business Combinations [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_MergersAcquisitionsAndDispositionsDisclosuresTextBlock', window );">Acquisition of American DG Energy Inc.</a></td>
<td class="text">Acquisition of American DG Energy Inc.<div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On May&#160;18, 2017, we completed our acquisition, by means of a stock-for-stock merger, of 100% of the outstanding common shares of American DG Energy Inc. (&#8220;American DG Energy" or "ADGE&#8221;), a company which installed, owned, operated and maintained complete distributed generation of electricity systems, or DG systems or energy systems, and other complementary systems at customer sites and sells electricity, hot water, heat and cooling energy under long-term contracts at prices guaranteed to the customer to be below conventional utility rates, by means of a merger of one of our wholly owned subsidiaries with and into ADGE such that ADGE became a wholly owned subsidiary of Tecogen. We acquired ADGE to, among other reasons, expand our product offerings and benefit directly from the long-term contracted revenue streams generated by these installations. We gained control of ADGE on May&#160;18, 2017 by issuing shares of our Common Stock to the prior stockholders of ADGE.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Goodwill of $13.3 million arising from the acquisition is primarily attributable to the going concern element of ADGE&#8217;s business, including its assembled workforce and the long-term contractual nature of its business, as well as expected cost synergies from the merger related primarily to the elimination of administrative overhead and duplicative personnel. None of the goodwill recognized is expected to be deductible for income tax purposes.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The favorable contract asset and the unfavorable contract liability, both of which relate to existing customer contracts, and the estimated amortization are more fully described in Note 8. "Intangible Assets and Liabilities other than Goodwill".</span></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_MergersAcquisitionsAndDispositionsDisclosuresTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for business combinations, including leverage buyout transactions (as applicable), and divestitures. This may include a description of a business combination or divestiture (or series of individually immaterial business combinations or divestitures) completed during the period, including background, timing, and assets and liabilities recognized and reclassified or sold. This element does not include fixed asset sales and plant closings.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 805<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/805/tableOfContent<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 205<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/205-20/tableOfContent<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_MergersAcquisitionsAndDispositionsDisclosuresTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>25
<FILENAME>R13.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Aegis Contract and Related Asset Acquisition<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationAndAssetAcquisitionAbstract', window );"><strong>Business Combination, Asset Acquisition, and Joint Venture Formation [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationDisclosureTextBlock', window );">Aegis Contract and Related Asset Acquisition</a></td>
<td class="text">Aegis Contract and Related Asset Acquisition<div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On March 15, 2023, we entered into an agreement ("Agreement") with Aegis Energy Services, LLC (&#8220;Aegis&#8221;) pursuant to which Aegis agreed to assign to us and we agreed to assume certain Aegis maintenance agreements, we agreed to purchase certain assets from Aegis, and related matters (&#8220;Acquisition&#8221;).  On April 1, 2023, the Acquisition closed. Under the Agreement, we agreed to acquire from Aegis and assume Aegis&#8217; rights and obligations arising on or after April 1, 2023, under maintenance agreements pursuant to which Aegis provided maintenance services to third parties for approximately 200 cogeneration systems and we agreed to acquire from Aegis certain vehicles and inventory used by Aegis in connection with the performance of its maintenance services.  At closing, we acquired eight (8) Aegis vehicles for consideration consisting of $170,000 in cash.  Also, we issued credits against outstanding accounts receivable due from Aegis in the amount of $300,000 for the acquisition of inventory that Aegis used to provide maintenance services. At closing, we hired eight (8) Aegis employees who, following the closing, have agreed to continue to provide maintenance services relating to the cogeneration systems covered by the maintenance agreements assumed pursuant to the Agreement. Following the closing and for a period of up to seven (7) years, we agreed to pay Aegis a percentage of the revenue collected for maintenance services provided pursuant to the maintenance agreements acquired from Aegis. Further, prior to December 31, 2023, we had the right to acquire and assume additional Aegis&#8217; maintenance agreements for cogeneration systems on substantially similar terms and conditions. The Agreement contained certain indemnification provisions and agreements on the part of Aegis and for each party to cooperate with each other and provide certain transitional assistance. We acquired the Aegis maintenance agreements to expand our Service portfolio and to benefit from the long-term contract revenue stream generated by these agreements.  </span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On February 1, 2024, Tecogen and Aegis amended the Agreement to add eighteen (18) additional maintenance contracts assumed by us (the "February 2024 Amendment") which includes an undertaking by Aegis to use commercially reasonable efforts to support and assist our execution of maintenance service agreements for an additional thirty-six (36) cogeneration units sold to customers by Aegis. </span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On May 1, 2024, Tecogen and Aegis amended the Agreement to add thirty-one (31) additional maintenance contracts assumed by us (the "May 2024 Amendment") which includes an undertaking by Aegis to use commercially reasonable efforts to support and assist our execution of maintenance service agreements for an additional forty-eight (48) cogeneration units sold to customers by Aegis.  </span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">No additional maintenance service agreements contemplated in the February 2024 Amendment or the May 2024 Amendment have been executed as of December&#160;31, 2024.</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We have determined that the assignment and assumption of the Aegis maintenance agreements, in combination with the related asset acquisition and the retention of the former Aegis employees, constitutes a business and should be accounted for as a business combination under the acquisition method. As of the acquisition date, we recognized, separately from goodwill, the identifiable assets acquired and the liabilities assumed, at fair value. We have applied an interpretation of the guidance in ASC 805, Business Combinations, that allows an entity to combine multiple acquisitions as one single transaction due to the April 1, 2023, February 1, 2024 and May 1, 2024 acquisitions being executed in contemplation of one another to achieve the same commercial objective for the Company. As a result, we have adjusted the initial accounting for the April 1, 2023 acquisition for the value of net assets acquired from the February 1, 2024 and May 1, 2024 acquisitions.</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We have included the financial results of the Aegis maintenance agreements in our consolidated financial statements from April 1, 2023, from February 1, 2024 and from May 1, 2024, the closing or acquisition dates for the acquisitions.</span></div><div style="margin-bottom:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes the consideration paid for the Aegis acquisition and the fair value of assets acquired and contract-related liabilities assumed as of the acquisition date:</span></div><div style="margin-bottom:6pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.561%"><tr><td style="width:1.0%"></td><td style="width:44.568%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.822%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.387%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.996%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.387%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.675%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.387%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.678%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="21" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Acquisitions</span></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">April 1, 2023</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">February 1, 2024</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">May 1, 2024</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Total</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Consideration Paid:</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Cash</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">170,000&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">170,000&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Accounts receivable credit issued</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">300,000&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">300,000&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Account payable due to Aegis</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">91,048&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">91,048&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Contingent consideration</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,256,656&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">101,641&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">171,260&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,529,557&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total fair value of consideration transferred</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,817,704&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">101,641&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">171,260&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,090,605&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:12pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Identifiable assets acquired and liabilities assumed:</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Assets acquired</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Property, plant and equipment</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">170,000&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">170,000&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Inventory</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">391,048&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">391,048&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Identifiable intangible asset - customer contracts</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,772,659&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">184,587&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">267,877&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,225,123&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,333,707&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">184,587&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">267,877&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,786,171&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Acquired contract-related liabilities assumed</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Deferred maintenance reserve</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(853,271)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(853,271)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Net identifiable assets acquired</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,480,436&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">184,587&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">267,877&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,932,900&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Excess of cost over fair value of net assets acquired (Goodwill)</span></td><td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">337,268&#160;</span></td><td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(82,946)</span></td><td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(96,617)</span></td><td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">157,705&#160;</span></td><td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Initial Acquisition - April 1, 2023</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The amounts initially recognized for inventory, identifiable intangible assets, contingent consideration and deferred maintenance reserves were provisional pending completion of the necessary valuations and analysis. ASC 805 establishes a measurement period to provide companies with a reasonable amount of time to obtain the information necessary to identify and measure various items in a business combination and cannot extend beyond one year from the acquisition date. As of December&#160;31, 2023, we completed our analysis and valuation.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As of December&#160;31, 2024, we recorded no remeasurment adjustments to the fair value of the contingent consideration and deferred maintenance reserves given the probability of achieving the revenue estimates and the actual and expected maintenance costs  were consistent with our initial valuation.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">February 2024 Amendment</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The amounts initially recognized for identifiable intangible assets and contingent consideration are provisional, pending completion of the necessary valuations and analysis. ASC 805 establishes a measurement period to provide companies with a reasonable amount of time to obtain the information necessary to identify and measure various items in a business combination and cannot extend beyond one year from the acquisition date. During the year ended December&#160;31, 2024, we identified a $9,232 adjustment to increase the contingent consideration liability and a $5,052 adjustment reducing the customer contracts intangible asset. As of December&#160;31, 2024, we completed our analysis and valuation for the February 2024 amendment.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">May 2024 Amendment</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The amounts initially recognized for identifiable intangible assets and contingent consideration are provisional pending completion of the necessary valuations and analysis. ASC 805 establishes a measurement period to provide companies with a reasonable amount of time to obtain the information necessary to identify and measure various items in a business combination and cannot extend beyond one year from the acquisition date. As of December&#160;31, 2024, we have completed our analysis and valuation for the May 2024 amendment.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Acquisition Valuation</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The fair value of the identifiable intangible asset was estimated using the income approach. The excess cash flow was discounted to present value using an appropriate rate of return to estimate the market value of the customer identifiable intangible asset and the risks associated with the future revenue forecasts due to potential changes in customer energy requirements or changes in the economic viability of these CHP sites which depend on the spread between natural gas fuel and electricity prices, all of which are not within our control. Key assumptions to value the customer identifiable intangible asset included the discount rate of 15%, profitability assumptions, revenue assumptions, and anticipated existing contract run out were the material assumptions utilized in the discounted cash flow model used to estimate fair value. The discount rate reflects an estimate of our weighted-average cost of capital. </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Following the closing and for a period of up to seven (7) years, we agreed to pay Aegis contingent consideration equal to a percentage of the revenue collected for maintenance services provided pursuant to the maintenance agreements acquired from Aegis. On the date of acquisition, the fair value of the contingent consideration and the deferred maintenance reserve were calculated under the income approach using a weighted average cost of capital of 15%, discounting the future cash flows to present value, and are subsequently remeasured to fair value at each reporting date until the fair value contingencies are resolved. Fair value adjustments which may be determined at subsequent reporting dates will be recorded in our consolidated statements of operations and will not impact the goodwill balance after the measurement period.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The contingent consideration is payable within forty-five (45) days following the end of each calendar quarter through the earlier of the expiration or termination of the relevant maintenance agreements, or the seventh (7th) anniversary of the acquisition date. The consideration is equal to the product of the revenues collected in a calendar quarter multiplied by an applicable percentage. The agreement stipulates quarterly aggregate revenue targets and an applicable percentage, and provides for a higher applicable percentage if revenues exceed the target revenues. The applicable percentage ranges from 5% to 10% over the agreement term. The deferred maintenance reserve represents costs, which are expected to be incurred over a three-year period from the date of acquisition to repair customer equipment which had not been sufficiently maintained prior to our acquisition of the maintenance service agreements. </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The purchase price of the acquisition was allocated to the tangible and intangible assets acquired and liabilities assumed and recognized at their fair value based on widely accepted valuation techniques in accordance with ASC 820, "Fair Value Measurement," as of the acquisition date. The process for estimating fair value requires the use of significant assumptions and estimates of future cash flows and developing appropriate discount rates. The excess of the purchase price over fair value of the net identified assets acquired and liabilities assumed was recorded as goodwill. Goodwill is primarily attributable to the going concern element of the Aegis business, including its assembled workforce and the long-term nature of the customer maintenance agreements, as well as anticipated cost synergies due primarily to the elimination of administrative overhead. Goodwill resulting from the Aegis acquisition is not expected to be deductible for income tax purposes. </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Acquisition-related costs which consisted on recurring internal resources were de minimus and such costs were expensed as incurred (ASC 805-50-30-1).</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes the contract-related liabilities assumed as of December&#160;31, 2024:</span></div><div style="margin-bottom:6pt;text-align:center;text-indent:36pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:69.736%"><tr><td style="width:1.0%"></td><td style="width:47.746%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:24.057%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.638%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:24.059%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2024</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2023</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Acquisition liabilities, current</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Contingent consideration</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">328,350&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">200,639&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Deferred maintenance reserve</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">574,202&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">644,724&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">902,552&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">845,363&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Acquisition liabilities, long-term</span></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Contingent consideration</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,008,760&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">994,743&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Deferred maintenance reserve</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">187,036&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,008,760&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,181,779&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:112%">Revenues and gross profit from the Aegis maintenance contracts were $2,671,051 and $1,764,227 and $1,884,891 and $1,167,225, respectively, for the years ended December&#160;31, 2024 and 2023. The revenue and gross profit are included in our Services segment since the date of the respective contract acquisitions.</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:112%">Periodic Remeasurement of Contingent Liabilities</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:112%">The fair value of the contingent consideration and pre-acquisition deferred maintenance liabilities are remeasured each reporting period after the acquisition date and any changes in the estimated fair value are reflected as gains or losses in cost of goods sold or general and administrative expense in the consolidated statement of operations.</span></div><div style="margin-bottom:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:112%">We performed a remeasurement analysis of the contingent consideration and pre-acquisition deferred maintenance liabilities at December&#160;31, 2024 and determined that the carrying value of the liabilities approximated the estimated fair value of the of the liabilities, based on a discounted cash flow analysis, and did not record a remeasurement adjustment for the year ended December&#160;31, 2024. </span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:112%">We are unable to provide the pro forma information required under ASC 805-10-50-2(h) as the disclosure is impracticable since the required pre-acquisition historical information could not be obtained from Aegis.</span></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationAndAssetAcquisitionAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationAndAssetAcquisitionAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for a business combination (or series of individually immaterial business combinations) completed during the period, including background, timing, and recognized assets and liabilities. The disclosure may include leverage buyout transactions (as applicable).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479907/805-20-50-5<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 805<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/805/tableOfContent<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>26
<FILENAME>R14.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Sale of Energy Producing Assets and Goodwill Impairment<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DiscontinuedOperationsAndDisposalGroupsAbstract', window );"><strong>Discontinued Operations and Disposal Groups [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisposalGroupsIncludingDiscontinuedOperationsDisclosureTextBlock', window );">Sale of Energy Producing Assets and Goodwill Impairment</a></td>
<td class="text">Sale of Energy Producing Assets and Goodwill Impairment<div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">During the first quarter of 2019, we sold certain energy producing assets, including the associated energy production contracts for total consideration of $7 million. </span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In connection with the asset sales, we entered into agreements with the purchaser to maintain and operate the assets over the remaining periods of the associated energy production contracts (through August 2033 and January 2034, respectively) in exchange for monthly fees for both maintenance and operation. These agreements contain provisions whereby we have guaranteed to the purchaser a minimum level or threshold of cash flows from the associated energy production contracts. Actual results are compared to the minimum threshold bi-annually and we reimburse any shortfall to the purchaser. To the extent actual results are in excess of the minimum threshold, we are entitled to fifty percent of such excess under the agreements. We received excess payments in both the years ended December&#160;31, 2024 and 2023. For the years ended December&#160;31, 2024 and 2023, we recognized $73,243 and $25,633, respectively, of revenue representing our share of the excess cash flows under the energy production contracts. Included in our current receivables as of December&#160;31, 2024 and 2023, are excess cash flows of  $98,876 and $25,633, respectively. </span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The foregoing agreements also contain provisions whereby we have agreed to make whole the purchaser in the event the counterparty to the energy production contract(s) defaults on or otherwise terminates before the stated expiration of the energy production contract. Should we be required to make whole the purchaser under such provisions, we would be entitled to seek recovery from the counterparty to the energy production contract(s) under a similar provision contained in those contracts in respect of early termination. We did not recognize any counterparty contract default costs in the years ended December&#160;31, 2024 and 2023.</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We are also responsible under the agreements for site decommissioning costs, if any, in excess of certain threshold amounts by site. Decommissioning of site assets is performed when, if and as requested by the counterparty to the energy production contract upon termination of the energy production contract. We recognized $20,000 of site decommissioning costs for the year ended December&#160;31, 2024 and did not recognize any site decommissioning costs for the year ended December&#160;31, 2023.</span></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DiscontinuedOperationsAndDisposalGroupsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DiscontinuedOperationsAndDisposalGroupsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisposalGroupsIncludingDiscontinuedOperationsDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure related to a disposal group. Includes, but is not limited to, a discontinued operation, disposal classified as held-for-sale or disposed of by means other than sale or disposal of an individually significant component.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 205<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/205-20/tableOfContent<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 360<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/360/tableOfContent<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisposalGroupsIncludingDiscontinuedOperationsDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>27
<FILENAME>R15.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Inventory<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InventoryDisclosureAbstract', window );"><strong>Inventory Disclosure [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InventoryDisclosureTextBlock', window );">Inventory</a></td>
<td class="text">Inventory, net<div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Inventory at December&#160;31, 2024 and 2023 consisted of the following.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:center;text-indent:36pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:57.748%"><tr><td style="width:1.0%"></td><td style="width:53.583%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:20.925%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:1.065%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:20.927%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 1.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Raw materials, net</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">8,525,879&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">8,803,054&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Work-in-process</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">930,769&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">798,522&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Finished goods, net</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">177,357&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">951,843&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">9,634,005&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">10,553,419&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InventoryDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InventoryDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InventoryDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 330<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/330/tableOfContent<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InventoryDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>28
<FILENAME>R16.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Intangible assets and liabilities other than goodwill<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IntangibleAssetsNetExcludingGoodwillAbstract', window );"><strong>Intangible Assets, Net (Excluding Goodwill) [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IntangibleAssetsDisclosureTextBlock', window );">Intangible assets and liabilities other than goodwill</a></td>
<td class="text">Intangible Assets and Liabilities Other Than Goodwill<div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">During the years ended December&#160;31, 2024 and 2023, we did not capitalize any cost incurred for product certification costs, patent-related costs or trademarks.  Also included in intangible assets are legal costs incurred by us to obtain patents for our intellectual property.  These patents, once they are placed in service, are amortized on a straight-line basis over the estimated economic life of the associated product, which ranges from approximately 7-10 years.  </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Intangible assets and liabilities at December&#160;31, 2024 and 2023 consist of the following:</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span><br/></span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:center;text-indent:36pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:501.00pt"><tr><td style="width:1.0pt"></td><td style="width:132.25pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:1.75pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:51.25pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:1.75pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:63.25pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:1.75pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:51.25pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:1.75pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:51.25pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:1.75pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:63.25pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:1.75pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:52.00pt"></td><td style="width:1.0pt"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="15" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2024</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="15" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2023</span></td></tr><tr style="height:23pt"><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Intangible assets</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Cost</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Accumulated Amortization</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Net</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Cost</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Accumulated Amortization</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Net</span></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;border-top:2pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Product certifications</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">777,465&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(709,855)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">67,610&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">777,465&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(658,676)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">118,789&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Patents</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">888,910&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(584,493)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">304,417&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">888,910&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(496,807)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">392,103&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Developed technology</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">240,000&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(188,000)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">52,000&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">240,000&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(172,000)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">68,000&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Trademarks</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">26,896&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">26,896&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">26,896&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">26,896&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">In process R&amp;D</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">263,936&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(141,394)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">122,542&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">263,936&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(103,689)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">160,247&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Favorable contract assets</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">384,465&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(379,839)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4,626&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">384,465&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(376,139)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">8,326&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Customer contract</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,225,123&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(290,025)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,935,098&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,772,659&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(110,791)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,661,868&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4,806,795&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(2,293,606)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,513,189&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4,354,331&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(1,918,102)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,436,229&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Intangible liability</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;border-top:2pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Unfavorable contract liability</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,618,168&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(2,195,329)</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">422,839&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,618,168&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(2,019,122)</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">599,046&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The aggregate amortization expense related to non-contract related intangible assets was $192,571 and $222,884 during the years ended December&#160;31, 2024 and 2023, respectively. The net aggregate expense (credit) related to the amortization of the contract related intangible assets and liabilities for the years ended December&#160;31, 2024 and 2023 was $6,727 and $(110,031), respectively.  </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Contract Asset and Liability</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The favorable contract asset and unfavorable contract liability in the foregoing table represent the fair value of ADGE's customer contracts (both positive for favorable contracts and negative for unfavorable contracts) which were acquired by us on May 18, 2017 (see Note 4. "Acquisition of American DG Energy Inc."). The customer contract asset includes the maintenance services contracts acquired by us on April 1, 2023 as part of the Aegis acquisition and pursuant to the February 2024 Amendment and the May 2024 Amendment.  (See Note 5. "Aegis Contract and Related Asset Acquisition". </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Amortization of intangibles including contract related amounts is calculated using the straight line method over the remaining useful life or contract term, which range from approximately <span style="-sec-ix-hidden:f-585">one</span> to eleven years, and is charged against cost of sales in the accompanying consolidated statement of operations. Aggregate future amortization over the next five years is estimated to be as follows:</span></div><div style="margin-bottom:6pt;margin-top:5pt;text-align:center;text-indent:36pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:404.25pt"><tr><td style="width:1.0pt"></td><td style="width:193.75pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:3.25pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:63.25pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:1.75pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:63.25pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:1.75pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:63.25pt"></td><td style="width:1.0pt"></td></tr><tr style="height:33pt"><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Non-contract related intangibles</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Contract related intangibles</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Total</span></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2025</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">169,754&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">79,042&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">248,796&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2026</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">168,244&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">124,483&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">292,727&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2027</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">167,936&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">131,199&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">299,135&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2028</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">23,278&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">137,208&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">160,486&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2029</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">5,786&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">137,208&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">142,994&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Thereafter</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">11,571&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">907,745&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">919,316&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="background-color:#cceeff;border-bottom:3pt double #000000;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">546,569&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,516,885&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,063,454&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IntangibleAssetsDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for all or part of the information related to intangible assets.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/350-30/tableOfContent<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-4<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-3<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 985<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481283/985-20-50-2<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 985<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/985-20/tableOfContent<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IntangibleAssetsDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IntangibleAssetsNetExcludingGoodwillAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IntangibleAssetsNetExcludingGoodwillAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>29
<FILENAME>R17.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Property, plant and equipment<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentAbstract', window );"><strong>Property, Plant and Equipment [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock', window );">Property, plant and equipment</a></td>
<td class="text">Property, Plant and Equipment, net<div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Property, plant and equipment at December&#160;31, 2024 and 2023 consisted of the following:</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:center;text-indent:36pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:83.918%"><tr><td style="width:1.0%"></td><td style="width:50.293%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.450%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.671%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:14.056%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.671%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:14.059%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Estimated&#160;Useful<br/>Life&#160;(in&#160;Years)</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Energy systems</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">10 - 15 years</span></div></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,810,232&#160;</span></td><td style="border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,810,232&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Machinery and equipment</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">5 - 7 years</span></div></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,598,538&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,744,596&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Furniture and fixtures</span></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">5 years</span></div></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">224,868&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">212,963&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Computer software</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3 - 5 years</span></div></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">192,865&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">192,865&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Leasehold improvements</span></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">*</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">906,739&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">466,789&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">5,733,242&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">5,427,445&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Less - accumulated depreciation and amortization</span></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(3,995,206)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(4,264,868)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Net property, plant and equipment</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,738,036&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,162,577&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><div style="margin-bottom:6pt;margin-top:6pt;text-indent:72pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">* Lesser of estimated useful life of asset or lease term</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Depreciation and amortization expense on property and equipment for the years ended December&#160;31, 2024 and 2023 was $354,485 and $454,859, respectively. During the year ended December&#160;31, 2024, we received proceeds of $51,400 from the disposition of certain assets realizing a gain of $12,181. During the year ended December&#160;31, 2023, we received proceeds of $34,655 from the disposition of certain assets and reversed $8,687 of accrued decomissioning costs from a former ADGE energy site, realizing a gain of $36,207. </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">During the years December&#160;31, 2024 and 2023, we evaluated the ADGE customer contracts and and related assets and did not deem any assets to be impaired.</span></div>During the year ended December&#160;31, 2024 and 2023 there were no ADGE contract terminations.<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 360<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/360/tableOfContent<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -SubTopic 360<br> -Topic 958<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477798/958-360-50-6<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)<br> -SubTopic 360<br> -Topic 958<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477798/958-360-50-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -SubTopic 360<br> -Topic 958<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477798/958-360-50-7<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>30
<FILENAME>R18.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Goodwill (Notes)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract', window );"><strong>Goodwill and Intangible Assets Disclosure [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GoodwillDisclosureTextBlock', window );">Goodwill</a></td>
<td class="text">Goodwill<div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Changes in the carrying amount of goodwill by reportable segment during the years ended December&#160;31, 2024 and 2023  was as follows:</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:center;text-indent:36pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:442.50pt"><tr><td style="width:1.0pt"></td><td style="width:148.00pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:67.75pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:1.75pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:67.75pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:4.75pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:67.75pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:1.00pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:67.75pt"></td><td style="width:1.0pt"></td></tr><tr style="height:24pt"><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Products</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Services</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Energy Production</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Total</span></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Balance at December 31, 2022</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">40,870&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,365,286&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,406,156&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Impairment</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Acquisition</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">337,268&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">337,268&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Balance at December 31, 2023</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">40,870&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">337,268&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,365,286&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,743,424&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Impairment</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(217,295)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(217,295)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Acquisition - adjustment</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(179,563)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(179,563)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Balance at December 31, 2024</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">40,870&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">157,705&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,147,991&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,346,566&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We performed a goodwill impairment test of the Energy Production goodwill at December&#160;31, 2024 and determined that the carrying value of the assets exceeded estimated fair value of the of the assets, based on a discounted cash flow analysis, and recorded a goodwill impairment for the year ended December&#160;31, 2024. We performed a goodwill impairment test of the Services goodwill and determined that the estimated fair value of the assets, based on a discounted cash flow analysis, exceeded the carrying value of the assets, therefore no impairment existed for the year ended December&#160;31, 2024. </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">See Note 6. "Sale of Energy Producing Assets and Goodwill Impairment" and Note 5. "Aegis Contract and Related Asset Acquisition" for further discussion.</span></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GoodwillDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for goodwill.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482548/350-20-55-24<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-2<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/350-20/tableOfContent<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GoodwillDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>31
<FILENAME>R19.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Related Party Notes<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RelatedPartyTransactionsAbstract', window );"><strong>Related Party Transactions [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtDisclosureTextBlock', window );">Related Party Notes</a></td>
<td class="text">Related Party Notes  <div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On October 9, 2023, we entered into note subscription agreements with each of John N. Hatsopoulos and Earl R. Lewis, III, each a director and shareholder of the Company, pursuant to which Mr. Hatsopoulos agreed to provide financing to us of up to $1,000,000, and Mr. Lewis agreed to provide financing to us of $500,000, and potentially, an additional $500,000 at his discretion. On October 10, 2023, we borrowed $500,000 from Mr. Hatsopoulos and issued him a one-year promissory note with interest accruing at 5.12% per annum. On July 23, 2024, we borrowed an additional $500,000 from Mr. Hatsopoulos, and issued a one-year promissory note with interest accruing at 5.06% per annum.  On March 21, 2024, John H. Hatsopoulos amended the terms of the promissory note, dated October 10, 2023, extending the maturity date by one year, making the maturity date October 10, 2025. On September 18, 2024, we borrowed $500,000 from Mr. Lewis and issued him a one-year promissory note with interest accruing at 4.57% per annum. </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On January 14, 2025 we agreed to permit Mr. Lewis to either receive repayment of his note in cash or, at his discretion, convert the balance of the promissory note into shares of our common stock.  In the event of such a conversion, the number of shares of we will be required to issue will be determined by dividing the balance due under the promissory note by the average closing price per share of our shares during the thirty-day period prior to the date of conversion.  </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On February 18, 2025 we amended the promissory notes with Mr. Hatsopoulos to extend the maturity dates for both promissory notes to July 31, 2026.  We also agreed to permit Mr. Hatsopoulos to either receive repayment of his notes in cash, or at his discretion, convert the balance(s) due of one or both of the promissory notes into shares of our common stock. In the event of such a conversion, the number of shares we will be required to issue will be determined by dividing the balance(s) due under the promissory note(s) by the average closing price per share of our shares during the thirty-day period prior to the date of conversion. </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The loans are required to be repaid in the event of a change of control of the company and upon the occurrence of an event of default under the note, including upon a failure to pay when due the principal and interest when due, or the commencement of voluntary or involuntary bankruptcy or insolvency proceeding.</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">  </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The loans and terms of the loan agreements were unanimously approved by our board of directors.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The loans bear interest on the outstanding principal at the Internal Revenue Service&#8217;s Applicable Federal Rate to be determined at the time we issue a promissory note in connection with a loan drawdown. The notes may be prepaid by us at any time. The principal amount of each loan and accrued interest is subject to mandatory prepayment in the event of a change of control of the registrant. The promissory notes are subject to customary events of default and are transferable provided the conditions to transfer set forth in the promissory notes are satisfied by the noteholder. The proceeds of the loans are expected to be used for general working capital purposes. </span></div>At December&#160;31, 2024 our obligation to Mr. Hatsopoulos under the promissory notes, inclusive of $42,398 of accrued and unpaid interest, was $1,042,398. At December&#160;31, 2024 our obligation to Mr. Lewis under the promissory note, inclusive of $6,474 of accrued and unpaid interest, was $506,474.<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DebtDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481544/470-10-50-6<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481544/470-10-50-6<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 405<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477092/405-40-50-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 405<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477092/405-40-50-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 405<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477092/405-40-50-1<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 405<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477092/405-40-50-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 405<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477092/405-40-50-1<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1B<br> -Subparagraph (h)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481139/470-20-50-1B<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(c))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 10: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 470<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/470/tableOfContent<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 835<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482925/835-30-45-2<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1B<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481139/470-20-50-1B<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1B<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481139/470-20-50-1B<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1B<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481139/470-20-50-1B<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1C<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481139/470-20-50-1C<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1C<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481139/470-20-50-1C<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1C<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481139/470-20-50-1C<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1E<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481139/470-20-50-1E<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1I<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481139/470-20-50-1I<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1I<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481139/470-20-50-1I<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1I<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481139/470-20-50-1I<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RelatedPartyTransactionsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RelatedPartyTransactionsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>32
<FILENAME>R20.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Commitments and contingencies<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommitmentsAndContingenciesDisclosureAbstract', window );"><strong>Commitments and Contingencies Disclosure [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommitmentsContingenciesAndGuaranteesTextBlock', window );">Commitments and contingencies</a></td>
<td class="text">Commitments and Contingencies<div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Operating Lease Obligations</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We lease office space and warehouse facilities under various lease agreements which expire through January 2031. Total rent expense for the years ended December&#160;31, 2024 and 2023 amounted to $796,400 and $812,815, respectively. See Note 14. "Leases" for further discussion.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Finance Lease Obligations</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We lease motor vehicles under a master vehicle lease agreement, effective December 19, 2023, which expire through December 2028. See Note 14. "Leases" for further discussion.  </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Legal Matters</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On November 23, 2022, we were served with a suit filed against us on August 24, 2022 in the Ontario Superior Court of Justice by The Corporation of the Town of Milton, Milton Energy Generation Solutions Inc. and Milton Hydro Distribution Inc (the "Plaintiffs"), all of whom are municipal corporations incorporated in the Province of Ontario. The plaintiffs sued for damages in the amount of CDN $1,000,000, prejudgment and post-judgment interest, and legal fees, alleging breach of contract, breach of warranty, negligent misrepresentations and nuisance. Plaintiffs allege that on or about July 10, 2022, a Tecogen cogenerator installed by us at the plaintiffs' facility caught fire, causing damage to the cogenerator and the plaintiff's facility. We filed a response denying liability and are represented by Canadian counsel. For the year ended December 31, 2022, we reserved $150,000 for anticipated damages which may not be covered by our insurance and continued to maintain the reserve at December&#160;31, 2024. On January 13, 2025, Tecogen and our insurers entered into a Settlement Agreement and Full and Final Release from any and all claims, obligations and liabilities, arising from the July 10, 2022 fire with the plaintiffs in the amount of CDN $400,000, of which we were responsible for CDN $100,000. On February 7, 2025 we remitted CDN $100,000, or $70,994, representing payment in full of our liability with respect to this matter.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Guarantees</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In connection with the sale of energy producing assets, we made certain guarantees to the purchaser as discussed in Note 5. "Sale of Energy Producing Assets and Goodwill Impairment." Based upon an analysis of these energy producing assets expected future performance, as of December&#160;31, 2024 we do not expect to make any material payments under the guarantee. </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Change in Control Severance Benefit Plan</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On July 9, 2020, our compensation committee of the board of directors adopted the Tecogen Inc. Change in Control Severance Benefit Plan ("Plan"). The Plan provides for up to 12 months of severance benefits for certain of our key management employees who are selected as plan participants by the plan administrator and who have executed a Change in Control Severance Benefit Plan Participation Notice. On July 9, 2020, Robert A. Panora, our President and Chief Operating Officer, and John K. Whiting, IV, our General Counsel and Secretary, were each designated as participants in the Plan.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Under the Plan, upon the occurrence of certain termination events following a change in control of the Company, the executive participants would receive cash severance payments equal to 12 months&#8217; salary and bonus payments, continuation of certain health benefits, the acceleration of bonus awards, and immediate vesting of outstanding unvested options (including performance options) to acquire our common stock. The severance payments are required to be paid in a single lump sum. The Plan has a term of three years and will automatically extend for successive additional one-year terms unless we provide written notice at least six months in advance of a then current term. </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">An executive will be entitled to severance under the Plan only if there has been a &#8220;Change in Control&#8221; of the Company and the termination of employment or service occurs during the period that is three months prior to and 18 months following a change in control of the Company, and the termination of participant's employment or service with the Company without "Cause," or by participant for &#8220;Good Reason&#8221; as those terms are defined in the Plan. In order to be eligible to receive severance benefits under the Plan, an executive must comply with the terms of the Plan, including the release of claims in favor of the Company and certain confidentiality, non-compete, non-solicitation, and non-disparagement covenants during and following termination of employment. The Plan will be administered by the compensation committee of the board of directors (or by the full board of directors or such other committee as the board may designate).</span></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommitmentsAndContingenciesDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommitmentsAndContingenciesDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommitmentsContingenciesAndGuaranteesTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for commitments, contingencies, and guarantees.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 450<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/450/tableOfContent<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 440<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/440/tableOfContent<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 460<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/460/tableOfContent<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommitmentsContingenciesAndGuaranteesTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>33
<FILENAME>R21.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Product warranty<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GuaranteesAbstract', window );"><strong>Guarantees [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ProductWarrantyDisclosureTextBlock', window );">Product warranty</a></td>
<td class="text">Product Warranty<div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We reserve an estimate of our exposure to warranty claims based on both current and historical product sales data and warranty costs incurred.  The majority of our products are sold with a one-year warranty.  We assess the adequacy of our recorded warranty liability periodically and adjust the reserve as necessary.  The warranty liability is included in accrued expenses on the accompanying consolidated balance sheets.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Changes in our warranty reserve were as follows:</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:center;text-indent:36pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:52.339%"><tr><td style="width:1.0%"></td><td style="width:74.598%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:23.202%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Warranty reserve, December 31, 2022</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">137,800&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Warranty provision for units sold</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">286,391&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Costs of warranty incurred</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(282,191)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Warranty reserve, December 31, 2023</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">142,000&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Warranty provision for units sold</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">257,898&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Costs of warranty incurred</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(276,898)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Warranty reserve, December 31, 2024</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">123,000&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GuaranteesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GuaranteesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ProductWarrantyDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for standard and extended product warranties and other product guarantee contracts, including a tabular reconciliation of the changes in the guarantor's aggregate product warranty liability for the reporting period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 460<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)(4)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482425/460-10-50-4<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 460<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)(5)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482425/460-10-50-4<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 460<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482425/460-10-50-4<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 460<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482425/460-10-50-4<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 460<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482425/460-10-50-4<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 460<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482425/460-10-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ProductWarrantyDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>34
<FILENAME>R22.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Leases<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccountingPoliciesAbstract', window );"><strong>Accounting Policies [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeasesTextBlock', window );">Leases</a></td>
<td class="text">Leases<div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our leases principally consist of operating leases related to our corporate office, field offices, and our research, manufacturing, and storage facilities. Effective December 19, 2023, we entered into a master finance lease agreement for motor vehicles.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">At inception, we determine if an arrangement constitutes a lease and whether that lease meets the classification criteria of a finance or operating lease. Some of our lease agreements contain lease components (e.g. minimum rent payments) and non-lease components (e.g. maintenance, labor charges, etc.). We account for each component separately based on the estimated standalone price of each component. </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Operating Leases</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Operating leases are included in Right-of-use assets, Lease obligations, current and Long-term liabilities - Lease obligations, net of current portion, on the consolidated balance sheets. These assets and liabilities are recognized at the commencement date based on the present value of remaining lease payments over the lease term and using an incremental borrowing rate consistent with the lease terms or implicit rates, when readily determinable. For those leases where it is reasonably certain at the commencement date that we will exercise the option to extend the lease, then the lease term will include the lease extension term. Short-term operating leases, which have an initial term of 12 months or less, are not recorded on the balance sheet. </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On March 31, 2023, we entered into two lease agreements for two adjacent buildings, located in North Billerica, Massachusetts, containing approximately 26,412 square feet of manufacturing, storage and office space to serve as our headquarters and manufacturing facilities. The lease agreements provide for initial lease terms of five (5) years with two successive options to renew for additional terms of five (5) years. Both leases commenced on January 1, 2024 and require payment of the base rent, real estate taxes, common maintenance expenses and aggregate deposits of $38,200. Our costs for initial improvements required to the leased premises is estimated to range between $900,000 and $1,000,000. The estimated straight-line monthly rent expense for the initial term of the lease is approximately $26,962 per month. In accordance with ASC 842-20-30-1, we recorded the lease liability and right-of-use asset using the discount rate for the lease upon the lease commencement date, January 1, 2024. </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On January 1, 2024 we extended our lease for the 2,800 square foot Valley Stream, NY service center for an additional three (3) years through December 31, 2026, with an option to renew for an additional term of three (3) years. The straight-line base monthly rent for the extension is $4,560 per month. On February 1, 2024 we entered into a lease agreement for 2,063 square feet of office and storage space in East Syracuse, New York for an initial lease term of three (3) years, expiring on January 31, 2027, with an option for an additional lease term of two (2) years. The straight-line base monthly rent for the initial lease term is $1,891 per month. On June 17, 2024, we extended our lease for 1,751 square foot Hayward, CA service center for an additional three (3) years through July 31, 2027. The straight-line monthly rent for the extension is $3,662 per month. On January 15, 2025 we entered into a lease agreement for 2,969 square feet of office and storage space in Easton, MA for an initial term of five (5) years, expiring on January 31, 2030, with an option for an additional lease term of five (5) years. The straight-line base monthly rent for the initial lease term is $2,324 per month.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Lease expense for operating leases, which principally consists of fixed payments for base rent, is recognized on a straight-line basis over the lease term. Operating lease expense for the years ended December&#160;31, 2024 and 2023 was $796,400 and $812,815,  respectively. </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Supplemental information related to operating leases for the years ended December&#160;31, 2024 and 2023 was as follows:</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:center;text-indent:36pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:486.00pt"><tr><td style="width:1.0pt"></td><td style="width:298.00pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:1.00pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:88.00pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:1.00pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:88.00pt"></td><td style="width:1.0pt"></td></tr><tr style="height:15pt"><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2024</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2023</span></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Cash paid for amounts included in the measurement of operating lease liabilities</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">727,418&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">743,849&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Right-of-use assets obtained in exchange for operating lease liabilities</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,650,994&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">148,093&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Weighted-average remaining lease term - operating leases</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4.1 Years</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4.6 Years</span></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Weighted-average discount rate - operating leases</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">7.5&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">6.4&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr></table></div><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Finance Leases</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Finance leases are included in Right-of-use assets, Lease obligations, current and Long-term liabilities - Lease obligations, net of current portion, on the condensed consolidated balance sheets. These assets and liabilities are recognized at the commencement date based on the present value of remaining lease payments over the lease term and using an incremental borrowing rate consistent with the lease terms or implicit rates, when readily determinable. For those leases where it is reasonably certain at the commencement date that we will exercise the option to extend the lease, then the lease term will include the lease extension term. Short-term operating leases, which have an initial term of 12 months or less, are not recorded on the balance sheet. </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Lease expense for finance leases, consisting of fixed payments for base rent and initial costs for the year ended December&#160;31, 2024 and 2023 was $119,690 and $2,338, respectively. Depreciation and amortization expense on right-of-use finance lease assets for the years ended December&#160;31, 2024 and 2023 was $61,572 and $0, respectively.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Supplemental information for finance leases for the year ended December&#160;31, 2024 and 2023 was as follows:</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:center;text-indent:36pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:94.736%"><tr><td style="width:1.0%"></td><td style="width:60.628%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.417%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:17.418%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.417%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:17.420%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2024</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2023</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Cash paid for amounts included in the measurement of finance lease liabilities</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">88,845&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="6" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Right-of-use assets obtained in exchange for finance lease liabilities</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">295,085&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">200,187&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="6" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Weighted-average remaining lease term - finance leases</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4.3 years</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">5.0 years</span></td></tr><tr><td colspan="6" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Weighted-average discount rate - finance leases</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">10.0&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">10.4&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr></table></div><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Supplemental balance sheet information related to operating leases for the years ended December&#160;31, 2024 and 2023 was as follows:</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:center;text-indent:36pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:94.736%"><tr><td style="width:1.0%"></td><td style="width:60.628%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.417%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:17.418%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.417%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:17.420%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2024</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2023</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Operating leases</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Right-of-use assets</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,730,358&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">743,096&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Operating lease liability, current</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">430,382&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">248,933&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Operating lease liability, long-term</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,341,789&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">523,660&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total operating lease liability</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,772,171&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">772,593&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><div style="margin-bottom:6pt;margin-top:6pt;padding-left:13.5pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Supplemental balance sheet information related to finance leases for the year ended December&#160;31, 2024 and 2023 is as follows:</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:94.736%"><tr><td style="width:1.0%"></td><td style="width:60.628%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.417%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:17.418%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.417%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:17.420%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2024</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2023</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Finance leases</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Right-of-use assets - motor vehicles</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">425,563&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">200,187&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Right-of-use asset - boiler</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">26,827&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt 0 7pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">452,390&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">200,187&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;padding:0 1pt 0 7pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Finance lease liability, current</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">85,646&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">40,540&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Finance lease liability, long-term</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">325,235&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">159,647&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total finance lease liability</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">410,881&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">200,187&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Future minimum lease commitments under non-cancellable operating and finance leases as of December&#160;31, 2024 were as follows:</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:center;text-indent:36pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:429.00pt"><tr><td style="width:1.0pt"></td><td style="width:148.00pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:1.00pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:88.00pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:1.00pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:88.00pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:1.00pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:88.00pt"></td><td style="width:1.0pt"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Operating Leases</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Finance Leases</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Total</span></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2025</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">542,066&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">122,460&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">664,526&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2026</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">538,297&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">113,845&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">652,142&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2027</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">442,471&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">113,845&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">556,316&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2028</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">395,827&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">113,845&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">509,672&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2029</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">55,435&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">43,669&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">99,104&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Thereafter</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">61,569&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">61,569&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total lease payments</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,035,665&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">507,664&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,543,329&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Less: imputed interest</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">263,494&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">96,783&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">360,277&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,772,171&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">410,881&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,183,052&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccountingPoliciesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccountingPoliciesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeasesTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/842-20/tableOfContent<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeasesTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>35
<FILENAME>R23.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Stockholders' equity<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EquityAbstract', window );"><strong>Equity [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareholdersEquityAndShareBasedPaymentsTextBlock', window );">Stockholders' equity</a></td>
<td class="text">Stockholders&#8217; Equity<div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Common Stock</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The holders of our Common Stock have the right to vote their interest on a per share basis.  At December&#160;31, 2024 and 2023, there were 24,950,261 and 24,850,261 shares, respectively, of our Common Stock outstanding.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Preferred Stock</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On February 13, 2013, we authorized 10 million shares of preferred stock.  As of December&#160;31, 2024, no preferred shares were issued or outstanding.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Stock-Based Compensation</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We adopted the 2006 Stock Option and Incentive Plan (as amended, the &#8220;2006 Plan&#8221;), under which the board of directors may grant incentive or non-qualified stock options and stock grants to key employees, directors, advisors and our consultants. The 2006 Plan was amended at various dates by the Board of Directors to increase the reserved shares of common stock issuable under the 2006 Plan to 3,838,750 as of December&#160;31, 2024, and in June 2017 stockholders approved an amendment to extend the termination date of the 2006 Plan to January 1, 2026 and to ratify all of our option grants issued after January 1, 2016 (the &#8220;Amended Plan&#8221;). </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Stock options vest based upon the terms within the individual option grants, with an acceleration of the unvested portion of such options upon a change in control event, as defined in the 2006 Plan.  The options are not transferable except by will or domestic relations order.  The option price per share under the Amended Plan cannot be less than the fair market value of the underlying shares on the date of the grant.  The number of shares remaining available for future issuance under the Amended Plan as of December&#160;31, 2024 and 2023 was 1,108,168 and 243,818, respectively.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">During the years ended December&#160;31, 2024 and 2023, there were no options granted under the 2006 Plan.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We adopted the 2022 Stock Incentive Plan (the "2022 Plan") on March 1, 2022, under which the Board of Directors may grant incentive or non-qualified stock options and stock grants to key employees, directors, advisors and consultants. We have reserved 3,800,000 shares of our common stock for issuance pursuant to awards under the 2022 Plan. The adoption of the 2022 Plan was approved by our shareholders on June 9, 2022. The 2022 Plan expires ten years from its effective date or March 1, 2032.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Under the 2022 Plan, stock options vest based upon the terms within the individual option grants, with an acceleration of the unvested portion of such options upon a change in control event, as defined in the 2022 Plan.  The options are not transferable except by will or domestic relations order.  The option price per share under the 2022 Plan cannot be less than the fair market value of the underlying shares on the date of the grant. </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">During the year ended December&#160;31, 2024, we granted nonqualified options to purchase an aggregate of 125,000 shares of common stock at $0.77 per share to directors. These options have a vesting schedule of <span style="-sec-ix-hidden:f-831">P4Y years</span> and expire in ten years. The fair value of the options issued in 2024 was $44,750. The weighted-average grant date fair value of stock options granted during 2024 was $0.36 per share.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">During the year ended December&#160;31, 2023, we granted nonqualified options under the 2022 Plan to purchase an aggregate of 575,000 shares of common stock at prices between $0.88 per share and $1.10 per share to certain directors, officers and employees. These options have a vesting schedule of <span style="-sec-ix-hidden:f-838">two</span> to four years and expire in ten years. The fair value of the options issued in 2024 was $244,625. The weighted-average grant date fair value of stock options granted during 2024 was </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$0.43 per share. </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The number of shares remaining available for future issuance under the 2022 Plan as of December&#160;31, 2024 was 2,950,000.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">During the year December&#160;31, 2024, one option for 100,000 shares of common stock was exercised. During the year ended December&#160;31, 2023, there were no options exercised.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Stock option activity for the year ended December&#160;31, 2024 was as follows:</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:center"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:96.491%"><tr><td style="width:1.0%"></td><td style="width:35.415%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:9.960%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.557%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:6.172%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:2.224%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:6.930%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.557%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:8.445%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.557%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:9.960%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.557%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:9.966%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Common&#160;Stock&#160;Options</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Number&#160;of<br/>Options</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="9" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Exercise<br/>Price<br/>Per<br/>Share</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Weighted<br/>Average<br/>Exercise<br/>Price</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Weighted<br/>Average<br/>Remaining<br/>Life</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Aggregate<br/>Intrinsic<br/>Value</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Outstanding, December 31, 2023</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3,638,122&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">0.71&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">10.33&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1.49&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">6.70 years</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">127,811&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Granted</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">125,000&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="9" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$0.77</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">0.77&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Exercised</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(100,000)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="9" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$0.71</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">0.71&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">75,500&#160;</span></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Canceled and forfeited</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(910,160)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">0.71&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">10.33&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2.54&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Outstanding, December 31, 2024</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,752,962&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">0.71&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3.93&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1.14&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">6.70 years</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,348,684&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Exercisable, December 31, 2024</span></td><td colspan="2" style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,839,212&#160;</span></td><td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1.25&#160;</span></td><td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">838,184&#160;</span></td><td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Vested and expected to vest, December 31, 2024</span></td><td colspan="2" style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,615,900&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1.15&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,272,109&#160;</span></td><td style="border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We used a forfeiture rate of 15% to calculate the expected to vest shares in the table above.  We use the Black-Scholes option pricing model to determine the fair value of stock options granted.  Use of a valuation model requires management to make certain assumptions with respect to selected model inputs.  Expected volatility was calculated based on the average volatility of four comparable publicly traded companies.  The average expected life was estimated using the simplified method to determine the expected life based on the vesting period and contractual terms, since we do not have the necessary historical exercise data to determine an expected life for stock options. We use a single weighted-average expected life to value option awards and recognize compensation on a straight-line basis over the requisite service period for each separately vesting portion of the awards.  The risk-free interest rate is based on U.S. Treasury zero-coupon issues with a remaining term which approximates the expected life assumed at the date of grant. </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The weighted average assumptions used in the Black-Scholes option pricing model for options granted in 2024 and 2023 are as follows:</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:center;text-indent:36pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:59.795%"><tr><td style="width:1.0%"></td><td style="width:47.555%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:1.022%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:23.349%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:1.022%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:23.352%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Stock option award assumptions:</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Expected dividend yield</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Expected life</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">6.25 years</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">6.25 years</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Risk-free interest rate</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4.28%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4.70%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Expected volatility</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">40.17%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">38.49%</span></td></tr></table></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">During the years ended December&#160;31, 2024 and 2023, we recognized stock-based compensation expense of $172,987 and $250,394, respectively, related to the issuance of stock options.  No tax benefit was recognized related to the stock-based compensation expense recorded during either of the years.  At December&#160;31, 2024 and 2023, the total compensation cost related to unvested stock option awards not yet recognized is $278,461  and $451,298, respectively.  The unvested stock compensation at December&#160;31, 2024 will be recognized over a weighted average period of 2.30 years.</span></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EquityAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EquityAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareholdersEquityAndShareBasedPaymentsTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for shareholders' equity and share-based payment arrangement. Includes, but is not limited to, disclosure of policy and terms of share-based payment arrangement, deferred compensation arrangement, and employee stock purchase plan (ESPP).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 505<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/505/tableOfContent<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 718<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/718/tableOfContent<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareholdersEquityAndShareBasedPaymentsTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>36
<FILENAME>R24.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Fair Value Measurements (Notes)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueDisclosuresAbstract', window );"><strong>Fair Value Disclosures [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueDisclosuresTextBlock', window );">Fair Value Measurements</a></td>
<td class="text">Fair Value Measurements<div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The fair value topic of the FASB Accounting Standards Codification defines fair value as the exchange price that would be received for an asset or paid to transfer a liability (an exit price) in the principal or most advantageous market for the asset or liability in an orderly transaction between market participants on the measurement date. The accounting guidance also establishes a fair value hierarchy which requires an entity to maximize the use of observable inputs, where available, and minimize the use of unobservable inputs when measuring fair value. There are three levels of inputs that may be used to measure fair value:</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Level 1 - Unadjusted quoted prices in active markets for identical assets or liabilities. We currently do not have any Level 1 financial assets or liabilities.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#160;Level 2 - Observable inputs other than quoted prices included in Level 1. Level 2 inputs include quoted prices for identical assets or liabilities in non-active markets, quoted prices for similar assets or liabilities in active markets and inputs other than quoted prices that are observable for substantially the full term of the asset or liability. </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Level 3 - Unobservable inputs reflecting management&#8217;s own assumptions about the input used in pricing the asset or liability. </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table presents the asset reported in the consolidated balance sheet measured at its fair value on a recurring basis as of December&#160;31, 2024 and 2023 by level within the fair value hierarchy:</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:center;text-indent:36pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:503.25pt"><tr><td style="width:1.0pt"></td><td style="width:160.75pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:63.25pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:1.75pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:61.00pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:1.75pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:63.25pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:1.75pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:63.25pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:3.25pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:63.25pt"></td><td style="width:1.0pt"></td></tr><tr style="height:44pt"><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Quoted prices in active markets for identical assets</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Significant other observable inputs</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Significant unobservable inputs</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td></tr><tr style="height:21pt"><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Total</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Level 1</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Level 2</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Level 3</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Unrealized gain (loss)</span></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%;text-decoration:underline">December 31, 2024</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Recurring fair value measurements</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;&#160;&#160;&#160;&#160;Available-for-sale equity securities</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;EuroSite Power Inc.</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">93,744&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">93,744&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:23pt"><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total recurring fair value measurements</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">93,744&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">93,744&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%;text-decoration:underline">December 31, 2023</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Recurring fair value measurements</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;&#160;&#160;&#160;&#160;Available-for-sale equity securities</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;EuroSite Power Inc.</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">93,744&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">93,744&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:23pt"><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total recurring fair value measurements</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">93,744&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">93,744&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We utilize a Level 2 category fair value measurement to value our investment in EuroSite Power Inc. as an available-for-sale security at period end. That measurement is equal to the quoted market closing price at period end. Since this security is not actively traded we are classifying as Level 2. </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes changes in Level 2 assets which are comprised of marketable equity securities for the years ended December&#160;31, 2024 and 2023:</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span><br/></span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:center;text-indent:36pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:63.011%"><tr><td style="width:1.0%"></td><td style="width:66.881%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:30.919%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Fair value at December 31, 2022</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">93,744&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Unrealized gain</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Fair value at December 31, 2023</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">93,744&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Fair value at December 31, 2023</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">93,744&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Unrealized gain</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Fair value at December 31, 2024</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">93,744&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table presents the liability reported in the consolidated balance sheet measured at its fair value on a recurring basis as of December&#160;31, 2024 and 2023 by level within the fair value hierarchy:</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:center;text-indent:36pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:92.982%"><tr><td style="width:1.0%"></td><td style="width:27.988%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.579%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.428%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.579%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.428%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.579%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.428%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.579%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.428%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.584%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Quoted prices in active markets for identical assets</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Significant other observable inputs</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Significant unobservable inputs</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Level 1</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Level 2</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Level 3</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total gains (losses)</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%;text-decoration:underline">December 31, 2024</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Recurring fair value measurements</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Contingent contract consideration</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Current</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">328,350&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">328,350&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Long-term</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,008,760&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,008,760&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total recurring fair value measurements</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,337,110&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,337,110&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:12pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%;text-decoration:underline">December 31, 2023</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Recurring fair value measurements</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Contingent contract consideration</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Current</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">200,639&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">200,639&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Long-term</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">994,743&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">994,743&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total recurring fair value measurements</span></td><td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,195,382&#160;</span></td><td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,195,382&#160;</span></td><td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We utilize a Level 3 category fair value measurement to value the contingent consideration liability at period end since there are no quoted prices for this liabilities in non-active markets, there are no quoted prices for similar liabilities in active markets and there are no inputs that are observable for substantially the full term of the the liability. The contingent consideration calculation requires management to make estimates and assumptions that affect the reported amount of the liability.The contingent consideration is payable each calendar quarter through the earlier of the expiration or termination of the relevant maintenance agreements, or the seventh (7th) anniversary of the acquisition date. The consideration is equal to the product of the revenues collected in a calendar quarter multiplied by an applicable percentage. The agreement stipulates quarterly aggregate revenue targets and an applicable percentage, and provides for a higher applicable percentage if revenues exceed the target revenues. The applicable percentage ranges from 5% to 10% over the agreement term. On the date of acquisition, the fair value of the contingent consideration was calculated using a weighted average cost of capital of 15%, discounting the future cash flows to present value.</span></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FairValueDisclosuresAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FairValueDisclosuresAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FairValueDisclosuresTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for the fair value of financial instruments (as defined), including financial assets and financial liabilities (collectively, as defined), and the measurements of those instruments as well as disclosures related to the fair value of non-financial assets and liabilities. Such disclosures about the financial instruments, assets, and liabilities would include: (1) the fair value of the required items together with their carrying amounts (as appropriate); (2) for items for which it is not practicable to estimate fair value, disclosure would include: (a) information pertinent to estimating fair value (including, carrying amount, effective interest rate, and maturity, and (b) the reasons why it is not practicable to estimate fair value; (3) significant concentrations of credit risk including: (a) information about the activity, region, or economic characteristics identifying a concentration, (b) the maximum amount of loss the entity is exposed to based on the gross fair value of the related item, (c) policy for requiring collateral or other security and information as to accessing such collateral or security, and (d) the nature and brief description of such collateral or security; (4) quantitative information about market risks and how such risks are managed; (5) for items measured on both a recurring and nonrecurring basis information regarding the inputs used to develop the fair value measurement; and (6) for items presented in the financial statement for which fair value measurement is elected: (a) information necessary to understand the reasons for the election, (b) discussion of the effect of fair value changes on earnings, (c) a description of [similar groups] items for which the election is made and the relation thereof to the balance sheet, the aggregate carrying value of items included in the balance sheet that are not eligible for the election; (7) all other required (as defined) and desired information.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 107<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482078/820-10-55-107<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 100<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482078/820-10-55-100<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6A<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-6A<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2E<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2E<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6A<br> -Subparagraph (h)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-6A<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6A<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-6A<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6A<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-6A<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6A<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-6A<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 940<br> -SubTopic 820<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478119/940-820-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FairValueDisclosuresTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>37
<FILENAME>R25.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Retirement plans<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CompensationAndRetirementDisclosureAbstract', window );"><strong>Retirement Benefits [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CompensationAndEmployeeBenefitPlansTextBlock', window );">Retirement plans</a></td>
<td class="text">Retirement Plans<div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We have a defined contribution retirement plan (the &#8220;Plan&#8221;), which qualifies under Section 401(k) of the Internal Revenue Code (IRC). Under the Plan, employees meeting certain requirements may elect to contribute a percentage of their salary up to the maximum allowed by the IRC. We matched a variable amount based on participant contributions up to a maximum of 4.5% of each participant&#8217;s salary until May 2020 when we discontinued the matching of employee contributions for those employees not covered under a collective bargaining agreement. Effective July 1, 2023, we reinstituted the employer match based on participant contributions which are capped at a maximum of $250 per quarter and $1,000 per fiscal year, per participant. We contributed approximately $86,827 and $65,705 in matching contributions to the Plan in 2024 and 2023, respectively.</span></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CompensationAndEmployeeBenefitPlansTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for an entity's employee compensation and benefit plans, including, but not limited to, postemployment and postretirement benefit plans, defined benefit pension plans, defined contribution plans, non-qualified and supplemental benefit plans, deferred compensation, share-based compensation, life insurance, severance, health care, unemployment and other benefit plans.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 710<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/710/tableOfContent<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 712<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/712/tableOfContent<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 715<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/715/tableOfContent<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 718<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/718/tableOfContent<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CompensationAndEmployeeBenefitPlansTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CompensationAndRetirementDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CompensationAndRetirementDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>38
<FILENAME>R26.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Segments (Notes)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SegmentReportingAbstract', window );"><strong>Segment Reporting [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SegmentReportingDisclosureTextBlock', window );">Segments</a></td>
<td class="text">Segments<div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our Chief Executive Officer, who is our Chief Operating Decision Maker ("CODM") manages our business through three operating segments, consistent with how our CODM: (i) accessed operating performance on a periodic basis, (ii) makes resource allocation decisions and (iii) designates responsibilities of his direct reports. As of December&#160;31, 2024, we were organized into three operating segments through which senior management evaluates our business. These segments, as described in more detail in Note 1. "Nature of Business and Operations", are organized around the products, services and energy production provided to customers and represent our reportable segments. </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our CODM uses segment profit, based on operating income after the elimination of intercompany transactions and segment identifiable assets to assess segment operating performance and to make resource allocation decisions. Certain costs such as other income (expense) are not included in the measure of segment profit and are excluded from managements's assessment of segment financial performance.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Corporate includes finance, treasury, certain research and development costs, tax and legal costs and certain other costs which are not allocated to the reportable segments. </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table presents information by reportable segment for the years ended December&#160;31, 2024 and 2023:</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:center;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> </span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:534.00pt"><tr><td style="width:1.0pt"></td><td style="width:171.25pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:1.00pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:66.25pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:1.75pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:66.25pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:1.75pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:66.25pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:1.75pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:66.25pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:3.25pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:66.25pt"></td><td style="width:1.0pt"></td></tr><tr style="height:30pt"><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Products</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Services</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Energy Production</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Corporate</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Total</span></td></tr><tr style="height:12pt"><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year ended December 31, 2024</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Revenues</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4,443,996&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">16,074,870&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,100,670&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">22,619,536&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Cost of sales</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3,014,655&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">8,432,876&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,301,832&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">12,749,363&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Gross profit</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,429,341&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">7,641,994&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">798,838&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">9,870,173&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Operating expenses</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,947,426&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">6,625,965&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">319,514&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">5,511,355&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">14,404,260&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Loss (profit) from operations</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(518,085)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,016,029&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">479,324&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(5,511,355)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(4,534,087)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Identifiable assets</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">9,487,422&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">11,695,370&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,855,386&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">7,054,081&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">31,092,259&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year ended December 31, 2023</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Revenues</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">8,859,946&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">14,523,054&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,756,419&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">25,139,419&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Cost of sales</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">5,923,096&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">7,909,202&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,105,503&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">14,937,801&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Gross profit</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,936,850&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">6,613,852&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">650,916&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">10,201,618&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Operating expenses</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,429,400&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">6,992,221&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">66,190&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">6,127,419&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">14,615,230&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Loss (profit) from operations</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,507,450&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(378,369)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">584,726&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(6,127,419)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(4,413,612)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Identifiable assets</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">8,990,275&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">12,802,651&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3,269,013&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,730,690&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">27,792,629&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SegmentReportingAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SegmentReportingAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SegmentReportingDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for reporting segments including data and tables. Reportable segments include those that meet any of the following quantitative thresholds a) it's reported revenue, including sales to external customers and intersegment sales or transfers is 10 percent or more of the combined revenue, internal and external, of all operating segments b) the absolute amount of its reported profit or loss is 10 percent or more of the greater, in absolute amount of 1) the combined reported profit of all operating segments that did not report a loss or 2) the combined reported loss of all operating segments that did report a loss c) its assets are 10 percent or more of the combined assets of all operating segments.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 48<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-48<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 6: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 54<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-54<br><br>Reference 7: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 47<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-47<br><br>Reference 8: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 54<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-54<br><br>Reference 9: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 47<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-47<br><br>Reference 10: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 54<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-54<br><br>Reference 11: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 47<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-47<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 31<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-31<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 34<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-34<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 26C<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-26C<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 26B<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-26B<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 15<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-15<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 42<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-42<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 40<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-40<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/280/tableOfContent<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 26<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-26<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 41<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-41<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 21<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-21<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 21<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-21<br><br>Reference 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SegmentReportingDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>39
<FILENAME>R27.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Income taxes<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxDisclosureAbstract', window );"><strong>Income Tax Disclosure [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxDisclosureTextBlock', window );">Income taxes</a></td>
<td class="text">Income Taxes<div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">A reconciliation of the federal statutory income tax provision to our actual provision for the years ended December&#160;31, 2024 and 2023 is as follows:</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:center;text-indent:36pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:81.286%"><tr><td style="width:1.0%"></td><td style="width:5.914%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:58.792%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.699%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:14.547%"></td><td style="width:0.1%"></td><td colspan="3" style="display:none"></td><td style="width:0.1%"></td><td style="width:0.699%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:14.549%"></td><td style="width:0.1%"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">&#160;</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="display:none"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="6" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Pre-tax book income (loss)</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(4,651,205)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(4,490,665)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="6" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Expected tax at 21% </span></div></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(976,753)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(943,040)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td></tr><tr style="height:9pt"><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="display:none"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="6" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Permanent differences:</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="display:none"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Goodwill impairment</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">45,632&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Intangible amortization </span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(37,003)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(46,373)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Other</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">5,169&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">6,474&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td></tr><tr style="height:9pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="display:none"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="6" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">State taxes:</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="display:none"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Current</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">22,565&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">32,491&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Deferred</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(234,928)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(264,759)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td></tr><tr style="height:9pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="display:none"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="6" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Other items:</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="display:none"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Expired net operating losses</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">324,799&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Federal research and development credits</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(84,592)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Deferred tax past year true-ups</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(91,289)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(63,440)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Change in valuation allowance</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">920,794&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">980,342&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Capitalized research and development expenses</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">334,120&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Other</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">43,579&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">81,268&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="6" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Income tax provision</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">22,565&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">32,491&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td></tr></table></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The components of net deferred tax assets recognized in the accompanying consolidated balance sheets at December&#160;31, 2024 and 2023 are as follows:</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:center;text-indent:36pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:80.555%"><tr><td style="width:1.0%"></td><td style="width:5.978%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:59.335%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:14.689%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.707%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:14.691%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Net operating loss carryforwards</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">12,025,000&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">10,840,000&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">R&amp;D and ITC credit carryforwards</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">396,000&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">403,000&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Accrued expenses and other</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">267,000&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">381,000&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Intangibles</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">370,000&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">499,000&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Leases</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">8,000&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Accounts receivable</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">76,000&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">39,000&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Stock options</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">486,000&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">450,000&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Inventory</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">279,000&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">427,000&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Property, plant and equipment</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">578,000&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">650,000&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Other</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">464,000&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">323,000&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Deferred tax assets</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">14,941,000&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">14,020,000&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Valuation allowance</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(14,941,000)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(14,020,000)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Deferred tax assets, net</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">At December&#160;31, 2024, we had approximately $41,147,000 of  Federal net operating loss carryforwards ("NOL") of which $623,000 expired as of December&#160;31, 2024, $19,240,000 expire beginning in 2024 through 2039 and $21,907,000 have an indefinite carryforward.  In addition, we have $32,285,000 of state net operating losses, expiring at various dates starting in 2024 through 2042. </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Tax Cuts and Jobs Act was enacted on December 22, 2017. A significant provision of the act was to reduce the statutory Federal tax rate from 34% to 21%.  During 2024, our valuation allowance increased by $921,000 and  $324,799 of net operating loss carryforwards expired. This increase is affected by the absorption of deferred tax attributes associated with its acquisition of American DG Energy, Inc. along with permanent book to tax differences and provision to return adjustments. </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In accordance with the provisions of the Income Taxes topic of the Codification, we have evaluated the positive and negative evidence bearing upon the realizability of our deferred tax assets, which are comprised principally of net operating losses. Management has determined that it is more likely than not that we will not recognize the benefits of federal and state deferred tax assets and, as a result, a full valuation allowance has been established for 2023 and 2024, respectively.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#160;&#160;&#160;&#160;Utilization of the NOL and research and development credit carryforwards are subject to a substantial annual limitation due to ownership changes, as provided by Section 382 of the Internal Revenue Code of 1986, as well as similar state provisions. Ownership changes may limit the amount of NOL and tax credit carryforwards that can be utilized to offset future taxable income and tax, respectively. In general, an ownership change, as defined by Section 382, results from transactions increasing the ownership of certain shareholders or public groups in the stock of a corporation by more than 50 percentage points over a three-year period. </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#160;&#160;&#160;&#160;We acquired American DG Energy, Inc. during 2017, by acquiring 100 percent of the company's stock. Accordingly, utilization of their consolidated and/or separately computed NOL and/or tax credit carryforwards will be subject to an annual limitation under Internal Revenue Code Section 382. Any such limitation may result in expiration of a portion of the NOL or tax credit carryforwards before utilization. The extent of the limitation, and related allocation and impact upon the NOL and credit carryforwards has been determined to be $391,940 per year for a 20 year period at the ADGE level. However, we have sufficient pre-merger NOLs to offset anticipated taxable income for the taxable year ended December&#160;31, 2024 and do not expected to be limited in NOL utilization for the period.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">A full valuation allowance has been provided against our loss carryforwards and, if an adjustment is required under Section 382, it would be offset by a corresponding adjustment to the valuation allowance. Thus, there would be no impact to the balance sheet or statement of operations if an adjustment were required.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We have not recorded any amounts for unrecognized tax benefits as of December&#160;31, 2024 or 2023.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We file tax returns as prescribed by the tax laws of the jurisdiction in which we operate. In the normal course of business, we are subject to examination by federal and state jurisdictions, where applicable.  There are currently no pending tax examinations.  Our tax returns from tax year 2021 are still open for examination for both federal and state jurisdictions.</span></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for income tax.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 231<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482663/740-10-55-231<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12C<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12C<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12B<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12B<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 270<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477891/740-270-50-1<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.5.Q1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479360/740-10-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480990/946-20-50-13<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/740/tableOfContent<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 14<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-14<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 21<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-21<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 17<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-17<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 11.C)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479360/740-10-S99-2<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482603/740-30-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>40
<FILENAME>R28.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Subsequent Events<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SubsequentEventsAbstract', window );"><strong>Subsequent Events [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SubsequentEventsTextBlock', window );">Subsequent Events</a></td>
<td class="text">Subsequent Events<div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We have evaluated events through the date of this filing, and, except as described below, have determined that no material subsequent events occurred that would require recognition in the consolidated financial statements or disclosure in the notes thereto for the period ended December 31, 2024.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Settlement of Litigation Regarding Fire at Milton Sports Centre</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On January 13, 2025, Tecogen and our insurers entered into a Settlement Agreement and Full and Final Release from any and all claims, obligations and liabilities, arising from the July 10, 2022 fire with the plaintiff's in the amount of CDN $400,000, of which we are responsible for CDN $100,000. On February 7, 2025, we remitted CDN $100,000, or $70,994, representing payment in full of our liability. We will recognize a benefit of $79,006 in our consolidated financial statements in the first quarter of fiscal 2025.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Vertiv Sales and Marketing Agreement - Data Center Cooling Market</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On February 28, 2025, we entered into a Sales and Marketing Agreement with Vertiv Corporation (&#8220;Vertiv&#8221;) relating to sales of Tecogen DTx chillers for data center cooling applications (the &#8220;Vertiv Agreement&#8221;). The Vertiv Agreement has a term of two years and provides that Vertiv will establish a budget for marketing activities and use commercially reasonable efforts to sell our DTx chillers for cooling applications in data centers. The Vertiv Agreement also provides the basis for the negotiation of a definitive supply agreement between us and Vertiv. We have agreed to provide Vertiv with reasonable discounts for purchases of significant volumes of our chillers, and Vertiv has agreed to use commercially reasonable efforts to assist us in securing favorable terms for engineering components and supplies for manufacturing our chillers. Pursuant to the Vertiv Agreement we have granted Vertiv the exclusive right to market and sell our DTx chillers for data center cooling applications outside the United States, and the non-exclusive right to market and sell our DTx chillers within the United States.  We have also agreed to grant Vertiv the exclusive right to market and sell our DTx chillers for data center cooling applications in the United States if Vertiv achieves and maintains agreed sales levels of DTx chillers. The foregoing description of the Vertiv Agreement is not complete and is qualified in its entirety by reference to the full text thereof, a copy of which is filed as Exhibit </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">99.01 to our Current Report on Form 8-K filed with the Securities and Exchange Commission on February 28, 2025, and incorporated by reference as Exhibit 10.30 hereto.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Related Party Notes</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On January 14, 2025 we agreed to permit Mr. Lewis to either receive repayment of his note in cash or, at his discretion, convert the balance of the promissory note into shares of our common stock.  </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On February 18, 2025 we amended the promissory notes with Mr. Hatsopoulos to extend the maturity dates for both promissory notes to July 31, 2026.  We also agreed to permit Mr. Hatsopoulos to either receive repayment of his notes in cash, or at his discretion, convert the balance(s) due of one or both of the promissory notes into shares of our common stock. </span></div>In the event of such a conversion by Mr. Hatsopoulos or Mr. Lewis, the number of shares we will be required to issue will be determined by dividing the balance(s) due under the promissory note(s) by the average closing price per share of our shares during the thirty-day period prior to the date of conversion.<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SubsequentEventsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SubsequentEventsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SubsequentEventsTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 855<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/855/tableOfContent<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 855<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483399/855-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SubsequentEventsTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>41
<FILENAME>R29.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Pay vs Performance Disclosure - USD ($)<br></strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ecd_PvpTable', window );"><strong>Pay vs Performance Disclosure</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net Income (Loss) Attributable to Parent</a></td>
<td class="num">$ (4,760,238)<span></span>
</td>
<td class="num">$ (4,598,108)<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ecd_PvpTable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Number 229<br> -Section 402<br> -Subsection v<br> -Paragraph 1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ecd_PvpTable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ecd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetIncomeLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The portion of profit or loss for the period, net of income taxes, which is attributable to the parent.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-6<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-9<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 60<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476176/805-60-65-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 323<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478666/740-323-65-2<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(20))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482765/220-10-50-6<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-3<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-1<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480175/815-40-65-1<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-8<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-4<br><br>Reference 17: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479168/946-830-55-10<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479105/946-220-45-7<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(18))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-07(9))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-1<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(1)(d))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 23: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 30: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 31: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 32: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-60B<br><br>Reference 33: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 205<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483499/205-20-50-7<br><br>Reference 34: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br><br>Reference 35: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1A<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-1A<br><br>Reference 36: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1B<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-1B<br><br>Reference 37: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(22))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478524/942-220-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetIncomeLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>42
<FILENAME>R30.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Insider Trading Arrangements<br></strong></div></th>
<th class="th" colspan="1">3 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ecd_TradingArrByIndTable', window );"><strong>Trading Arrangements, by Individual</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ecd_Rule10b51ArrAdoptedFlag', window );">Rule 10b5-1 Arrangement Adopted</a></td>
<td class="text">false<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ecd_NonRule10b51ArrAdoptedFlag', window );">Non-Rule 10b5-1 Arrangement Adopted</a></td>
<td class="text">false<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ecd_Rule10b51ArrTrmntdFlag', window );">Rule 10b5-1 Arrangement Terminated</a></td>
<td class="text">false<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ecd_NonRule10b51ArrTrmntdFlag', window );">Non-Rule 10b5-1 Arrangement Terminated</a></td>
<td class="text">false<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ecd_NonRule10b51ArrAdoptedFlag">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Number 229<br> -Section 408<br> -Subsection a<br> -Paragraph 1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ecd_NonRule10b51ArrAdoptedFlag</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ecd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ecd_NonRule10b51ArrTrmntdFlag">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Number 229<br> -Section 408<br> -Subsection a<br> -Paragraph 1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ecd_NonRule10b51ArrTrmntdFlag</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ecd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ecd_Rule10b51ArrAdoptedFlag">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Number 229<br> -Section 408<br> -Subsection a<br> -Paragraph 1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ecd_Rule10b51ArrAdoptedFlag</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ecd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ecd_Rule10b51ArrTrmntdFlag">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Number 229<br> -Section 408<br> -Subsection a<br> -Paragraph 1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ecd_Rule10b51ArrTrmntdFlag</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ecd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ecd_TradingArrByIndTable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Number 229<br> -Section 408<br> -Subsection a<br> -Paragraph 2<br> -Subparagraph A<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ecd_TradingArrByIndTable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ecd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>43
<FILENAME>R31.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Insider Trading Policies and Procedures<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ecd_InsiderTradingPoliciesProcLineItems', window );"><strong>Insider Trading Policies and Procedures [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ecd_InsiderTrdPoliciesProcAdoptedFlag', window );">Insider Trading Policies and Procedures Adopted</a></td>
<td class="text">true<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ecd_InsiderTradingPoliciesProcLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Number 229<br> -Section 408<br> -Subsection b<br> -Paragraph 1<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Section 16<br> -Subsection J<br> -Paragraph a<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ecd_InsiderTradingPoliciesProcLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ecd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ecd_InsiderTrdPoliciesProcAdoptedFlag">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Number 229<br> -Section 408<br> -Subsection b<br> -Paragraph 1<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Section 16<br> -Subsection J<br> -Paragraph a<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ecd_InsiderTrdPoliciesProcAdoptedFlag</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ecd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>44
<FILENAME>R32.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Cybersecurity Risk Management and Strategy Disclosure<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cyd_CybersecurityRiskManagementStrategyAndGovernanceLineItems', window );"><strong>Cybersecurity Risk Management, Strategy, and Governance [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cyd_CybersecurityRiskManagementProcessesForAssessingIdentifyingAndManagingThreatsTextBlock', window );">Cybersecurity Risk Management Processes for Assessing, Identifying, and Managing Threats [Text Block]</a></td>
<td class="text"><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our business is dependent upon our information technology (&#8220;IT&#8221;) systems, devices and networks to collect, process and store the data necessary to conduct our business and record and report our business and financial information. We recognize the importance of developing, implementing, and maintaining effective cybersecurity measures to safeguard our IT systems and protect the confidentiality, integrity, and availability of our confidential and personal data, including with respect to our customers, suppliers, and employees, as well as our intellectual property. </span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We maintain a cybersecurity risk management program to identify, assess, manage, mitigate, and respond to cybersecurity threats.</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%"> </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our cybersecurity risk management program incorporates various mechanisms to detect and monitor unusual network activity, as well as containment and incident response tools. We monitor issues that are internally discovered or externally reported that may affect our business and have processes to assess those issues for potential cybersecurity impact or risk. </span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We have integrated our cybersecurity risk management program into our broader enterprise risk management program. This integration is designed to make cybersecurity considerations an integral part of our decision-making processes at every level and we believe that this integration allows cybersecurity risks to be evaluated and addressed in alignment with our business objectives and operational needs. While we work to maintain our information security program and risk management efforts, there can be no assurance that such actions will be sufficient to prevent cybersecurity incidents or mitigate all potential risks to our systems, networks, and data or those of our third-party providers.</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We rely on suppliers that are also exposed to ransomware and other malicious attacks that can disrupt business operations. Although we take steps to secure confidential information that is provided to or accessible by third parties, such measures may not always be effective and losses or unauthorized access to, or releases of, confidential information occur. Such incidents and other malicious attacks could materially adversely affect our business, reputation, results of operations and financial condition.</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We have experienced malicious attacks and other attempts to gain unauthorized access to our systems, including a ransomware attack on our computer network which occurred on April 28, 2023. Following remediation, our network returned to full operation on May 1, 2023. </span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We have engaged a third-party consultant in connection with our risk management and assessment processes.</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">  </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our consultant assists us in the design and implementation of our cybersecurity policies and procedures, as well as the monitoring and testing of our safeguards. In the event of a cybersecurity incident, our incident response plan outlines the steps to be followed from incident detection to mitigation, recovery and notification, and involves notifying senior management, our legal department, and the board of directors and/or our audit committee, if appropriate, and mitigation and remediation steps by our third-party consultant.</span></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cyd_CybersecurityRiskManagementProcessesIntegratedFlag', window );">Cybersecurity Risk Management Processes Integrated [Flag]</a></td>
<td class="text">true<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cyd_CybersecurityRiskManagementProcessesIntegratedTextBlock', window );">Cybersecurity Risk Management Processes Integrated [Text Block]</a></td>
<td class="text"><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our cybersecurity risk management and strategy processes are jointly led by our  embedded software engineer and Chief Executive Officer, in conjunction with a third-party consultant we have engaged to assist with cybersecurity risks assessment and monitoring. Our embedded software engineer is informed about and monitors the prevention, mitigation, detection, and remediation of cybersecurity incidents through their management of the cybersecurity risk management and strategy processes described above, including our incident response plan. Together with the General Counsel, Chief Executive Officer and outside consultant that comprise our cybersecurity management team, we collectively possess significant experience in evaluating, managing, and mitigating security and other risks, including cybersecurity risks.</span></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cyd_CybersecurityRiskManagementThirdPartyEngagedFlag', window );">Cybersecurity Risk Management Third Party Engaged [Flag]</a></td>
<td class="text">true<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cyd_CybersecurityRiskThirdPartyOversightAndIdentificationProcessesFlag', window );">Cybersecurity Risk Third Party Oversight and Identification Processes [Flag]</a></td>
<td class="text">true<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cyd_CybersecurityRiskMateriallyAffectedOrReasonablyLikelyToMateriallyAffectRegistrantFlag', window );">Cybersecurity Risk Materially Affected or Reasonably Likely to Materially Affect Registrant [Flag]</a></td>
<td class="text">false<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cyd_CybersecurityRiskBoardOfDirectorsOversightTextBlock', window );">Cybersecurity Risk Board of Directors Oversight [Text Block]</a></td>
<td class="text">Our board of directors has overall responsibility for informed oversight of our risk management process, including risks from cybersecurity threats.<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cyd_CybersecurityRiskBoardCommitteeOrSubcommitteeResponsibleForOversightTextBlock', window );">Cybersecurity Risk Board Committee or Subcommittee Responsible for Oversight [Text Block]</a></td>
<td class="text">Our board of directors has delegated to our audit committee its cybersecurity risk oversight processes, including oversight and mitigation of risks from cybersecurity threats.<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cyd_CybersecurityRiskProcessForInformingBoardCommitteeOrSubcommitteeResponsibleForOversightTextBlock', window );">Cybersecurity Risk Process for Informing Board Committee or Subcommittee Responsible for Oversight [Text Block]</a></td>
<td class="text"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our audit committee receives periodic reports from management regarding our cybersecurity risks and is notified of any significant cybersecurity threat or incident.</span><span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cyd_CybersecurityRiskRoleOfManagementTextBlock', window );">Cybersecurity Risk Role of Management [Text Block]</a></td>
<td class="text">Our executive officers are responsible for the day-to-day management of the material risks we face. Our board of directors has delegated to our audit committee its cybersecurity risk oversight processes, including oversight and mitigation of risks from cybersecurity threats.<div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our audit committee receives periodic reports from management regarding our cybersecurity risks and is notified of any significant cybersecurity threat or incident.</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">  </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The audit committee reports to the board of directors regarding its activities, including with respect to cybersecurity matters and the occurrence of any material cybersecurity incident, if appropriate.</span></div><div style="margin-bottom:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We have engaged a third-party consultant to manage risks associated with network protection and workstation management. Our consultant performs an annual assessment of our cybersecurity risk policies and procedures.</span></div><div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our cybersecurity risk management and strategy processes are jointly led by our  embedded software engineer and Chief Executive Officer, in conjunction with a third-party consultant we have engaged to assist with cybersecurity risks assessment and monitoring. Our embedded software engineer is informed about and monitors the prevention, mitigation, detection, and remediation of cybersecurity incidents through their management of the cybersecurity risk management and strategy processes described above, including our incident response plan. Together with the General Counsel, Chief Executive Officer and outside consultant that comprise our cybersecurity management team, we collectively possess significant experience in evaluating, managing, and mitigating security and other risks, including cybersecurity risks.</span></div><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cyd_CybersecurityRiskManagementPositionsOrCommitteesResponsibleFlag', window );">Cybersecurity Risk Management Positions or Committees Responsible [Flag]</a></td>
<td class="text">true<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cyd_CybersecurityRiskManagementPositionsOrCommitteesResponsibleTextBlock', window );">Cybersecurity Risk Management Positions or Committees Responsible [Text Block]</a></td>
<td class="text">Our cybersecurity risk management and strategy processes are jointly led by our  embedded software engineer and Chief Executive Officer, in conjunction with a third-party consultant we have engaged to assist with cybersecurity risks assessment and monitoring.<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cyd_CybersecurityRiskManagementExpertiseOfManagementResponsibleTextBlock', window );">Cybersecurity Risk Management Expertise of Management Responsible [Text Block]</a></td>
<td class="text">Together with the General Counsel, Chief Executive Officer and outside consultant that comprise our cybersecurity management team, we collectively possess significant experience in evaluating, managing, and mitigating security and other risks, including cybersecurity risks.<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cyd_CybersecurityRiskProcessForInformingManagementOrCommitteesResponsibleTextBlock', window );">Cybersecurity Risk Process for Informing Management or Committees Responsible [Text Block]</a></td>
<td class="text">Our embedded software engineer is informed about and monitors the prevention, mitigation, detection, and remediation of cybersecurity incidents through their management of the cybersecurity risk management and strategy processes described above, including our incident response plan. Together with the General Counsel, Chief Executive Officer and outside consultant that comprise our cybersecurity management team, we collectively possess significant experience in evaluating, managing, and mitigating security and other risks, including cybersecurity risks.<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cyd_CybersecurityRiskManagementPositionsOrCommitteesResponsibleReportToBoardFlag', window );">Cybersecurity Risk Management Positions or Committees Responsible Report to Board [Flag]</a></td>
<td class="text">true<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cyd_CybersecurityRiskBoardCommitteeOrSubcommitteeResponsibleForOversightTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Section 106<br> -Subsection c<br> -Paragraph 1<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Section 16K<br> -Subsection c<br> -Paragraph 1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cyd_CybersecurityRiskBoardCommitteeOrSubcommitteeResponsibleForOversightTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cyd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cyd_CybersecurityRiskBoardOfDirectorsOversightTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Section 106<br> -Subsection c<br> -Paragraph 1<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Section 16K<br> -Subsection c<br> -Paragraph 1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cyd_CybersecurityRiskBoardOfDirectorsOversightTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cyd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cyd_CybersecurityRiskManagementExpertiseOfManagementResponsibleTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Section 106<br> -Subsection c<br> -Paragraph 2<br> -Subparagraph i<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Section 16K<br> -Subsection c<br> -Paragraph 2<br> -Subparagraph i<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cyd_CybersecurityRiskManagementExpertiseOfManagementResponsibleTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cyd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cyd_CybersecurityRiskManagementPositionsOrCommitteesResponsibleFlag">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Section 106<br> -Subsection c<br> -Paragraph 2<br> -Subparagraph i<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Section 16K<br> -Subsection c<br> -Paragraph 2<br> -Subparagraph i<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cyd_CybersecurityRiskManagementPositionsOrCommitteesResponsibleFlag</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cyd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>i:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cyd_CybersecurityRiskManagementPositionsOrCommitteesResponsibleReportToBoardFlag">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Section 106<br> -Subsection c<br> -Paragraph 2<br> -Subparagraph iii<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Section 16K<br> -Subsection c<br> -Paragraph 2<br> -Subparagraph iii<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cyd_CybersecurityRiskManagementPositionsOrCommitteesResponsibleReportToBoardFlag</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cyd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>i:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cyd_CybersecurityRiskManagementPositionsOrCommitteesResponsibleTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Section 106<br> -Subsection c<br> -Paragraph 2<br> -Subparagraph i<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Section 16K<br> -Subsection c<br> -Paragraph 2<br> -Subparagraph i<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cyd_CybersecurityRiskManagementPositionsOrCommitteesResponsibleTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cyd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cyd_CybersecurityRiskManagementProcessesForAssessingIdentifyingAndManagingThreatsTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Section 106<br> -Subsection b<br> -Paragraph 1<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Section 16K<br> -Subsection b<br> -Paragraph 1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cyd_CybersecurityRiskManagementProcessesForAssessingIdentifyingAndManagingThreatsTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cyd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cyd_CybersecurityRiskManagementProcessesIntegratedFlag">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Section 106<br> -Subsection b<br> -Paragraph 1<br> -Subparagraph i<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Section 16K<br> -Subsection b<br> -Paragraph 1<br> -Subparagraph i<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cyd_CybersecurityRiskManagementProcessesIntegratedFlag</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cyd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>i:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cyd_CybersecurityRiskManagementProcessesIntegratedTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Section 106<br> -Subsection b<br> -Paragraph 1<br> -Subparagraph i<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Section 16K<br> -Subsection b<br> -Paragraph 1<br> -Subparagraph i<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cyd_CybersecurityRiskManagementProcessesIntegratedTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cyd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cyd_CybersecurityRiskManagementStrategyAndGovernanceLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Section 106<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Section 16K<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cyd_CybersecurityRiskManagementStrategyAndGovernanceLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cyd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>i:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cyd_CybersecurityRiskManagementThirdPartyEngagedFlag">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Section 106<br> -Subsection b<br> -Paragraph 1<br> -Subparagraph ii<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Section 16K<br> -Subsection b<br> -Paragraph 1<br> -Subparagraph ii<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cyd_CybersecurityRiskManagementThirdPartyEngagedFlag</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cyd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>i:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cyd_CybersecurityRiskMateriallyAffectedOrReasonablyLikelyToMateriallyAffectRegistrantFlag">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Section 106<br> -Subsection b<br> -Paragraph 2<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Section 16K<br> -Subsection b<br> -Paragraph 2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cyd_CybersecurityRiskMateriallyAffectedOrReasonablyLikelyToMateriallyAffectRegistrantFlag</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cyd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>i:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cyd_CybersecurityRiskProcessForInformingBoardCommitteeOrSubcommitteeResponsibleForOversightTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Section 106<br> -Subsection c<br> -Paragraph 1<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Section 16K<br> -Subsection c<br> -Paragraph 1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cyd_CybersecurityRiskProcessForInformingBoardCommitteeOrSubcommitteeResponsibleForOversightTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cyd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cyd_CybersecurityRiskProcessForInformingManagementOrCommitteesResponsibleTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Section 106<br> -Subsection c<br> -Paragraph 2<br> -Subparagraph ii<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Section 16K<br> -Subsection c<br> -Paragraph 2<br> -Subparagraph ii<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cyd_CybersecurityRiskProcessForInformingManagementOrCommitteesResponsibleTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cyd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cyd_CybersecurityRiskRoleOfManagementTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Section 106<br> -Subsection c<br> -Paragraph 2<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Section 16K<br> -Subsection c<br> -Paragraph 2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cyd_CybersecurityRiskRoleOfManagementTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cyd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cyd_CybersecurityRiskThirdPartyOversightAndIdentificationProcessesFlag">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Section 106<br> -Subsection b<br> -Paragraph 1<br> -Subparagraph iii<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Section 16K<br> -Subsection b<br> -Paragraph 1<br> -Subparagraph iii<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cyd_CybersecurityRiskThirdPartyOversightAndIdentificationProcessesFlag</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cyd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>i:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>45
<FILENAME>R33.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Summary of significant accounting policies (Policies)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccountingPoliciesAbstract', window );"><strong>Accounting Policies [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_PrinciplesOfConsolidationAndBasisOfPresentationPolicyTextBlock', window );">Principles of Consolidation and Basis of Presentation</a></td>
<td class="text"><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Principles of Consolidation and Basis of Presentation</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The financial statements have been prepared in accordance with accounting standards set by the Financial Accounting Standards Board, or FASB.  The FASB sets generally accepted accounting principles, or GAAP, to ensure financial condition, results of operations, and cash flows are consistently reported. References to GAAP issued by the FASB in these footnotes are to the FASB Accounting Standards Codification, or ASC.  We adopted the presentation requirements for noncontrolling interests required by ASC 810 Consolidation. Under ASC 810, earnings or losses attributed to the noncontrolling interests are reported as part of the consolidated earnings and not a separate component of income or expense.  </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The accompanying consolidated financial statements include our accounts and the accounts of the entities in which we have a controlling financial interest. Those entities include our wholly-owned subsidiary, American DG Energy Inc. ("ADGE"), Tecogen CHP Solutions, Inc., and a joint venture, American DG New York, LLC, or ADGNY, in which ADGE holds a 51.0% interest. As the controlling partner, all major decisions in respect of ADGNY are made by ADGE in accordance with the joint venture agreement. The interests in the individual underlying energy system projects in ADGNY vary between ADGE and its joint venture partner. The noncontrolling interest and distributions are determined based on economic ownership. The economic ownership is calculated by the amount invested by us and the noncontrolling partner in each site. Each quarter, we calculate a year-to-date profit/loss for each site that is part of ADGNY and the noncontrolling interest percent of economic ownership in each site is applied to determine the noncontrolling interest share in the profit/loss. The same methodology is used to determine quarterly distributions of available cash to the noncontrolling interest partner. On our balance sheet, noncontrolling interest represents the joint venture partner&#8217;s investment in ADGNY, plus its share of after-tax profits less any cash distributions. ADGE owned a controlling 51.0% legal and economic interest in ADGNY as of December&#160;31, 2024. </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Investments in partnerships and companies in which we do not have a controlling financial interest but where we have significant influence, if any, are accounted for under the equity method.</span></div>Noncontrolling interests in the net assets and operations of ADGNY are reflected in the caption &#8220;Noncontrolling interest&#8221; in the accompanying consolidated financial statements.  All intercompany transactions have been eliminated.<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_UseOfEstimates', window );">Use of Estimates</a></td>
<td class="text"><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Use of Estimates</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The preparation of financial statements in conformity with accounting principles generally accepted in the United States of America requires management to make estimates and assumptions that affect the reported amounts of assets and liabilities and disclosure of contingent assets and liabilities at the date of the financial statements and the reported amounts of revenues and expenses during the reporting period.  Actual results could differ from those estimates.</span></div><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PriorPeriodReclassificationAdjustmentDescription', window );">Reclassification of Prior Year Presentation</a></td>
<td class="text"><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Reclassification of Prior Year Presentation</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Certain prior year amounts have been reclassified for consistency with the current year presentation. These reclassifications had no effect on the reported results of operations.</span></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConcentrationRiskCreditRisk', window );">Concentration of Credit Risk</a></td>
<td class="text"><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Concentration of Credit Risk</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Financial instruments that expose us to concentrations of credit risk consist primarily of cash and cash equivalents and accounts receivable.  We maintain our cash balances in bank accounts, which at times may exceed the Federal Deposit Insurance Corporation&#8217;s ("FDIC") general deposit insurance limits.  The amount on deposit at December&#160;31, 2024 and 2023 which exceeded the $250,000 federally insured limit were approximately $4,954,395 and $1,009,094, respectively.  We have not experienced any losses in such accounts and thus believe that we are not exposed to any significant credit risk on cash.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">There was no customer who represented 10% of revenues for the years ended December&#160;31, 2024 and December&#160;31, 2023. There was one customer who represented 12% of the accounts receivable balance as of December&#160;31, 2024, and one customers who represented 14% of the accounts receivable balance as of December&#160;31, 2023.</span></div><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashAndCashEquivalentsPolicyTextBlock', window );">Cash and Cash Equivalents</a></td>
<td class="text"><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Cash and Cash Equivalents</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We consider all highly liquid instruments with an original maturity date of three months or less when purchased to be cash and cash equivalents. We have cash balances in certain financial institutions in amounts which occasionally exceed current FDIC limits. The financial stability of these institutions is continually reviewed by senior management. We believe that we are not exposed to any significant credit risk on cash and cash equivalents.</span></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_TradeAndOtherAccountsReceivablePolicy', window );">Accounts Receivable</a></td>
<td class="text"><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Accounts Receivable</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On January 1, 2023, we adopted ASU 2016-13, </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Financial Instruments, Credit Losses (Topic 326)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. Accounts receivable are stated at the amount management expects to collect from outstanding balances. The allowance for credit losses is estimated based on historical experience, aging of the receivable, the counterparty&#8217;s ability to pay, condition of general economy and industry, and </span><span style="color:#2d2d2d;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">combined with management's estimate of current conditions, reasonable and supportable forecasts of future losses to determine estimated credit losses in our</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> evaluation of outstanding accounts receivable at the end of the year. The allowance for credit losses reflects management's evaluation of our outstanding accounts receivable at the end of the year and our best estimate of probable losses inherent in the accounts receivable balance. Accounts receivable deemed uncollectible are charged against the allowance for credit losses when identified. Our provision for credit losses decreased to $146,010 in the year ended December&#160;31, 2024, compared to $902,432 in the year ended December&#160;31, 2023, due to the write down of certain install receivables which were deemed uncollectible in the year ended December&#160;31, 2023. At December&#160;31, 2024 and 2023, the allowance for credit losses was $295,932 and $149,992, respectively.</span></div><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InventoryPolicyTextBlock', window );">Inventory</a></td>
<td class="text"><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Inventory</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Raw materials, work in process, and finished goods inventories are stated at the lower of cost, as determined by the average cost method, or net realizable value.  We periodically review inventory quantities on hand for excess and/or obsolete inventory based primarily on historical usage, as well as based on estimated forecast of product demand and anticipated usage.  Any reserves that result from this review are charged to cost of sales.</span></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentPolicyTextBlock', window );">Property, Plant and Equipment</a></td>
<td class="text"><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Property, Plant and Equipment</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Property, plant and equipment are recorded at cost. Depreciation is provided using the straight-line method over the estimated useful life of the asset, which range from <span style="-sec-ix-hidden:f-343">three</span> to fifteen years.  Leasehold improvements are amortized using the straight-line method over the lesser of the estimated useful lives of the assets or the term of the related leases.  Expenditures for maintenance and repairs are expensed, while renewals and betterments that materially extend the life of an asset are capitalized.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We review our property, plant and equipment for potential impairment whenever events or changes in business circumstances indicate that the carrying value of the assets may not be fully recoverable or that the useful lives of the assets are </span></div>no longer appropriate. We evaluate the recoverability of our long-lived assets when impairment is indicated by comparing the net book value of the asset group to the estimated future undiscounted cash flows attributable to such assets. If the sum of the projected undiscounted cash flows (excluding interest charges) is less than the carrying value of the assets, the assets will be written down to the estimated fair value and such loss is recognized in income from continuing operations in the period in which the determination is made. If impairment is indicated, the asset is written down to its estimated fair value.<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IntangibleAssetsFiniteLivedPolicy', window );">Intangible Assets</a></td>
<td class="text"><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Intangible Assets</span></div>Intangible assets subject to amortization include costs incurred by us to acquire product certifications, certain patent costs, developed technologies, and customer contracts.  These costs are amortized on a straight-line basis over the estimated economic life of the intangible asset.  Indefinite life intangible assets such as trademarks are recorded at cost and not amortized.<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ImpairmentOrDisposalOfLongLivedAssetsPolicyTextBlock', window );">Impairment of Long-Lived Assets</a></td>
<td class="text"><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Impairment of Long-lived Assets</span></div>Long-lived assets, including intangible assets and property, plant and equipment, are evaluated for impairment whenever events or changes in circumstances have indicated that an asset may not be recoverable and are grouped with other assets to the lowest level for which identifiable cash flows are largely independent of the cash flows of other groups of assets and liabilities.  If the sum of the projected undiscounted cash flows (excluding interest charges) is less than the carrying value of the assets, the assets will be written down to the estimated fair value and such loss is recognized in income from continuing operations in the period in which the determination is made.<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationsPolicy', window );">Business Combinations</a></td>
<td class="text"><div style="margin-bottom:6pt;margin-top:6pt;padding-left:36pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Business Combinations</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In accordance with applicable accounting standards, we estimate the fair value of assets acquired and liabilities assumed as of the acquisition date of each business combination. Any excess purchase price over the fair value of the net tangible and intangible assets acquired is allocated to goodwill. We may make certain estimates and assumptions when determining the fair values of assets acquired and liabilities assumed, including intangible assets. Critical estimates in valuing certain intangible assets include but are not limited to future expected cash flows from energy production sites or customer maintenance contracts, estimated operating costs, as well as discount rates. At the acquisition date, we will also record acquisition related liabilities, if applicable, for any contingent consideration or deferred payments to the seller and pre-acquisition deferred maintenance contingencies identified at service contract acquisition. Contingent consideration and pre-acquisition deferred maintenance contingencies are recorded at fair value on the acquisition date based on our expectation of achieving the contractually defined revenue targets and actual and projected future costs. The fair value of the contingent consideration and pre-acquisition deferred maintenance liabilities are remeasured each reporting period after the acquisition date and any changes in the estimated fair value are reflected as gains or losses in cost of goods sold or general and administrative expense in the consolidated statement of operations. Contingent consideration liabilities and deferred payments to sellers are recorded as current liabilities and other long-term liabilities in the consolidated balance sheets based on the expected timing of settlement.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Management&#8217;s estimates of fair value are based upon assumptions believed to be reasonable, but which are inherently uncertain and unpredictable and, as a result, actual results may differ from estimates. Any changes to provisional amounts identified during the measurement period are recognized in the reporting period in which the adjustment amounts are determined. Transaction costs associated with business combinations are expensed as incurred.</span></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy', window );">Goodwill</a></td>
<td class="text"><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Goodwill</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Goodwill is the excess of the fair value of consideration paid for businesses over the fair value of the identifiable net assets acquired. Impairment testing for goodwill is performed annually, generally in the fourth fiscal quarter, or more frequently if impairment indicators are present. </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">To determine if goodwill is potentially impaired, we have the option to perform a qualitative assessment. However, we may elect to bypass the qualitative assessment and perform an impairment test even if no indications of a potential impairment exist. The impairment test for goodwill is performed at the reporting unit level and compares the fair value of the reporting unit (calculated using a discounted cash flow method) to its carrying value, including goodwill.  The discount rate represents our estimate of the weighted-average cost of capital, or expected return, that a marketplace participant would have required as of the valuation date. If the carrying value exceeds the fair value, an impairment charge is recorded for the excess carrying value over fair value, limited to the total amount of goodwill of that reporting unit. For 2024, we assessed goodwill impairment of our energy production reporting unit and our Aegis service maintenance contracts reporting unit.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We used a discounted cash flow approach to develop the estimated fair value of each reporting unit. Management </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">judgment is required in developing the assumptions for the discounted cash flow model. The discount rate, profitability assumptions, and terminal growth rate assumptions of the Energy Production unit utilized in the discounted cash flow model used to estimate its fair value are specific to the Energy Production unit, which the discount rate, profitability assumptions, and terminal growth rate assumptions utilized for the Aegis service maintenance reporting unit are specific to the Aegis service maintenance reporting. An impairment would be recorded if the carrying amount of a reporting unit including goodwill exceeded the estimated fair value. Based on the aforementioned analysis, our assessment in 2024 indicated that the carrying  value of our energy production reporting unit exceeded their fair value and therefore goodwill was impaired. We recorded a goodwill impairment charge of $217,295 in our Consolidated Financial Statements. Our assessment of the Aegis service maintenance contracts reporting unit, at December&#160;31, 2024, indicated that the carrying value of the service maintenance contracts did not exceed their fair value and therefore goodwill was not impaired. (see Note 10."Goodwill").</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We adopted the provisions of ASU 2017-04, during 2018, which simplified the impairment testing process by eliminating the requirement to determine the implied fair value of goodwill. We test goodwill for impairment on either a qualitative basis under certain conditions, or a quantitative basis. On a quantitative basis, fair value of the reporting units is primarily determined using a probability weighted discounted cash flow analysis.</span></div><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_ContingentConsiderationArrangementsPolicyPolicyTextBlock', window );">Acquisition-Related Contingent Consideration</a></td>
<td class="text"><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Acquisition-Related Contingent Consideration</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Acquisition-related contingent consideration, which primarily consists of contingent consideration payable obligations, equal to a percentage of the revenue collected for maintenance services pursuant to the Aegis contract and related asset acquisitions, was recorded in the Consolidated Balance Sheets at its acquisition date estimated fair value, in accordance with the acquisition method of accounting. The fair value of the acquisition-related contingent consideration is remeasured each reporting period, with changes in fair value recorded in the Consolidated Statements of Operations. The fair value measurement of contingent consideration obligations arising from business combinations is determined via a probability-weighted discounted cash flow analysis, using unobservable (Level 3) inputs. These inputs may include: (i) the estimated amount and timing of projected cash flows, (ii) the probability of the achievement of the factor(s) on which the contingency is based and (iii) the risk-adjusted discount rate used to present value the probability-weighted cash flows. Significant increases or decreases in any of those inputs in isolation could result in a significantly higher or lower fair value measurement.</span></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LesseeLeasesPolicyTextBlock', window );">Leases</a></td>
<td class="text"><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Leases</span></div>On January 1, 2019, we adopted the guidance under ASU No. 2016-02, &#8220;Leases&#8221; ("ASC 842&#8221;). ASC 842 requires lessees to recognize most leases on their balance sheets as a right-of-use ("ROU") asset with a corresponding lease liability. ROU assets represent our right to use an underlying asset for the lease term and lease liabilities represent our obligation to make lease payments arising from the lease. Lease ROU assets and liabilities are recognized at lease commencement date based on the present value of lease payments over the expected lease term.<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EarningsPerSharePolicyTextBlock', window );">Income (Loss) per Common Share</a></td>
<td class="text"><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Income (loss) per Common Share</span></div>We compute basic income (loss) per share by dividing net income (loss) for the period by the weighted-average number of shares of common stock outstanding during the period.  We compute our diluted earnings (loss) per common share using the treasury stock method.  For purposes of calculating diluted earnings per share, we consider our shares issuable in connection with convertible debentures, stock options and warrants to be dilutive common stock equivalents when the exercise/conversion price is less than the average market price of our common stock for the period.<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SegmentReportingPolicyPolicyTextBlock', window );">Segment Information</a></td>
<td class="text"><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Segment Information</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our operations are comprised of three business segments. Our Products segment designs, manufactures and sells industrial and commercial cogeneration systems as described above. Our Services segment installs and maintains our cogeneration systems. Our Energy Production segment sells energy in the form of electricity, heat, hot water and cooling to our customers under long-term sales agreements. Segment profit is based on operating income after the elimination of intercompany transactions. Segment profit is a measure of operating performance of our reportable segments and may not be comparable to similar measures reported by other companies. Segment profit is a performance metric utilized by our Chief Executive Officer, who is our Chief Operating Decision Maker, to allocate resources to and access performance of our segments. See Note 18. "Segments" for a reconciliation of segment profit to income from operations.</span></div><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxPolicyTextBlock', window );">Income Taxes</a></td>
<td class="text"><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Income Taxes</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We use the asset and liability method of accounting for income taxes.  The current or deferred tax consequences of transactions are measured by applying the provisions of enacted tax laws to determine the amount of taxes payable currently or in future years.  Deferred tax assets and liabilities are determined based on the difference between the financial statement and tax bases of assets and liabilities and expected future tax consequences of events that have been included in the financial statements or tax returns using enacted tax rates in effect for the years in which the differences are expected to reverse.  Under this method, a valuation allowance is used to offset deferred taxes if, based upon the available evidence, it is more likely than </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">not that some or all of the deferred tax assets may not be realized.  Management evaluates the recoverability of deferred taxes and the adequacy of the valuation allowance annually.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We have adopted the provisions of the accounting standards relative to accounting for uncertainties in tax positions. These provisions provide guidance on the recognition, derecognition and measurement of potential tax benefits associated with tax positions.  We elected to recognize interest and penalties related to income tax matters as a component of income tax expense in the statements of operations.  We have analyzed our current tax return compliance positions and determined that no uncertain tax positions have been taken that would require recognition.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">With few exceptions, we are no longer subject to possible income tax examinations by federal, state or local taxing authorities for tax years before 2021, with the exception of loss carryforwards in the event they are utilized in future years.  Our  tax returns are open to adjustment from 2001 forward, as a result of the fact that the we have loss carryforwards from those years, which may be adjusted in the year those losses are utilized.</span></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueOfFinancialInstrumentsPolicy', window );">Fair Value of Financial Instruments</a></td>
<td class="text"><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Fair Value of Financial Instruments</span></div>Our financial instruments are cash and cash equivalents, accounts receivable, available-for-sale securities and accounts payable.  The recorded values of cash and cash equivalents, accounts receivable and accounts payable approximate their fair values based on their short-term nature.<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerPolicyTextBlock', window );">Revenue Recognition</a></td>
<td class="text"><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Revenue Recognition</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Revenue is recognized when performance obligations under the terms of a contract with our customer are satisfied; generally, this occurs with the transfer of control of our products, services and energy production. Revenue is measured as the amount of consideration we expect to receive in exchange for transferring goods or providing services or energy to customers. </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Shipping and handling fees billed to customers in a sales transaction are recorded in revenue for goods provided. were $96,890 and $174,662, for the years ended December&#160;31, 2024 and 2023, respectively. The related shipping and handling costs incurred are accounted for as fulfillment activities and are recognized as cost of goods sold when control of the product transfers to the customer, which were $59,331 and $79,616, for the years ended December&#160;31, 2024 and 2023, respectively. The costs of inbound freight is recorded in general and administrative expenses. For the years ended December&#160;31, 2024 and 2023, $248,229 and $427,880 of shipping and handling costs were included in general and administrative expenses in the accompanying consolidated statements of operations, respectively. We elected to exclude from revenue any value-add sales and other taxes which we collect concurrent with revenue-producing activities. These accounting policy elections are consistent with the manner in which we have historically recorded shipping and handling fees and taxes. Incremental costs incurred by us in obtaining a contract with a customer are negligible, if any, and are expensed ratably in proportion to the related revenue recognized.</span></div><div style="margin-bottom:6pt;margin-top:6pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Products Segment</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our Product revenues include cogeneration systems that supply electricity and hot water, chillers that provide air-conditioning and hot water and engineered accessories, which consist of ancillary products and parts necessary to install a cogeneration unit including integration into the customers&#8217; existing electrical and mechanical systems. We refer to the package of engineered accessories and engineering and design services necessary for the customers' installation of a cogeneration unit as light installation services.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We transfer control and generally recognize a sale when we ship a product from our manufacturing facility at which point the customer takes ownership of the product. Payment terms on product sales are generally 30 days. </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We recognize revenue in certain circumstances before delivery to the customer has occurred (commonly referred to as bill and hold transactions). We recognize revenue related to such transactions once, among other things, the customer has made a written fixed commitment to purchase the product(s) under normal billing and credit terms, the customer has requested the product(s) be held for future delivery as scheduled and designated by them, risk of ownership has been assumed by the customer, and the product(s) are tagged as sold and segregated for storage awaiting further direction from the customer. Due to the infrequent nature and duration of bill and hold arrangements, the value associated with custodial storage services is deemed immaterial in the context of the contract and in total, and accordingly, none of the transaction price is allocated to such service.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Depending on the product and terms of the arrangement, we may defer the recognition of a portion of the transaction price received because we have to satisfy a future obligation (e.g., product start-up service). Amounts allocated to product start-up services are recognized as revenue when the start-up service has been completed. We use an observable selling price to determine standalone selling prices where available and either a combination of an adjusted market assessment approach, an expected cost plus a margin approach, and/or a residual approach to determine the standalone selling prices for separate performance obligations as a basis for allocating contract consideration when an observable selling price is not available. Amounts received but not recognized pending completion of performance are recognized as contract liabilities and are recorded as deferred revenue along with deposits by customers. </span></div><div style="margin-bottom:6pt;margin-top:6pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Services Segment</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Maintenance services are provided under either long-term maintenance contracts or time and material maintenance contracts. Revenue under time and material maintenance contracts is recognized when the maintenance service is completed. Revenue under long-term maintenance contracts is recognized either ratably over the term of the contract where the contract price is fixed or when the periodic maintenance activities are completed and the invoiced cost to the customer is based on run hours or kilowatts produced in a given period. We use an output method to measure progress towards completion of our performance obligation which results in the recognition of revenue on the basis of a direct measurement of the value to the customer of the services transferred to date relative to the remaining services promised under the contract. We use the practical expedient at ASC 606-10-55-18 of recognizing revenue in an amount equal to the amount we have the right to invoice the customer under the contract. </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our initial acquisition of the Aegis maintenance contracts and related business closed on March 15, 2023. We have included the financial results of the Aegis maintenance agreements in our consolidated financial statements from April 1, 2023, from February 1, 2024 and from May 1, 2024, the closing or acquisition dates for the acquisitions in our revenue from the Services segment. Payment terms for maintenance services are generally 30 days.</span></div><div style="margin-bottom:6pt;margin-top:6pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Energy Production Segment</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Revenue from energy contracts is recognized when electricity, heat, hot and/or chilled water is produced by our owned on-site cogeneration systems. Each month we bill the customer and recognize revenue for the various forms of energy delivered, based on meter readings which capture the quantity of the various forms of energy delivered in a given month, under a contractually defined formula which takes into account the current month's cost of energy from the local power utility. </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As the various forms of energy delivered by us under energy production contracts are simultaneously delivered and consumed by the customer, our performance obligation under these contracts is considered to be satisfied over time. We use an output method to measure progress towards completion of our performance obligation which results in the recognition of revenue on the basis of a direct measurement of the value to the customer of the services transferred to date relative to the remaining services promised under the contract. We use the practical expedient at ASC 606-10-55-18 of recognizing revenue in an amount equal to that amount to which we have the right to invoice the customer under the contract. Payment terms on invoices under these contracts are generally 30 days. </span></div><div style="margin-bottom:6pt;margin-top:6pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Contract Balances</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The timing of revenue recognition, billings and cash collections result in billed accounts receivable, unbilled revenue (contract assets) and deferred revenue, consisting of customer deposits and billings in excess of revenue recognized (contract liabilities) on the consolidated balance sheets.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We did not recognize any revenue during the year ended December&#160;31, 2024 that was included in the unbilled revenue receivable as of December&#160;31, 2024. </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Revenue recognized during the year ended December&#160;31, 2024 that was included in deferred revenue at the beginning of the period was $662,730.</span></div><div style="margin-bottom:6pt;margin-top:6pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Remaining Performance Obligations</span></div>Remaining performance obligations related to ASC 606 represent the aggregate transaction price allocated to performance obligations with an original contract term greater than one year, excluding certain maintenance contracts and all energy production contracts where a direct measurement of the value to the customer is used as a method of measuring progress towards completion of our performance obligation. Exclusion of these remaining performance obligations is due in part to the inability to quantify values based on unknown future levels of delivery and in some cases rates used to bill customers. Remaining performance obligations therefore consist of unsatisfied or partially satisfied performance obligations related to fixed price maintenance contracts and installation contracts.<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AdvertisingCostsPolicyTextBlock', window );">Advertising Costs</a></td>
<td class="text"><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Advertising Costs</span></div>We expense the costs of advertising as incurred.<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ResearchAndDevelopmentExpensePolicy', window );">Research and Development Costs</a></td>
<td class="text"><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Research and Development Costs</span></div>Research and development expenditures are expensed as incurred.<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy', window );">Stock-Based Compensation</a></td>
<td class="text"><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Stock-Based Compensation</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Stock-based compensation cost is measured at the grant date, based on the estimated fair value of the award, and is recognized as an expense in the statements of operations over the requisite service period.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The determination of the fair value of share-based payment awards is affected by our stock price.  For the awards issued prior to our being publicly traded, we considered the sales price of the common stock in private placements to unrelated third parties as a measure of the fair value of our common stock.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We utilize actual forfeitures when calculating the expense for the period. Stock-based compensation expense recognized is based on awards that are ultimately expected to vest.  We evaluate the assumptions used to value awards regularly and if factors change and different assumptions are employed, stock-based compensation expense may differ significantly from what has been recorded in the past.  If there are any modifications or cancellations of the underlying unvested securities, we may be required to accelerate, increase or cancel any remaining unearned stock-based compensation expense.</span></div><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock', window );">Recent Accounting Pronouncements</a></td>
<td class="text"><div style="margin-bottom:6pt;margin-top:6pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Significant New Accounting Standards Adopted this Period </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">New accounting standards adopted in the year ended December&#160;31, 2023.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Financial Instruments, Credit Losses (Topic 326)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. In June 2016, the Financial Accounting Standards Board issued ASU No. 2016-13, </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Financial Instruments, Credit Losses (Topic 326)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">, which was subsequently amended by ASUs 2018-19, 2019-04, 2019-05, 2019-11, and 2020-03. Topic 326 replaces the existing incurred loss impairment model with a methodology that incorporates all expected credit loss estimates, resulting in more timely recognition of losses. Under Topic 326, we are required to measure all expected credit losses for financial assets held at the reporting date based on historical experience, current conditions, and reasonable and supportable forecasts that affect the collectability of the reported financial assets. It also requires credit losses related to available-for-sale debt securities to be recorded through an allowance for credit losses. We adopted Topic 326 on January 1, 2023 on a modified retrospective basis. The adoption did not have a material effect on our consolidated financial statements. </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">New accounting standards adopted in the year ended December&#160;31, 2024.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Segment Reporting (Topic 280) - Improvements to Reportable Segment Disclosure</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">s. In November 2023, the Financial Accounting Standards Board issued ASU 2023-07, </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Segment Reporting (Topic 280) - Improvements to Reportable Segment Disclosures</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. The new standard requires enhanced disclosures about a public entity's reportable segments including more detailed information about a reportable segment's expenses. The amendments in this update apply to all public entities that are required to report segment information, and include those entities that have a single reportable segment. The amendments in this update are effective for fiscal years beginning after December 15, 2023, and interim periods within fiscal years beginning after December 15, 2024. Early adoption is permitted. We adopted Topic 280 on January 1, 2024. Retrospective application is </span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">required for all periods presented in the financial statements. The adoption of Topic 280 did not have a material effect on our consolidated financial statements, other than with respect to expanded disclosure.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Recently Issued Accounting Pronouncements</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Income Taxes (Topic 740) - Improvements to Income Tax Disclosure</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">s. In December 2023, the Financial Accounting Standards Board issued ASU 2023-09, </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Income Taxes (Topic 740) - Improvements to Income Tax Disclosures</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. ASU 2023-09 provides more transparency about income tax information through improvements to income tax disclosures primarily related to the rate reconciliation and income taxes paid information. The amendments in this update are effective for annual periods beginning after December 15, 2024. Early adoption is permitted. The adoption of Topic 740 will not have a material effect on our consolidated financial statements, other than with respect to expanded disclosure.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Compensation - Stock Compensation (Topic 718) - </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In March 2024, the Financial Accounting Standards Board Issued ASU 2024-01, </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Compensation - Stock Compensation (Topic 718)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. ASU 2024-01 addresses generally accepted accounting principles relating to profits interest awards and similar awards provided to employees or non-employees to align compensation with an entity's operating performance and provide the holders with the opportunity to participate in future profits and/or equity appreciation of the entity. Since profits interest holders only participate in future profits and/or equity appreciation and have no rights to the existing assets of the entity, a profits interest award should be accounted for as a share-based compensation arrangement (Topic 718) or similar to a cash bonus or profit-sharing arrangement (Topic 710). The amendments in this update apply to all entities that enter into share-based payment transactions and are effective for annual periods beginning after December 15, 2024 and interim periods for those annual periods. Early adoption is permitted for both interim and annual periods that have not yet been issued or made available for issuance. If adopted in an interim period, the Update should be adopted as of the beginning of the annual period that includes the interim period. The amendments can be applied retrospectively to all prior periods presented in the financial statements or prospectively to profits interest and similar awards granted or modified on or after the date the entity first applies the amendments. If applied retrospectively,  the entity is required to provide disclosures in paragraphs 250-10-50-1 through 50-3. If applied prospectively, the entity is required to disclose the nature and reason for the change in accounting principle. ASU 2024-01 may apply to Tecogen should we issue profits interest awards after December 15, 2024, adoption of which we believe will not have a material effect on our financial position or results of operation.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Codification Improvements &#8211; Amendments to Remove References to the Concepts Statements</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. In March 2024, the Financial Accounting Standards Board Issued ASU 2024-02, </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Codification Improvements &#8211; Amendments to Remove References to the Concepts Statements</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. ASU 2024-02 contains amendments to the Codification that remove references to various FASB Concept Statements, affecting a variety of Topics in the Codification and applies to all reporting entities. The amendments in this update are effective for public entities for fiscal years beginning after December 31, 2024. Early application of the amendments in this update are permitted for any fiscal year or interim period for which financial statements have not yet been issued or made available for issuance. If adopted in an interim period, the amendment must be adopted as of the beginning of the fiscal years that includes the interim period. An entity should apply the amendments prospectively to all new transactions recognized on or after the date that the entity first applies the amendments, or retrospectively to the beginning of the earliest comparative period presented in which the amendments were first applied, by adjusting the opening balance of retained earnings, or other appropriated components of equity or net assets, as of the beginning of the earliest comparative period presented. ASU 2024-02 will apply to Tecogen after December 15, 2024, adoption of which we believe will not have a material effect on our financial position or results of operation.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"> Income Statement &#8211; Reporting Comprehensive Income &#8211; Expense Disaggregation Disclosures (Subtopic 220-40). </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In November 2024, the Financial Accounting Standards Board Issued ASU 2024-03 </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Income Statement- Reporting Comprehensive Income &#8211; Expense Disaggregation Disclosures (Subtopic 220-40)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. This update is intended to improve disclosures about public entity&#8217;s expenses and will require more detailed information about types of expenses including inventory purchases, employee compensation, depreciation, amortization and depletion in commonly presented captions such as cost of sales, SG&amp;A and research and development. In addition, an entity will be required to include certain amounts that are already disclosed under GAAP in the same disclosure as the other disaggregation requirements; disclose a qualitative description of the amounts remaining in expense captions not separately disaggregated quantitatively; and, disclose the amount of selling expense and, in annual reporting periods, the entity&#8217;s definition of selling expenses. The amendments are effective for annual reporting periods beginning after December 15, 2026, and interim reporting periods beginning after December 15, 2027. Early adoption is permitted. The amendments should be applied prospectively to the financial statements after the effective date and retrospectively to any and all prior periods presented in the financial statements. ASU 2024-03 will apply to Tecogen after December 15, 2026, adoption of which will not have a material effect on our financial position or results of operation, but will require additional disclosure.</span></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_ContingentConsiderationArrangementsPolicyPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Contingent Consideration Arrangements, Policy</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_ContingentConsiderationArrangementsPolicyPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_PrinciplesOfConsolidationAndBasisOfPresentationPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for principles of consolidation and basis of presentation.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_PrinciplesOfConsolidationAndBasisOfPresentationPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types1:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccountingPoliciesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccountingPoliciesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AdvertisingCostsPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for advertising cost.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -SubTopic 35<br> -Topic 720<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483406/720-35-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AdvertisingCostsPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationsPolicy">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for completed business combinations (purchase method, acquisition method or combination of entities under common control). This accounting policy may include a general discussion of the purchase method or acquisition method of accounting (including for example, the treatment accorded contingent consideration, the identification of assets and liabilities, the purchase price allocation process, how the fair values of acquired assets and liabilities are determined) and the entity's specific application thereof. An entity that acquires another entity in a leveraged buyout transaction generally discloses the accounting policy followed by the acquiring entity in determining the basis used to value its interest in the acquired entity, and the rationale for that accounting policy.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 805<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 05<br> -Paragraph 4<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479515/805-10-05-4<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 805<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 05<br> -Paragraph 4<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479515/805-10-05-4<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 805<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 05<br> -Paragraph 4<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479515/805-10-05-4<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 805<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 05<br> -Paragraph 4<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479515/805-10-05-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationsPolicy</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CashAndCashEquivalentsPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482913/230-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CashAndCashEquivalentsPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ConcentrationRiskCreditRisk">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for credit risk.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 825<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478898/942-825-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)<br> -SubTopic 10<br> -Topic 275<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482861/275-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ConcentrationRiskCreditRisk</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerSharePolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for computing basic and diluted earnings or loss per share for each class of common stock and participating security. Addresses all significant policy factors, including any antidilutive items that have been excluded from the computation and takes into account stock dividends, splits and reverse splits that occur after the balance sheet date of the latest reporting period but before the issuance of the financial statements.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482662/260-10-50-1<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482662/260-10-50-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482662/260-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerSharePolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FairValueOfFinancialInstrumentsPolicy">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for determining the fair value of financial instruments.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -SubTopic 10<br> -Topic 825<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FairValueOfFinancialInstrumentsPolicy</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482548/350-20-55-24<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-2<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/350-20/tableOfContent<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ImpairmentOrDisposalOfLongLivedAssetsPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 360<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 5.CC)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480091/360-10-S99-2<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 05<br> -Paragraph 4<br> -SubTopic 10<br> -Topic 360<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482338/360-10-05-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ImpairmentOrDisposalOfLongLivedAssetsPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for income taxes, which may include its accounting policies for recognizing and measuring deferred tax assets and liabilities and related valuation allowances, recognizing investment tax credits, operating loss carryforwards, tax credit carryforwards, and other carryforwards, methodologies for determining its effective income tax rate and the characterization of interest and penalties in the financial statements.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 20<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-20<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 19<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-19<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 25<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482525/740-10-45-25<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-03(h)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479886/946-10-S99-3<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 17<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-17<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-9<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482525/740-10-45-28<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482765/220-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IntangibleAssetsFiniteLivedPolicy">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483426/235-10-50-4<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/350-30/tableOfContent<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 926<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483154/926-20-50-5<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 920<br> -SubTopic 350<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478609/920-350-50-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 920<br> -SubTopic 350<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478609/920-350-50-1<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 920<br> -SubTopic 350<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478609/920-350-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IntangibleAssetsFiniteLivedPolicy</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InventoryPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 330<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483080/330-10-50-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483489/210-10-50-1<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483426/235-10-50-4<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 912<br> -SubTopic 330<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478411/912-330-50-1<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 330<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/330/tableOfContent<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 330<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483080/330-10-50-4<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 6<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 270<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482989/270-10-45-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InventoryPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeLeasesPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for leasing arrangement entered into by lessee.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeLeasesPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PriorPeriodReclassificationAdjustmentDescription">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for reclassification affecting comparability of financial statement. Excludes amendment to accounting standards, other change in accounting principle, and correction of error.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 205<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483504/205-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PriorPeriodReclassificationAdjustmentDescription</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy 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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -SubTopic 10<br> -Topic 360<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482099/360-10-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(8)(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -SubTopic 360<br> -Topic 958<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477798/958-360-50-6<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)<br> -SubTopic 360<br> -Topic 958<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477798/958-360-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ResearchAndDevelopmentExpensePolicy">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for costs it has incurred (1) in a planned search or critical investigation aimed at discovery of new knowledge with the hope that such knowledge will be useful in developing a new product or service, a new process or technique, or in bringing about a significant improvement to an existing product or process; or (2) to translate research findings or other knowledge into a plan or design for a new product or process or for a significant improvement to an existing product or process.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 730<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 05<br> -Paragraph 1<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483044/730-10-05-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ResearchAndDevelopmentExpensePolicy</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueFromContractWithCustomerPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for revenue from contract with customer.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 17<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-17<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 19<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-19<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 18<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-18<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 18<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-18<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 20<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-20<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 20<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-20<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 20<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-20<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 20<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-20<br><br>Reference 9: http://www.xbrl.org/2003/role/exampleRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (e)<br> -SubTopic 10<br> -Topic 235<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483426/235-10-50-4<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Topic 606<br> -Publisher FASB<br> -URI https://asc.fasb.org/606/tableOfContent<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueFromContractWithCustomerPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SegmentReportingPolicyPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for segment reporting.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 41<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-41<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 47<br> -Subparagraph (bb)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-47<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 29<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-29<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 54<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-54<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 36<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-36<br><br>Reference 6: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 47<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-47<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 29<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-29<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 29<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-29<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 29<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-29<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 29<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-29<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 29<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-29<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 29<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-29<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SegmentReportingPolicyPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for award under share-based payment arrangement. Includes, but is not limited to, methodology and assumption used in measuring cost.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(v)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 14.C.Q3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479830/718-10-S99-1<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 14.D.1.Q5)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479830/718-10-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 14.D.3.Q2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479830/718-10-S99-1<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 14.D.2.Q6)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479830/718-10-S99-1<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/718/tableOfContent<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_TradeAndOtherAccountsReceivablePolicy">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for accounts receivable.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 310<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481962/310-10-50-6<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 310<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481962/310-10-50-2<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 310<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481962/310-10-50-2<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 310<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481569/310-20-50-1<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 310<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 15<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481962/310-10-50-15<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 310<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11B<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481962/310-10-50-11B<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_TradeAndOtherAccountsReceivablePolicy</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_UseOfEstimates">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for the use of estimates in the preparation of financial statements in conformity with generally accepted accounting principles.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482861/275-10-50-9<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482861/275-10-50-4<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -SubTopic 10<br> -Topic 275<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482861/275-10-50-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -SubTopic 10<br> -Topic 275<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482861/275-10-50-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -SubTopic 10<br> -Topic 275<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482861/275-10-50-11<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -SubTopic 10<br> -Topic 275<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482861/275-10-50-12<br><br>Reference 7: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482861/275-10-50-8<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_UseOfEstimates</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>46
<FILENAME>R34.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Summary of significant accounting policies Summary of Significant Accounting Policies (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccountingPoliciesAbstract', window );"><strong>Accounting Policies [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisaggregationOfRevenueTableTextBlock', window );">Disaggregation of Revenue</a></td>
<td class="text"><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table further disaggregates our revenue by major source by segment for the years ended December&#160;31, 2024 and 2023.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:center;text-indent:36pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:401.25pt"><tr><td style="width:1.0pt"></td><td style="width:193.00pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:1.75pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:97.75pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:1.00pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:97.75pt"></td><td style="width:1.0pt"></td></tr><tr style="height:14pt"><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="9" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Years Ended</span></td></tr><tr style="height:14pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2024</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2023</span></td></tr><tr style="height:14pt"><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Products:</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"></td></tr><tr style="height:14pt"><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Cogeneration</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,677,930&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,761,667&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:14pt"><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Chiller</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,647,374&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">5,303,978&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:14pt"><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Engineered Accessories</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">118,692&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">794,301&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:14pt"><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total Products Revenue</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4,443,996&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">8,859,946&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr style="height:14pt"><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Services</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">16,074,870&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">14,523,054&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:14pt"><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Energy production</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,100,670&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,756,419&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:14pt"><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total revenue</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">22,619,536&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">25,139,419&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccountingPoliciesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccountingPoliciesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisaggregationOfRevenueTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of disaggregation of revenue into categories depicting how nature, amount, timing, and uncertainty of revenue and cash flows are affected by economic factor.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-5<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisaggregationOfRevenueTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>47
<FILENAME>R35.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Loss per common share (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EarningsPerShareAbstract', window );"><strong>Earnings Per Share [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock', window );">Schedule of Income (Loss) Per Common Share, Basic and Diluted</a></td>
<td class="text"><div style="margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Basic and diluted loss per common share for the years ended</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%"> </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">December&#160;31, 2024 and 2023, respectively, was as follows:</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:center;text-indent:36pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:85.964%"><tr><td style="width:1.0%"></td><td style="width:54.852%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:20.498%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.650%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:20.500%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Years Ended</span></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2024</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2023</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Numerator:</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Net loss attributable to stockholders</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(4,760,238)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(4,598,108)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Denominator:</span></td><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Weighted average shares outstanding - Basic</span></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">24,861,190</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">24,850,261</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Effect of dilutive securities:</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Stock options</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Weighted average shares outstanding - Diluted</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">24,861,190&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">24,850,261&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Basic loss per share</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(0.19)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(0.19)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Diluted loss per share</span></td><td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(0.19)</span></td><td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(0.19)</span></td><td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:14pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Anti-dilutive shares underlying stock options outstanding</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,222,516&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,757,676&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr></table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerShareAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerShareAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482662/260-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>48
<FILENAME>R36.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Aegis Contract and Related Asset Acquisition (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationAndAssetAcquisitionAbstract', window );"><strong>Business Combination, Asset Acquisition, and Joint Venture Formation [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AssetAcquisitionTableTextBlock', window );">Asset Acquisition</a></td>
<td class="text"><div style="margin-bottom:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes the consideration paid for the Aegis acquisition and the fair value of assets acquired and contract-related liabilities assumed as of the acquisition date:</span></div><div style="margin-bottom:6pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.561%"><tr><td style="width:1.0%"></td><td style="width:44.568%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.822%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.387%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.996%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.387%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.675%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.387%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.678%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="21" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Acquisitions</span></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">April 1, 2023</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">February 1, 2024</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">May 1, 2024</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Total</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Consideration Paid:</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Cash</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">170,000&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">170,000&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Accounts receivable credit issued</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">300,000&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">300,000&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Account payable due to Aegis</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">91,048&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">91,048&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Contingent consideration</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,256,656&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">101,641&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">171,260&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,529,557&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total fair value of consideration transferred</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,817,704&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">101,641&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">171,260&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,090,605&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:12pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Identifiable assets acquired and liabilities assumed:</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Assets acquired</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Property, plant and equipment</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">170,000&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">170,000&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Inventory</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">391,048&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">391,048&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Identifiable intangible asset - customer contracts</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,772,659&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">184,587&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">267,877&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,225,123&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,333,707&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">184,587&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">267,877&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,786,171&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Acquired contract-related liabilities assumed</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Deferred maintenance reserve</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(853,271)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(853,271)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Net identifiable assets acquired</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,480,436&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">184,587&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">267,877&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,932,900&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Excess of cost over fair value of net assets acquired (Goodwill)</span></td><td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">337,268&#160;</span></td><td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(82,946)</span></td><td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(96,617)</span></td><td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">157,705&#160;</span></td><td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes the contract-related liabilities assumed as of December&#160;31, 2024:</span></div><div style="margin-bottom:6pt;text-align:center;text-indent:36pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:69.736%"><tr><td style="width:1.0%"></td><td style="width:47.746%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:24.057%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.638%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:24.059%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2024</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2023</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Acquisition liabilities, current</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Contingent consideration</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">328,350&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">200,639&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Deferred maintenance reserve</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">574,202&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">644,724&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">902,552&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">845,363&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Acquisition liabilities, long-term</span></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Contingent consideration</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,008,760&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">994,743&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Deferred maintenance reserve</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">187,036&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,008,760&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,181,779&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AssetAcquisitionTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of asset acquisition.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 805<br> -SubTopic 50<br> -Name Accounting Standards Codification<br> -Section 15<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480123/805-50-15-3<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AssetAcquisitionTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationAndAssetAcquisitionAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationAndAssetAcquisitionAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>49
<FILENAME>R37.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Inventory (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InventoryDisclosureAbstract', window );"><strong>Inventory Disclosure [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfInventoryCurrentTableTextBlock', window );">Summary of Inventory</a></td>
<td class="text"><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Inventory at December&#160;31, 2024 and 2023 consisted of the following.</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:center;text-indent:36pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:57.748%"><tr><td style="width:1.0%"></td><td style="width:53.583%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:20.925%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:1.065%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:20.927%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 1.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Raw materials, net</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">8,525,879&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">8,803,054&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Work-in-process</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">930,769&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">798,522&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Finished goods, net</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">177,357&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">951,843&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">9,634,005&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">10,553,419&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InventoryDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InventoryDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfInventoryCurrentTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6)(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6)(c))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483489/210-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfInventoryCurrentTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>50
<FILENAME>R38.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Intangible assets and liabilities other than goodwill (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IntangibleAssetsNetExcludingGoodwillAbstract', window );"><strong>Intangible Assets, Net (Excluding Goodwill) [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock', window );">Schedule of Finite-Lived Intangible Assets</a></td>
<td class="text"><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Intangible assets and liabilities at December&#160;31, 2024 and 2023 consist of the following:</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span><br/></span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:center;text-indent:36pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:501.00pt"><tr><td style="width:1.0pt"></td><td style="width:132.25pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:1.75pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:51.25pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:1.75pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:63.25pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:1.75pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:51.25pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:1.75pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:51.25pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:1.75pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:63.25pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:1.75pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:52.00pt"></td><td style="width:1.0pt"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="15" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2024</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="15" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2023</span></td></tr><tr style="height:23pt"><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Intangible assets</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Cost</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Accumulated Amortization</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Net</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Cost</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Accumulated Amortization</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Net</span></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;border-top:2pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Product certifications</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">777,465&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(709,855)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">67,610&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">777,465&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(658,676)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">118,789&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Patents</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">888,910&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(584,493)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">304,417&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">888,910&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(496,807)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">392,103&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Developed technology</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">240,000&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(188,000)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">52,000&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">240,000&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(172,000)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">68,000&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Trademarks</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">26,896&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">26,896&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">26,896&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">26,896&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">In process R&amp;D</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">263,936&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(141,394)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">122,542&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">263,936&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(103,689)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">160,247&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Favorable contract assets</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">384,465&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(379,839)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4,626&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">384,465&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(376,139)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">8,326&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Customer contract</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,225,123&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(290,025)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,935,098&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,772,659&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(110,791)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,661,868&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4,806,795&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(2,293,606)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,513,189&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4,354,331&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(1,918,102)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,436,229&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Intangible liability</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;border-top:2pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Unfavorable contract liability</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,618,168&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(2,195,329)</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">422,839&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,618,168&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(2,019,122)</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">599,046&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock', window );">Schedule of Estimated Future Amortization Expense</a></td>
<td class="text">Aggregate future amortization over the next five years is estimated to be as follows:<div style="margin-bottom:6pt;margin-top:5pt;text-align:center;text-indent:36pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:404.25pt"><tr><td style="width:1.0pt"></td><td style="width:193.75pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:3.25pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:63.25pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:1.75pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:63.25pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:1.75pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:63.25pt"></td><td style="width:1.0pt"></td></tr><tr style="height:33pt"><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Non-contract related intangibles</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Contract related intangibles</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Total</span></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2025</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">169,754&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">79,042&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">248,796&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2026</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">168,244&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">124,483&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">292,727&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2027</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">167,936&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">131,199&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">299,135&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2028</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">23,278&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">137,208&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">160,486&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2029</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">5,786&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">137,208&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">142,994&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Thereafter</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">11,571&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">907,745&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">919,316&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="background-color:#cceeff;border-bottom:3pt double #000000;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">546,569&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,516,885&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,063,454&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IntangibleAssetsNetExcludingGoodwillAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IntangibleAssetsNetExcludingGoodwillAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of assets, excluding financial assets and goodwill, lacking physical substance with a finite life, by either major class or business segment.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 40<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482640/350-30-55-40<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the amount of amortization expense expected to be recorded in succeeding fiscal years for finite-lived intangible assets.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 40<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482640/350-30-55-40<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>51
<FILENAME>R39.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Property, plant and equipment (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentAbstract', window );"><strong>Property, Plant and Equipment [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentTextBlock', window );">Summary of Property, Plant and Equipment</a></td>
<td class="text"><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Property, plant and equipment at December&#160;31, 2024 and 2023 consisted of the following:</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:center;text-indent:36pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:83.918%"><tr><td style="width:1.0%"></td><td style="width:50.293%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.450%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.671%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:14.056%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.671%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:14.059%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Estimated&#160;Useful<br/>Life&#160;(in&#160;Years)</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Energy systems</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">10 - 15 years</span></div></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,810,232&#160;</span></td><td style="border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,810,232&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Machinery and equipment</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">5 - 7 years</span></div></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,598,538&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,744,596&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Furniture and fixtures</span></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">5 years</span></div></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">224,868&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">212,963&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Computer software</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3 - 5 years</span></div></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">192,865&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">192,865&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Leasehold improvements</span></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">*</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">906,739&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">466,789&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">5,733,242&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">5,427,445&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Less - accumulated depreciation and amortization</span></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(3,995,206)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(4,264,868)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Net property, plant and equipment</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,738,036&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,162,577&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><div style="margin-bottom:6pt;margin-top:6pt;text-indent:72pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">* Lesser of estimated useful life of asset or lease term</span></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -SubTopic 10<br> -Topic 360<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482099/360-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>52
<FILENAME>R40.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Goodwill (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract', window );"><strong>Goodwill and Intangible Assets Disclosure [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfGoodwillTextBlock', window );">Schedule of Goodwill</a></td>
<td class="text"><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Changes in the carrying amount of goodwill by reportable segment during the years ended December&#160;31, 2024 and 2023  was as follows:</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:center;text-indent:36pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:442.50pt"><tr><td style="width:1.0pt"></td><td style="width:148.00pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:67.75pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:1.75pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:67.75pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:4.75pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:67.75pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:1.00pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:67.75pt"></td><td style="width:1.0pt"></td></tr><tr style="height:24pt"><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Products</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Services</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Energy Production</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Total</span></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Balance at December 31, 2022</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">40,870&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,365,286&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,406,156&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Impairment</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Acquisition</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">337,268&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">337,268&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Balance at December 31, 2023</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">40,870&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">337,268&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,365,286&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,743,424&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Impairment</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(217,295)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(217,295)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Acquisition - adjustment</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(179,563)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(179,563)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Balance at December 31, 2024</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">40,870&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">157,705&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,147,991&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,346,566&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfGoodwillTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of goodwill by reportable segment and in total which includes a rollforward schedule.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482548/350-20-55-24<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (h)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1<br><br>Reference 5: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1<br><br>Reference 6: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1<br><br>Reference 7: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1<br><br>Reference 8: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1<br><br>Reference 9: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1<br><br>Reference 10: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1<br><br>Reference 11: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1A<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1A<br><br>Reference 12: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfGoodwillTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>53
<FILENAME>R41.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Product warranty (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GuaranteesAbstract', window );"><strong>Guarantees [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfProductWarrantyLiabilityTableTextBlock', window );">Schedule of Product Warranty Reserve</a></td>
<td class="text"><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Changes in our warranty reserve were as follows:</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:center;text-indent:36pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:52.339%"><tr><td style="width:1.0%"></td><td style="width:74.598%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:23.202%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Warranty reserve, December 31, 2022</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">137,800&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Warranty provision for units sold</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">286,391&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Costs of warranty incurred</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(282,191)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Warranty reserve, December 31, 2023</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">142,000&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Warranty provision for units sold</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">257,898&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Costs of warranty incurred</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(276,898)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Warranty reserve, December 31, 2024</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">123,000&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GuaranteesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GuaranteesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfProductWarrantyLiabilityTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 460<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482425/460-10-50-8<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfProductWarrantyLiabilityTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>54
<FILENAME>R42.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Leases (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccountingPoliciesAbstract', window );"><strong>Accounting Policies [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LeaseCostTableTextBlock', window );">Supplemental Information Related to Leases</a></td>
<td class="text"><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Supplemental information related to operating leases for the years ended December&#160;31, 2024 and 2023 was as follows:</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:center;text-indent:36pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:486.00pt"><tr><td style="width:1.0pt"></td><td style="width:298.00pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:1.00pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:88.00pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:1.00pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:88.00pt"></td><td style="width:1.0pt"></td></tr><tr style="height:15pt"><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2024</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2023</span></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Cash paid for amounts included in the measurement of operating lease liabilities</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">727,418&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">743,849&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Right-of-use assets obtained in exchange for operating lease liabilities</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,650,994&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">148,093&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Weighted-average remaining lease term - operating leases</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4.1 Years</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4.6 Years</span></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Weighted-average discount rate - operating leases</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">7.5&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">6.4&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr></table></div><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Supplemental information for finance leases for the year ended December&#160;31, 2024 and 2023 was as follows:</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:center;text-indent:36pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:94.736%"><tr><td style="width:1.0%"></td><td style="width:60.628%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.417%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:17.418%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.417%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:17.420%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2024</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2023</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Cash paid for amounts included in the measurement of finance lease liabilities</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">88,845&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="6" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Right-of-use assets obtained in exchange for finance lease liabilities</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">295,085&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">200,187&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="6" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Weighted-average remaining lease term - finance leases</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4.3 years</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">5.0 years</span></td></tr><tr><td colspan="6" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Weighted-average discount rate - finance leases</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">10.0&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">10.4&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr></table></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_AssetsAndLiabilitiesLesseeTableTextBlock', window );">Supplemental Balance Sheet Information</a></td>
<td class="text"><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Supplemental balance sheet information related to operating leases for the years ended December&#160;31, 2024 and 2023 was as follows:</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:center;text-indent:36pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:94.736%"><tr><td style="width:1.0%"></td><td style="width:60.628%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.417%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:17.418%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.417%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:17.420%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2024</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2023</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Operating leases</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Right-of-use assets</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,730,358&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">743,096&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Operating lease liability, current</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">430,382&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">248,933&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Operating lease liability, long-term</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,341,789&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">523,660&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total operating lease liability</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,772,171&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">772,593&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><div style="margin-bottom:6pt;margin-top:6pt;padding-left:13.5pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Supplemental balance sheet information related to finance leases for the year ended December&#160;31, 2024 and 2023 is as follows:</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:94.736%"><tr><td style="width:1.0%"></td><td style="width:60.628%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.417%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:17.418%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.417%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:17.420%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2024</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2023</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Finance leases</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Right-of-use assets - motor vehicles</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">425,563&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">200,187&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Right-of-use asset - boiler</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">26,827&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt 0 7pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">452,390&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">200,187&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;padding:0 1pt 0 7pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Finance lease liability, current</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">85,646&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">40,540&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Finance lease liability, long-term</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">325,235&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">159,647&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total finance lease liability</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">410,881&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">200,187&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock', window );">Future Minimum Lease Commitments</a></td>
<td class="text"><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Future minimum lease commitments under non-cancellable operating and finance leases as of December&#160;31, 2024 were as follows:</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:center;text-indent:36pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:429.00pt"><tr><td style="width:1.0pt"></td><td style="width:148.00pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:1.00pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:88.00pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:1.00pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:88.00pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:1.00pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:88.00pt"></td><td style="width:1.0pt"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Operating Leases</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Finance Leases</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Total</span></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2025</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">542,066&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">122,460&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">664,526&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2026</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">538,297&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">113,845&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">652,142&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2027</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">442,471&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">113,845&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">556,316&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2028</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">395,827&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">113,845&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">509,672&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2029</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">55,435&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">43,669&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">99,104&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Thereafter</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">61,569&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">61,569&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total lease payments</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,035,665&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">507,664&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,543,329&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Less: imputed interest</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">263,494&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">96,783&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">360,277&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,772,171&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">410,881&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,183,052&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_AssetsAndLiabilitiesLesseeTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Assets and Liabilities, Lessee</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_AssetsAndLiabilitiesLesseeTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types1:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccountingPoliciesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccountingPoliciesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LeaseCostTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LeaseCostTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>55
<FILENAME>R43.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Stockholders' equity (Tables) - Tecogen<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Share-based Compensation Arrangement by Share-based Payment Award [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock', window );">Schedule of Stock Option Activity</a></td>
<td class="text"><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Stock option activity for the year ended December&#160;31, 2024 was as follows:</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:center"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:96.491%"><tr><td style="width:1.0%"></td><td style="width:35.415%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:9.960%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.557%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:6.172%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:2.224%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:6.930%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.557%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:8.445%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.557%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:9.960%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.557%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:9.966%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Common&#160;Stock&#160;Options</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Number&#160;of<br/>Options</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="9" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Exercise<br/>Price<br/>Per<br/>Share</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Weighted<br/>Average<br/>Exercise<br/>Price</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Weighted<br/>Average<br/>Remaining<br/>Life</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Aggregate<br/>Intrinsic<br/>Value</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Outstanding, December 31, 2023</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3,638,122&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">0.71&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">10.33&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1.49&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">6.70 years</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">127,811&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Granted</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">125,000&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="9" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$0.77</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">0.77&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Exercised</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(100,000)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="9" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$0.71</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">0.71&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">75,500&#160;</span></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Canceled and forfeited</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(910,160)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">0.71&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">10.33&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2.54&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Outstanding, December 31, 2024</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,752,962&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">0.71&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3.93&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1.14&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">6.70 years</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,348,684&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Exercisable, December 31, 2024</span></td><td colspan="2" style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,839,212&#160;</span></td><td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1.25&#160;</span></td><td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">838,184&#160;</span></td><td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Vested and expected to vest, December 31, 2024</span></td><td colspan="2" style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,615,900&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1.15&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,272,109&#160;</span></td><td style="border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock', window );">Summary of Weighted Average Assumptions Used in Black-Scholes Option Pricing</a></td>
<td class="text"><div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The weighted average assumptions used in the Black-Scholes option pricing model for options granted in 2024 and 2023 are as follows:</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:center;text-indent:36pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:59.795%"><tr><td style="width:1.0%"></td><td style="width:47.555%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:1.022%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:23.349%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:1.022%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:23.352%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Stock option award assumptions:</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Expected dividend yield</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Expected life</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">6.25 years</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">6.25 years</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Risk-free interest rate</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4.28%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4.70%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Expected volatility</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">40.17%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">38.49%</span></td></tr></table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure for stock option plans. Includes, but is not limited to, outstanding awards at beginning and end of year, grants, exercises, forfeitures, and weighted-average grant date fair value.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)<br> -SubTopic 10<br> -Topic 718<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)<br> -SubTopic 10<br> -Topic 718<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the significant assumptions used during the year to estimate the fair value of stock options, including, but not limited to: (a) expected term of share options and similar instruments, (b) expected volatility of the entity's shares, (c) expected dividends, (d) risk-free rate(s), and (e) discount for post-vesting restrictions.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 718<br> -SubTopic 10<br> -Subparagraph (f)(2)<br> -Name Accounting Standards Codification<br> -Paragraph 2<br> -Section 50<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 35<br> -Paragraph 1D<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480483/718-10-35-1D<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 35<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480483/718-10-35-3<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(01)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(02)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(03)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(04)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(01)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(02)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(03)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(iii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(iv)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(v)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_ConsolidatedEntitiesAxis=srt_ParentCompanyMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_ConsolidatedEntitiesAxis=srt_ParentCompanyMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>56
<FILENAME>R44.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Fair Value Measurements (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueDisclosuresAbstract', window );"><strong>Fair Value Disclosures [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueAssetsMeasuredOnRecurringBasisTextBlock', window );">Schedule of Fair Value, Assets Measured on Recurring Basis</a></td>
<td class="text"><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table presents the asset reported in the consolidated balance sheet measured at its fair value on a recurring basis as of December&#160;31, 2024 and 2023 by level within the fair value hierarchy:</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:center;text-indent:36pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:503.25pt"><tr><td style="width:1.0pt"></td><td style="width:160.75pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:63.25pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:1.75pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:61.00pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:1.75pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:63.25pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:1.75pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:63.25pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:3.25pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:63.25pt"></td><td style="width:1.0pt"></td></tr><tr style="height:44pt"><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Quoted prices in active markets for identical assets</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Significant other observable inputs</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Significant unobservable inputs</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td></tr><tr style="height:21pt"><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Total</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Level 1</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Level 2</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Level 3</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Unrealized gain (loss)</span></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%;text-decoration:underline">December 31, 2024</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Recurring fair value measurements</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;&#160;&#160;&#160;&#160;Available-for-sale equity securities</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;EuroSite Power Inc.</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">93,744&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">93,744&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:23pt"><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total recurring fair value measurements</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">93,744&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">93,744&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%;text-decoration:underline">December 31, 2023</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Recurring fair value measurements</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;&#160;&#160;&#160;&#160;Available-for-sale equity securities</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;EuroSite Power Inc.</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">93,744&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">93,744&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:23pt"><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total recurring fair value measurements</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">93,744&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">93,744&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes changes in Level 2 assets which are comprised of marketable equity securities for the years ended December&#160;31, 2024 and 2023:</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span><br/></span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:center;text-indent:36pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:63.011%"><tr><td style="width:1.0%"></td><td style="width:66.881%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:30.919%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Fair value at December 31, 2022</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">93,744&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Unrealized gain</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Fair value at December 31, 2023</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">93,744&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Fair value at December 31, 2023</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">93,744&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Unrealized gain</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Fair value at December 31, 2024</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">93,744&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table presents the liability reported in the consolidated balance sheet measured at its fair value on a recurring basis as of December&#160;31, 2024 and 2023 by level within the fair value hierarchy:</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:center;text-indent:36pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:92.982%"><tr><td style="width:1.0%"></td><td style="width:27.988%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.579%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.428%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.579%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.428%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.579%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.428%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.579%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.428%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.584%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Quoted prices in active markets for identical assets</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Significant other observable inputs</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Significant unobservable inputs</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Level 1</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Level 2</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Level 3</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total gains (losses)</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%;text-decoration:underline">December 31, 2024</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Recurring fair value measurements</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Contingent contract consideration</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Current</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">328,350&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">328,350&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Long-term</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,008,760&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,008,760&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total recurring fair value measurements</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,337,110&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,337,110&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:12pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%;text-decoration:underline">December 31, 2023</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Recurring fair value measurements</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Contingent contract consideration</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Current</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">200,639&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">200,639&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Long-term</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">994,743&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">994,743&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total recurring fair value measurements</span></td><td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,195,382&#160;</span></td><td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,195,382&#160;</span></td><td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FairValueAssetsMeasuredOnRecurringBasisTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of assets, including [financial] instruments measured at fair value that are classified in stockholders' equity, if any, by class that are measured at fair value on a recurring basis. The disclosures contemplated herein include the fair value measurements at the reporting date by the level within the fair value hierarchy in which the fair value measurements in their entirety fall, segregating fair value measurements using quoted prices in active markets for identical assets (Level 1), significant other observable inputs (Level 2), and significant unobservable inputs (Level 3).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FairValueAssetsMeasuredOnRecurringBasisTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FairValueDisclosuresAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FairValueDisclosuresAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>57
<FILENAME>R45.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Segments (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SegmentReportingAbstract', window );"><strong>Segment Reporting [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock', window );">Schedule of Infomration by Reportable Segment</a></td>
<td class="text"><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table presents information by reportable segment for the years ended December&#160;31, 2024 and 2023:</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:center;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> </span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:534.00pt"><tr><td style="width:1.0pt"></td><td style="width:171.25pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:1.00pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:66.25pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:1.75pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:66.25pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:1.75pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:66.25pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:1.75pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:66.25pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:3.25pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:66.25pt"></td><td style="width:1.0pt"></td></tr><tr style="height:30pt"><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Products</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Services</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Energy Production</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Corporate</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Total</span></td></tr><tr style="height:12pt"><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year ended December 31, 2024</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Revenues</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4,443,996&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">16,074,870&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,100,670&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">22,619,536&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Cost of sales</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3,014,655&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">8,432,876&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,301,832&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">12,749,363&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Gross profit</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,429,341&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">7,641,994&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">798,838&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">9,870,173&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Operating expenses</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,947,426&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">6,625,965&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">319,514&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">5,511,355&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">14,404,260&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Loss (profit) from operations</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(518,085)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,016,029&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">479,324&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(5,511,355)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(4,534,087)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Identifiable assets</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">9,487,422&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">11,695,370&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,855,386&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">7,054,081&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">31,092,259&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year ended December 31, 2023</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Revenues</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">8,859,946&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">14,523,054&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,756,419&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">25,139,419&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Cost of sales</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">5,923,096&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">7,909,202&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,105,503&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">14,937,801&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Gross profit</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,936,850&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">6,613,852&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">650,916&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">10,201,618&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Operating expenses</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,429,400&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">6,992,221&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">66,190&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">6,127,419&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">14,615,230&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Loss (profit) from operations</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,507,450&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(378,369)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">584,726&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(6,127,419)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(4,413,612)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Identifiable assets</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">8,990,275&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">12,802,651&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3,269,013&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,730,690&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">27,792,629&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the profit or loss and total assets for each reportable segment. An entity discloses certain information on each reportable segment if the amounts (a) are included in the measure of segment profit or loss reviewed by the chief operating decision maker or (b) are otherwise regularly provided to the chief operating decision maker, even if not included in that measure of segment profit or loss.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 25<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-25<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-30<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SegmentReportingAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SegmentReportingAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>58
<FILENAME>R46.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Income taxes (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxDisclosureAbstract', window );"><strong>Income Tax Disclosure [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock', window );">Reconciliation of Federal Statutory Income Tax Provision To Company's Actual Provision</a></td>
<td class="text"><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">A reconciliation of the federal statutory income tax provision to our actual provision for the years ended December&#160;31, 2024 and 2023 is as follows:</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:center;text-indent:36pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:81.286%"><tr><td style="width:1.0%"></td><td style="width:5.914%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:58.792%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.699%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:14.547%"></td><td style="width:0.1%"></td><td colspan="3" style="display:none"></td><td style="width:0.1%"></td><td style="width:0.699%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:14.549%"></td><td style="width:0.1%"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">&#160;</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="display:none"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="6" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Pre-tax book income (loss)</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(4,651,205)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(4,490,665)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="6" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Expected tax at 21% </span></div></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(976,753)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(943,040)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td></tr><tr style="height:9pt"><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="display:none"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="6" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Permanent differences:</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="display:none"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Goodwill impairment</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">45,632&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Intangible amortization </span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(37,003)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(46,373)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Other</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">5,169&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">6,474&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td></tr><tr style="height:9pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="display:none"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="6" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">State taxes:</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="display:none"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Current</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">22,565&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">32,491&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Deferred</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(234,928)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(264,759)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td></tr><tr style="height:9pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="display:none"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="6" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Other items:</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="display:none"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Expired net operating losses</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">324,799&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Federal research and development credits</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(84,592)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Deferred tax past year true-ups</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(91,289)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(63,440)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Change in valuation allowance</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">920,794&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">980,342&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Capitalized research and development expenses</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">334,120&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Other</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">43,579&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">81,268&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="6" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Income tax provision</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">22,565&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">32,491&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td></tr></table></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock', window );">Schedule of Deferred Tax Assets</a></td>
<td class="text"><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The components of net deferred tax assets recognized in the accompanying consolidated balance sheets at December&#160;31, 2024 and 2023 are as follows:</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:center;text-indent:36pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:80.555%"><tr><td style="width:1.0%"></td><td style="width:5.978%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:59.335%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:14.689%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.707%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:14.691%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Net operating loss carryforwards</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">12,025,000&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">10,840,000&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">R&amp;D and ITC credit carryforwards</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">396,000&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">403,000&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Accrued expenses and other</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">267,000&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">381,000&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Intangibles</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">370,000&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">499,000&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Leases</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">8,000&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Accounts receivable</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">76,000&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">39,000&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Stock options</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">486,000&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">450,000&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Inventory</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">279,000&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">427,000&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Property, plant and equipment</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">578,000&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">650,000&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Other</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">464,000&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">323,000&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Deferred tax assets</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">14,941,000&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">14,020,000&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Valuation allowance</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(14,941,000)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(14,020,000)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Deferred tax assets, net</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the components of net deferred tax asset or liability recognized in an entity's statement of financial position, including the following: the total of all deferred tax liabilities, the total of all deferred tax assets, the total valuation allowance recognized for deferred tax assets.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the reconciliation using percentage or dollar amounts of the reported amount of income tax expense attributable to continuing operations for the year to the amount of income tax expense that would result from applying domestic federal statutory tax rates to pretax income from continuing operations.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 231<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482663/740-10-55-231<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12A<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12A<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>59
<FILENAME>R47.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Nature of business and operations (Details)<br></strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th">
<div>Dec. 31, 2024 </div>
<div>USD ($) </div>
<div>segment</div>
</th>
<th class="th">
<div>Dec. 31, 2023 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Oct. 10, 2023 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Oct. 09, 2023 </div>
<div>USD ($)</div>
</th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsLineItems', window );"><strong>Finite-Lived Intangible Assets [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NumberOfOperatingSegments', window );">Number of operating segments | segment</a></td>
<td class="nump">3<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashAndCashEquivalentsAtCarryingValue', window );">Cash and cash equivalents</a></td>
<td class="nump">$ 5,405,233<span></span>
</td>
<td class="nump">$ 1,351,270<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect', window );">Decrease in cash and cash equivalents</a></td>
<td class="nump">4,053,963<span></span>
</td>
<td class="num">(562,699)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetCashProvidedByUsedInOperatingActivities', window );">Cash used in operating activities</a></td>
<td class="nump">4,060,547<span></span>
</td>
<td class="num">(817,810)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingIncomeLoss', window );">Loss from operations</a></td>
<td class="num">(4,534,087)<span></span>
</td>
<td class="num">(4,413,612)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RetainedEarningsAccumulatedDeficit', window );">Accumulated deficit</a></td>
<td class="num">(47,639,894)<span></span>
</td>
<td class="num">(42,879,656)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_WorkingCapitalNet', window );">Working capital</a></td>
<td class="nump">5,329,650<span></span>
</td>
<td class="nump">9,822,546<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_IncreaseDecreaseInWorkingCapital', window );">Decrease in working capital</a></td>
<td class="num">(4,492,896)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsNet', window );">Intangible assets, net</a></td>
<td class="nump">2,513,189<span></span>
</td>
<td class="nump">2,436,230<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NotesPayable', window );">Related party notes payable</a></td>
<td class="nump">1,548,872<span></span>
</td>
<td class="nump">$ 505,505<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_Backlog', window );">Backlog</a></td>
<td class="nump">12,336,248<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_IncreaseDecreaseInBacklog', window );">Increase in backlog</a></td>
<td class="nump">$ 4,948,103<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis=us-gaap_RelatedPartyMember', window );">Related Party | John N. Hatsopoulos and Earl R. Lewis, III</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsLineItems', window );"><strong>Finite-Lived Intangible Assets [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NotesPayable', window );">Related party notes payable</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 1,000,000<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis=us-gaap_RelatedPartyMember', window );">Related Party | Earl R. Lewis, III</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsLineItems', window );"><strong>Finite-Lived Intangible Assets [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NotesPayable', window );">Related party notes payable</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 500,000<span></span>
</td>
<td class="nump">$ 500,000<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_Backlog">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Backlog</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_Backlog</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_IncreaseDecreaseInBacklog">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Increase (Decrease) In Backlog</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_IncreaseDecreaseInBacklog</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_IncreaseDecreaseInWorkingCapital">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Increase (Decrease) in Working Capital</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_IncreaseDecreaseInWorkingCapital</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_WorkingCapitalNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Working Capital, Net</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_WorkingCapitalNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CashAndCashEquivalentsAtCarryingValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483467/210-10-45-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CashAndCashEquivalentsAtCarryingValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-24<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -SubTopic 230<br> -Topic 830<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477401/830-230-45-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 40<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482640/350-30-55-40<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-2<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-2<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482686/350-30-45-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-2<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-3<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 985<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481283/985-20-50-2<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 926<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483154/926-20-50-5<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount after amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 926<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483154/926-20-50-5<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetCashProvidedByUsedInOperatingActivities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-24<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 25<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-25<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetCashProvidedByUsedInOperatingActivities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NotesPayable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Including the current and noncurrent portions, aggregate carrying amount of all types of notes payable, as of the balance sheet date, with initial maturities beyond one year or beyond the normal operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(22))<br> -SubTopic 10<br> -Topic 210<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(16))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478546/942-210-S99-1<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(16)(a)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-1<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(17))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NotesPayable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NumberOfOperatingSegments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of operating segments. An operating segment is a component of an enterprise: (a) that engages in business activities from which it may earn revenues and incur expenses (including revenues and expenses relating to transactions with other components of the same enterprise), (b) whose operating results are regularly reviewed by the enterprise's chief operating decision maker to make decisions about resources to be allocated to the segment and assess its performance, and (c) for which discrete financial information is available. An operating segment may engage in business activities for which it has yet to earn revenues, for example, start-up operations may be operating segments before earning revenues.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 49<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-49<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 18<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-18<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NumberOfOperatingSegments</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:integerItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingIncomeLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The net result for the period of deducting operating expenses from operating revenues.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-30<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 5: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 7: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 31<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-31<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingIncomeLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RetainedEarningsAccumulatedDeficit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of accumulated undistributed earnings (deficit).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(30)(a)(3))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(2)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480016/944-40-65-2<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (h)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480016/944-40-65-2<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480990/946-20-50-11<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(23)(a)(4))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(17))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-1<br><br>Reference 8: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480008/505-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RetainedEarningsAccumulatedDeficit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis=us-gaap_RelatedPartyMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RelatedPartyTransactionsByRelatedPartyAxis=us-gaap_RelatedPartyMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_CounterpartyNameAxis=tgen_JohnN.HatsopoulosAndEarlR.LewisIIIMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_CounterpartyNameAxis=tgen_JohnN.HatsopoulosAndEarlR.LewisIIIMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_CounterpartyNameAxis=tgen_EarlR.LewisIIIMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_CounterpartyNameAxis=tgen_EarlR.LewisIIIMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>60
<FILENAME>R48.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Summary of significant accounting policies - Additional Information (Details)<br></strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th">
<div>Dec. 31, 2024 </div>
<div>USD ($) </div>
<div>segment</div>
</th>
<th class="th">
<div>Dec. 31, 2023 </div>
<div>USD ($)</div>
</th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisaggregationOfRevenueLineItems', window );"><strong>Disaggregation of Revenue [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_EmployeeRetentionCreditCurrent', window );">Employee retention credit receivable</a></td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 46,148<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_PercentageOfOwnedJointVenture', window );">Joint venture, percent owned</a></td>
<td class="nump">51.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent', window );">Allowance for doubtful accounts</a></td>
<td class="nump">$ 295,932<span></span>
</td>
<td class="nump">149,992<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ImpairmentOfLongLivedAssetsHeldForUse', window );">Impairment of long-lived assets</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_ContractWithCustomerShippingAndHandlingBilled', window );">Shipping and handling fees billed to customers</a></td>
<td class="nump">96,890<span></span>
</td>
<td class="nump">174,662<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_CostOfGoodsSoldShippingAndHandling', window );">Cost of goods sold, shipping and handling</a></td>
<td class="nump">59,331<span></span>
</td>
<td class="nump">79,616<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs', window );">Bad debt expense</a></td>
<td class="nump">146,010<span></span>
</td>
<td class="nump">902,432<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AdvertisingExpense', window );">Advertising expense</a></td>
<td class="nump">74,000<span></span>
</td>
<td class="nump">80,000<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_ResearchAndDevelopmentExpenseGross', window );">Research and development</a></td>
<td class="nump">$ 962,000<span></span>
</td>
<td class="nump">840,000<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_RevenueFromContractWithCustomerPaymentPeriod', window );">Payment period</a></td>
<td class="text">30 days<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NumberOfOperatingSegments', window );">Number of operating segments | segment</a></td>
<td class="nump">3<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredRevenueRevenueRecognized1', window );">Deferred revenue recognized</a></td>
<td class="nump">$ 662,730<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueRemainingPerformanceObligation', window );">Remaining performance obligations</a></td>
<td class="nump">$ 7,867,082<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueRemainingPerformanceObligationPercentage', window );">Revenue, remaining performance obligation, percentage</a></td>
<td class="nump">84.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis=2025-01-01', window );">Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]: 2025-01-01</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisaggregationOfRevenueLineItems', window );"><strong>Disaggregation of Revenue [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueRemainingPerformanceObligationPercentage', window );">Revenue, remaining performance obligation, percentage</a></td>
<td class="nump">82.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1', window );">Revenue, remaining performance obligation, expected timing of satisfaction, period</a></td>
<td class="text">1 year<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis=2026-01-01', window );">Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]: 2026-01-01</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisaggregationOfRevenueLineItems', window );"><strong>Disaggregation of Revenue [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueRemainingPerformanceObligationPercentage', window );">Revenue, remaining performance obligation, percentage</a></td>
<td class="nump">2.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1', window );">Revenue, remaining performance obligation, expected timing of satisfaction, period</a></td>
<td class="text">2 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeStatementLocationAxis=us-gaap_GeneralAndAdministrativeExpenseMember', window );">General and Administrative Expense</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisaggregationOfRevenueLineItems', window );"><strong>Disaggregation of Revenue [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_ShippingandHandlingExpenses', window );">Shipping and handling expenses</a></td>
<td class="nump">$ 248,229<span></span>
</td>
<td class="nump">$ 427,880<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_ContractWithCustomerShippingAndHandlingBilled">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Contract With Customer, Shipping And Handling Billed</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_ContractWithCustomerShippingAndHandlingBilled</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_CostOfGoodsSoldShippingAndHandling">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Cost Of Goods Sold, Shipping And Handling</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_CostOfGoodsSoldShippingAndHandling</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_EmployeeRetentionCreditCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Employee Retention Credit, Current</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_EmployeeRetentionCreditCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_PercentageOfOwnedJointVenture">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Percentage Of Owned Joint Venture.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_PercentageOfOwnedJointVenture</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types1:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_ResearchAndDevelopmentExpenseGross">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Research And Development Expense, Gross</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_ResearchAndDevelopmentExpenseGross</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_RevenueFromContractWithCustomerPaymentPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Revenue From Contract With Customer, Payment Period</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_RevenueFromContractWithCustomerPaymentPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_ShippingandHandlingExpenses">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Shipping and Handling Expenses</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_ShippingandHandlingExpenses</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AdvertisingExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount charged to advertising expense for the period, which are expenses incurred with the objective of increasing revenue for a specified brand, product or product line.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 720<br> -SubTopic 35<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483385/720-35-55-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 720<br> -SubTopic 35<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483406/720-35-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AdvertisingExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of allowance for credit loss on accounts receivable, classified as current.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(4))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479344/326-20-45-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 310<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481962/310-10-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of direct write-downs of accounts receivable charged against the allowance.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479319/326-20-50-13<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredRevenueRevenueRecognized1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of revenue recognized that was previously reported as deferred or unearned revenue.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredRevenueRevenueRecognized1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisaggregationOfRevenueLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-5<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479777/606-10-55-91<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479777/606-10-55-91<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479777/606-10-55-91<br><br>Reference 5: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479777/606-10-55-91<br><br>Reference 6: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479777/606-10-55-91<br><br>Reference 7: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479777/606-10-55-91<br><br>Reference 8: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479777/606-10-55-91<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisaggregationOfRevenueLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ImpairmentOfLongLivedAssetsHeldForUse">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The aggregate amount of write-downs for impairments recognized during the period for long lived assets held for use (including those held for disposal by means other than sale).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 100<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482078/820-10-55-100<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 360<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482099/360-10-50-2<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 360<br> -SubTopic 10<br> -Section 45<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482130/360-10-45-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ImpairmentOfLongLivedAssetsHeldForUse</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NumberOfOperatingSegments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of operating segments. An operating segment is a component of an enterprise: (a) that engages in business activities from which it may earn revenues and incur expenses (including revenues and expenses relating to transactions with other components of the same enterprise), (b) whose operating results are regularly reviewed by the enterprise's chief operating decision maker to make decisions about resources to be allocated to the segment and assess its performance, and (c) for which discrete financial information is available. An operating segment may engage in business activities for which it has yet to earn revenues, for example, start-up operations may be operating segments before earning revenues.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 49<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-49<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 18<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-18<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NumberOfOperatingSegments</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:integerItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueRemainingPerformanceObligation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of transaction price allocated to performance obligation that has not been recognized as revenue.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 606<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-13<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueRemainingPerformanceObligation</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Period in which remaining performance obligation is expected to be recognized as revenue, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (b)(1)<br> -SubTopic 10<br> -Topic 606<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-13<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueRemainingPerformanceObligationPercentage">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Percentage of remaining performance obligation to total remaining performance obligation not recognized as revenue.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (b)(1)<br> -SubTopic 10<br> -Topic 606<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-13<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueRemainingPerformanceObligationPercentage</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis=2025-01-01">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis=2025-01-01</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis=2026-01-01">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis=2026-01-01</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeStatementLocationAxis=us-gaap_GeneralAndAdministrativeExpenseMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeStatementLocationAxis=us-gaap_GeneralAndAdministrativeExpenseMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>61
<FILENAME>R49.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Summary of significant accounting policies - Concentration of Credit Risk (Details) - USD ($)<br></strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConcentrationRiskLineItems', window );"><strong>Concentration Risk [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashFDICInsuredAmount', window );">Cash, FDIC Insured Amount</a></td>
<td class="nump">$ 250,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashUninsuredAmount', window );">Cash, Uninsured Amount</a></td>
<td class="nump">$ 4,954,395<span></span>
</td>
<td class="nump">$ 1,009,094<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConcentrationRiskByTypeAxis=us-gaap_CustomerConcentrationRiskMember', window );">Customer concentration risk | Trade accounts receivable | One Customer</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConcentrationRiskLineItems', window );"><strong>Concentration Risk [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConcentrationRiskPercentage1', window );">Concentration risk, percentage</a></td>
<td class="nump">12.00%<span></span>
</td>
<td class="nump">14.00%<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CashFDICInsuredAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The amount of cash deposited in financial institutions as of the balance sheet date that is insured by the Federal Deposit Insurance Corporation.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CashFDICInsuredAmount</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CashUninsuredAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The amount of cash as of the balance sheet date that is not insured by the Federal Deposit Insurance Corporation.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CashUninsuredAmount</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ConcentrationRiskLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 954<br> -SubTopic 310<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478785/954-310-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ConcentrationRiskLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ConcentrationRiskPercentage1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>For an entity that discloses a concentration risk in relation to quantitative amount, which serves as the "benchmark" (or denominator) in the equation, this concept represents the concentration percentage derived from the division.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 42<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-42<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 21<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-21<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 20<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-20<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 18<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482861/275-10-50-18<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 20<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482861/275-10-50-20<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ConcentrationRiskPercentage1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ConcentrationRiskByTypeAxis=us-gaap_CustomerConcentrationRiskMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ConcentrationRiskByTypeAxis=us-gaap_CustomerConcentrationRiskMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ConcentrationRiskByBenchmarkAxis=us-gaap_AccountsReceivableMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ConcentrationRiskByBenchmarkAxis=us-gaap_AccountsReceivableMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_MajorCustomersAxis=tgen_OneCustomerMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_MajorCustomersAxis=tgen_OneCustomerMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>62
<FILENAME>R50.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Summary of significant accounting policies - Property, Plant and Equipment (Details)<br></strong></div></th>
<th class="th"><div>Dec. 31, 2024</div></th>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_RangeAxis=srt_MinimumMember', window );">Minimum</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentLineItems', window );"><strong>Property, Plant and Equipment [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentUsefulLife', window );">Property, plant and equipment, estimated useful lives</a></td>
<td class="text">3 years<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_RangeAxis=srt_MaximumMember', window );">Maximum</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentLineItems', window );"><strong>Property, Plant and Equipment [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentUsefulLife', window );">Property, plant and equipment, estimated useful lives</a></td>
<td class="text">15 years<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7A<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-7A<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentUsefulLife">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Useful life of long lived, physical assets used in the normal conduct of business and not intended for resale, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days. Examples include, but not limited to, land, buildings, machinery and equipment, office equipment, furniture and fixtures, and computer equipment.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentUsefulLife</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_RangeAxis=srt_MinimumMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RangeAxis=srt_MinimumMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_RangeAxis=srt_MaximumMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RangeAxis=srt_MaximumMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>63
<FILENAME>R51.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Summary of significant accounting policies - Revenue (Details) - USD ($)<br></strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisaggregationOfRevenueLineItems', window );"><strong>Disaggregation of Revenue [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenue</a></td>
<td class="nump">$ 22,619,536<span></span>
</td>
<td class="nump">$ 25,139,419<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_ProductOrServiceAxis=us-gaap_ProductMember', window );">Products</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisaggregationOfRevenueLineItems', window );"><strong>Disaggregation of Revenue [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenue</a></td>
<td class="nump">4,443,996<span></span>
</td>
<td class="nump">8,859,946<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StatementBusinessSegmentsAxis=tgen_ProductsSegmentMember', window );">Products Segment</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisaggregationOfRevenueLineItems', window );"><strong>Disaggregation of Revenue [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenue</a></td>
<td class="nump">4,443,996<span></span>
</td>
<td class="nump">8,859,946<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StatementBusinessSegmentsAxis=tgen_ProductsSegmentMember', window );">Products Segment | Cogeneration</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisaggregationOfRevenueLineItems', window );"><strong>Disaggregation of Revenue [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenue</a></td>
<td class="nump">2,677,930<span></span>
</td>
<td class="nump">2,761,667<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StatementBusinessSegmentsAxis=tgen_ProductsSegmentMember', window );">Products Segment | Chiller</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisaggregationOfRevenueLineItems', window );"><strong>Disaggregation of Revenue [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenue</a></td>
<td class="nump">1,647,374<span></span>
</td>
<td class="nump">5,303,978<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StatementBusinessSegmentsAxis=tgen_ProductsSegmentMember', window );">Products Segment | Engineered Accessories</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisaggregationOfRevenueLineItems', window );"><strong>Disaggregation of Revenue [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenue</a></td>
<td class="nump">118,692<span></span>
</td>
<td class="nump">794,301<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StatementBusinessSegmentsAxis=tgen_ServicesSegmentMember', window );">Services Segment</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisaggregationOfRevenueLineItems', window );"><strong>Disaggregation of Revenue [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenue</a></td>
<td class="nump">22,619,536<span></span>
</td>
<td class="nump">25,139,419<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StatementBusinessSegmentsAxis=tgen_ServicesSegmentMember', window );">Services Segment | Installation Services [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisaggregationOfRevenueLineItems', window );"><strong>Disaggregation of Revenue [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenue</a></td>
<td class="nump">16,074,870<span></span>
</td>
<td class="nump">14,523,054<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StatementBusinessSegmentsAxis=tgen_ServicesSegmentMember', window );">Services Segment | Energy Production</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisaggregationOfRevenueLineItems', window );"><strong>Disaggregation of Revenue [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenue</a></td>
<td class="nump">2,100,670<span></span>
</td>
<td class="nump">1,756,419<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_ConsolidationItemsAxis=us-gaap_OperatingSegmentsMember', window );">Operating Segments</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisaggregationOfRevenueLineItems', window );"><strong>Disaggregation of Revenue [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenue</a></td>
<td class="nump">22,619,536<span></span>
</td>
<td class="nump">25,139,419<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_ConsolidationItemsAxis=us-gaap_OperatingSegmentsMember', window );">Operating Segments | Products Segment</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisaggregationOfRevenueLineItems', window );"><strong>Disaggregation of Revenue [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenue</a></td>
<td class="nump">4,443,996<span></span>
</td>
<td class="nump">8,859,946<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_ConsolidationItemsAxis=us-gaap_OperatingSegmentsMember', window );">Operating Segments | Energy Production</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisaggregationOfRevenueLineItems', window );"><strong>Disaggregation of Revenue [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenue</a></td>
<td class="nump">$ 2,100,670<span></span>
</td>
<td class="nump">$ 1,756,419<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisaggregationOfRevenueLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-5<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479777/606-10-55-91<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479777/606-10-55-91<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479777/606-10-55-91<br><br>Reference 5: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479777/606-10-55-91<br><br>Reference 6: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479777/606-10-55-91<br><br>Reference 7: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479777/606-10-55-91<br><br>Reference 8: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479777/606-10-55-91<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisaggregationOfRevenueLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 41<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-41<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 924<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 11.L)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479941/924-10-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-5<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-30<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 42<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-42<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 40<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-40<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_ProductOrServiceAxis=us-gaap_ProductMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_ProductOrServiceAxis=us-gaap_ProductMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StatementBusinessSegmentsAxis=tgen_ProductsSegmentMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StatementBusinessSegmentsAxis=tgen_ProductsSegmentMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_ProductOrServiceAxis=tgen_CogenerationMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_ProductOrServiceAxis=tgen_CogenerationMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_ProductOrServiceAxis=tgen_ChillerMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_ProductOrServiceAxis=tgen_ChillerMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_ProductOrServiceAxis=tgen_EngineeredAccessoriesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_ProductOrServiceAxis=tgen_EngineeredAccessoriesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StatementBusinessSegmentsAxis=tgen_ServicesSegmentMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StatementBusinessSegmentsAxis=tgen_ServicesSegmentMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_ProductOrServiceAxis=tgen_InstallationServicesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_ProductOrServiceAxis=tgen_InstallationServicesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_ProductOrServiceAxis=tgen_EnergyProductionMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_ProductOrServiceAxis=tgen_EnergyProductionMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_ConsolidationItemsAxis=us-gaap_OperatingSegmentsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_ConsolidationItemsAxis=us-gaap_OperatingSegmentsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StatementBusinessSegmentsAxis=tgen_EnergyProductionMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StatementBusinessSegmentsAxis=tgen_EnergyProductionMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>64
<FILENAME>R52.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Loss per common share - Schedule of Loss Per Common Share, Basic and Diluted (Details) - USD ($)<br></strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems', window );"><strong>Antidilutive Securities Excluded from Computation of Earnings Per Share [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net Income (Loss) Attributable to Parent</a></td>
<td class="num">$ (4,760,238)<span></span>
</td>
<td class="num">$ (4,598,108)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic', window );">Weighted average shares outstanding - basic (in shares)</a></td>
<td class="nump">24,861,190<span></span>
</td>
<td class="nump">24,850,261<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DilutiveSecuritiesAbstract', window );"><strong>Dilutive Securities, Effect on Basic Earnings Per Share [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding', window );">Weighted average shares outstanding - diluted (in shares)</a></td>
<td class="nump">24,861,190<span></span>
</td>
<td class="nump">24,850,261<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EarningsPerShareBasic', window );">Net income (loss) per share - basic (in USD per share)</a></td>
<td class="num">$ (0.19)<span></span>
</td>
<td class="num">$ (0.19)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EarningsPerShareDiluted', window );">Net income (loss) per share - diluted (in USD per share)</a></td>
<td class="num">$ (0.19)<span></span>
</td>
<td class="num">$ (0.19)<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis=us-gaap_EmployeeStockOptionMember', window );">Stock Options</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DilutiveSecuritiesAbstract', window );"><strong>Dilutive Securities, Effect on Basic Earnings Per Share [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment', window );">Stock options</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount', window );">Anti-dilutive shares underlying stock options outstanding</a></td>
<td class="nump">1,222,516<span></span>
</td>
<td class="nump">1,757,676<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482662/260-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DilutiveSecuritiesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DilutiveSecuritiesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerShareBasic">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The amount of net income (loss) for the period per each share of common stock or unit outstanding during the reporting period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-6<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 52<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482635/260-10-55-52<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 60<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476176/805-60-65-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 323<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478666/740-323-65-2<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-3<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 15<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482635/260-10-55-15<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (e)(4)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480175/815-40-65-1<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480175/815-40-65-1<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-7<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-2<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-60B<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-4<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482662/260-10-50-1<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-10<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(25))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(27))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478524/942-220-S99-1<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(23))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-7<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerShareBasic</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerShareDiluted">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-6<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 52<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482635/260-10-55-52<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 60<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476176/805-60-65-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 323<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478666/740-323-65-2<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-3<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 15<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482635/260-10-55-15<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (e)(4)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480175/815-40-65-1<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480175/815-40-65-1<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-7<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-2<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-60B<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-4<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482662/260-10-50-1<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(25))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(27))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478524/942-220-S99-1<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(23))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-7<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerShareDiluted</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetIncomeLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The portion of profit or loss for the period, net of income taxes, which is attributable to the parent.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-6<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-9<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 60<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476176/805-60-65-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 323<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478666/740-323-65-2<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(20))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482765/220-10-50-6<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-3<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-1<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480175/815-40-65-1<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-8<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-4<br><br>Reference 17: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479168/946-830-55-10<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479105/946-220-45-7<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(18))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-07(9))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-1<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(1)(d))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 23: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 30: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 31: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 32: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-60B<br><br>Reference 33: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 205<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483499/205-20-50-7<br><br>Reference 34: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br><br>Reference 35: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1A<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-1A<br><br>Reference 36: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1B<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-1B<br><br>Reference 37: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(22))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478524/942-220-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetIncomeLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The sum of dilutive potential common shares or units used in the calculation of the diluted per-share or per-unit computation.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482662/260-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482662/260-10-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 16<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-16<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482662/260-10-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-10<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_WeightedAverageNumberOfSharesOutstandingBasic</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis=us-gaap_EmployeeStockOptionMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis=us-gaap_EmployeeStockOptionMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>65
<FILENAME>R53.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Acquisition of American DG Energy Inc. (Details) - USD ($)<br></strong></div></th>
<th class="th"><div>May 18, 2017</div></th>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_Goodwill', window );">Goodwill</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 2,346,566<span></span>
</td>
<td class="nump">$ 2,743,424<span></span>
</td>
<td class="nump">$ 2,406,156<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionPurchasePriceAllocationGoodwillExpectedTaxDeductibleAmount', window );">Goodwill expected to be tax deductible</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=tgen_AmericanDgEnergyMember', window );">American DG Energy</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SubsidiaryOrEquityMethodInvesteeCumulativePercentageOwnershipAfterAllTransactions', window );">Ownership interest (percent)</a></td>
<td class="nump">100.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_Goodwill', window );">Goodwill</a></td>
<td class="nump">$ 13,300,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479907/805-20-50-5<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionPurchasePriceAllocationGoodwillExpectedTaxDeductibleAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The amount of goodwill arising from a business combination that is expected to be deductible for tax purposes.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 30<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479581/805-30-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionPurchasePriceAllocationGoodwillExpectedTaxDeductibleAmount</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_Goodwill">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 49<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-49<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482548/350-20-55-24<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 100<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482078/820-10-55-100<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(15))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482598/350-20-45-1<br><br>Reference 7: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1<br><br>Reference 8: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (h)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(10)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478546/942-210-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_Goodwill</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SubsidiaryOrEquityMethodInvesteeCumulativePercentageOwnershipAfterAllTransactions">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Percentage of subsidiary's or equity method investee's stock owned by parent immediately after all stock transactions.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SubsidiaryOrEquityMethodInvesteeCumulativePercentageOwnershipAfterAllTransactions</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionAxis=tgen_AmericanDgEnergyMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionAxis=tgen_AmericanDgEnergyMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>66
<FILENAME>R54.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Aegis Contract and Related Asset Acquisition (Details)<br></strong></div></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="2">12 Months Ended</th>
<th class="th" colspan="1">13 Months Ended</th>
</tr>
<tr>
<th class="th">
<div>May 01, 2024 </div>
<div>USD ($) </div>
<div>maintenanceContract </div>
<div>cogenerationUnit</div>
</th>
<th class="th">
<div>Feb. 01, 2024 </div>
<div>USD ($) </div>
<div>maintenanceContract </div>
<div>cogenerationUnit</div>
</th>
<th class="th">
<div>Apr. 01, 2023 </div>
<div>USD ($) </div>
<div>vehicle </div>
<div>cogenerationSystem </div>
<div>employee</div>
</th>
<th class="th">
<div>Dec. 31, 2024 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Dec. 31, 2023 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>May 01, 2024 </div>
<div>USD ($) </div>
<div>maintenanceContract </div>
<div>cogenerationUnit</div>
</th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AssetAcquisitionLineItems', window );"><strong>Asset Acquisition [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GoodwillAcquiredDuringPeriod', window );">Acquisition</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 337,268<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AssetAcquisitionAxis=tgen_AegisEnergyServicesLLCMember', window );">Aegis Energy Services, LLC</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AssetAcquisitionLineItems', window );"><strong>Asset Acquisition [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_AssetAcquisitionMaintenanceAgreementsNumberOfCogenerationSystems', window );">Number of cogeneration systems under maintenance agreements | cogenerationSystem</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">200<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_NumberOfAssetsAcquired', window );">Assets acquired | vehicle</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">8<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_PaymentsForAssetAcquisitions', window );">Cash</a></td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 170,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 170,000<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_NumberOfEmployeesAcquired', window );">Employees acquired | employee</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">8<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_AssetAcquisitionMaintenanceAgreementsProfitSharingPeriod', window );">Profit sharing period for maintenance agreements</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">7 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_AssetAcquisitionNumberOfAdditionalMaintenanceContracts', window );">Number of additional maintenance contracts | maintenanceContract</a></td>
<td class="nump">31<span></span>
</td>
<td class="nump">18<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">31<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_AssetAcquisitionMaintenanceAgreementsNumberOfAdditionalCogenerationUnits', window );">Number of additional cogeneration units | cogenerationUnit</a></td>
<td class="nump">48<span></span>
</td>
<td class="nump">36<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">48<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AssetAcquisitionConsiderationTransferredOtherAssets', window );">Accounts receivable credit issued</a></td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 300,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 300,000<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_AssetAcquisitionConsiderationTransferredAccountsPayable', window );">Account payable</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">91,048<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">91,048<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AssetAcquisitionConsiderationTransferredContingentConsideration', window );">Contingent consideration</a></td>
<td class="nump">171,260<span></span>
</td>
<td class="nump">101,641<span></span>
</td>
<td class="nump">1,256,656<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,529,557<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AssetAcquisitionConsiderationTransferred', window );">Total fair value of consideration transferred</a></td>
<td class="nump">171,260<span></span>
</td>
<td class="nump">101,641<span></span>
</td>
<td class="nump">1,817,704<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">2,090,605<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_AssetAcquisitionPropertyPlantAndEquipment', window );">Property, plant and equipment</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">170,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">170,000<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_AssetAcquisitionInventory', window );">Inventory</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">391,048<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">391,048<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FinitelivedIntangibleAssetsAcquired1', window );">Capitalized finited lived intangible assets</a></td>
<td class="nump">267,877<span></span>
</td>
<td class="nump">184,587<span></span>
</td>
<td class="nump">1,772,659<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">2,225,123<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_AssetAcquisitionAssetsAcquired', window );">Assets acquired</a></td>
<td class="nump">267,877<span></span>
</td>
<td class="nump">184,587<span></span>
</td>
<td class="nump">2,333,707<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">2,786,171<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_AssetAcquisitionReserves', window );">Deferred maintenance reserve</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="num">(853,271)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(853,271)<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_AssetAcquisitionAssetsAcquiredAndLiabilitiesAssumedNet', window );">Net identifiable assets acquired</a></td>
<td class="nump">267,877<span></span>
</td>
<td class="nump">184,587<span></span>
</td>
<td class="nump">1,480,436<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,932,900<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_AssetAcquisitionGoodwill', window );">Asset Acquisition, Goodwill</a></td>
<td class="num">$ (96,617)<span></span>
</td>
<td class="num">$ (82,946)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 157,705<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">$ (96,617)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GoodwillAcquiredDuringPeriod', window );">Acquisition</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 337,268<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionsProFormaRevenue', window );">Total revenues</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">2,671,051<span></span>
</td>
<td class="nump">1,884,891<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss', window );">Net income (loss)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,764,227<span></span>
</td>
<td class="nump">1,167,225<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_AssetAcquisitionConsiderationTransferredContingentConsiderationCurrent', window );">Contingent consideration</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">328,350<span></span>
</td>
<td class="nump">200,639<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_AssetAcquisitionReservesCurrent', window );">Deferred maintenance reserve</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">574,202<span></span>
</td>
<td class="nump">644,724<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_AssetAcquisitionLiabilitiesAssumedCurrent', window );">Liabilities assumed, current</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">902,552<span></span>
</td>
<td class="nump">845,363<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_AssetAcquisitionConsiderationTransferredContingentConsiderationNoncurrent', window );">Contingent consideration</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,008,760<span></span>
</td>
<td class="nump">994,743<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_AssetAcquisitionReservesNoncurrent', window );">Deferred maintenance reserve</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">187,036<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_AssetAcquisitionLiabilitiesAssumedNoncurrent', window );">Liabilities assumed, noncurrent</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,008,760<span></span>
</td>
<td class="nump">$ 1,181,779<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_AssetAcquisitionContingentConsiderationPaymentPeriod', window );">Contingent consideration, payment period</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">45 days<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_AssetAcquisitionDeferredMaintenanceCostsIncurredPeriod', window );">Deferred maintenance costs incurred, period</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">3 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_AssetAcquisitionProvisionalInformationInitialAccountingIncompleteAdjustmentContingentConsiderationLiability', window );">Adjustment to contingent consideration liability</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">9,232<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_AssetAcquisitionProvisionalInformationInitialAccountingIncompleteAdjustmentFiniteLivedIntangibleAssetsAcquired', window );">Adjustment to finite-lived intangible assets acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 5,052<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AssetAcquisitionAxis=tgen_AegisEnergyServicesLLCMember', window );">Aegis Energy Services, LLC | Minimum</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AssetAcquisitionLineItems', window );"><strong>Asset Acquisition [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_AssetAcquisitionContingentConsiderationPercentage', window );">Contingent consideration, percentage</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">5.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AssetAcquisitionAxis=tgen_AegisEnergyServicesLLCMember', window );">Aegis Energy Services, LLC | Maximum</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AssetAcquisitionLineItems', window );"><strong>Asset Acquisition [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_AssetAcquisitionContingentConsiderationPercentage', window );">Contingent consideration, percentage</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">10.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AssetAcquisitionAxis=tgen_AegisEnergyServicesLLCMember', window );">Aegis Energy Services, LLC | Measurement Input, Discount Rate</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AssetAcquisitionLineItems', window );"><strong>Asset Acquisition [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_IntangibleAssetsMeasurementInput', window );">Intangible assets, measurement input</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">15.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_AssetAcquisitionAssetsAcquired">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Asset Acquisition, Assets Acquired</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_AssetAcquisitionAssetsAcquired</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_AssetAcquisitionAssetsAcquiredAndLiabilitiesAssumedNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Asset Acquisition, Assets Acquired and Liabilities Assumed, Net</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_AssetAcquisitionAssetsAcquiredAndLiabilitiesAssumedNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_AssetAcquisitionConsiderationTransferredAccountsPayable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Asset Acquisition, Consideration Transferred, Accounts Payable</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_AssetAcquisitionConsiderationTransferredAccountsPayable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_AssetAcquisitionConsiderationTransferredContingentConsiderationCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Asset Acquisition, Consideration Transferred, Contingent Consideration, Current</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_AssetAcquisitionConsiderationTransferredContingentConsiderationCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_AssetAcquisitionConsiderationTransferredContingentConsiderationNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Asset Acquisition, Consideration Transferred, Contingent Consideration, Noncurrent</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_AssetAcquisitionConsiderationTransferredContingentConsiderationNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_AssetAcquisitionContingentConsiderationPaymentPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Asset Acquisition, Contingent Consideration, Payment Period</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_AssetAcquisitionContingentConsiderationPaymentPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_AssetAcquisitionContingentConsiderationPercentage">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Asset Acquisition, Contingent Consideration, Percentage</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_AssetAcquisitionContingentConsiderationPercentage</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_AssetAcquisitionDeferredMaintenanceCostsIncurredPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Asset Acquisition, Deferred Maintenance Costs Incurred, Period</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_AssetAcquisitionDeferredMaintenanceCostsIncurredPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_AssetAcquisitionGoodwill">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Asset Acquisition, Goodwill</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_AssetAcquisitionGoodwill</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_AssetAcquisitionInventory">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Asset Acquisition, Inventory</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_AssetAcquisitionInventory</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_AssetAcquisitionLiabilitiesAssumedCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Asset Acquisition, Liabilities Assumed, Current</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_AssetAcquisitionLiabilitiesAssumedCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_AssetAcquisitionLiabilitiesAssumedNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Asset Acquisition, Liabilities Assumed, Noncurrent</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_AssetAcquisitionLiabilitiesAssumedNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_AssetAcquisitionMaintenanceAgreementsNumberOfAdditionalCogenerationUnits">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Asset Acquisition, Maintenance Agreements, Number Of Additional Cogeneration Units</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_AssetAcquisitionMaintenanceAgreementsNumberOfAdditionalCogenerationUnits</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:integerItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_AssetAcquisitionMaintenanceAgreementsNumberOfCogenerationSystems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Asset Acquisition, Maintenance Agreements, Number Of Cogeneration Systems</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_AssetAcquisitionMaintenanceAgreementsNumberOfCogenerationSystems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:integerItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_AssetAcquisitionMaintenanceAgreementsProfitSharingPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Asset Acquisition, Maintenance Agreements, Profit Sharing Period</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_AssetAcquisitionMaintenanceAgreementsProfitSharingPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_AssetAcquisitionNumberOfAdditionalMaintenanceContracts">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Asset Acquisition, Number Of Additional Maintenance Contracts</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_AssetAcquisitionNumberOfAdditionalMaintenanceContracts</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:integerItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_AssetAcquisitionPropertyPlantAndEquipment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Asset Acquisition, Property, Plant and Equipment</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_AssetAcquisitionPropertyPlantAndEquipment</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_AssetAcquisitionProvisionalInformationInitialAccountingIncompleteAdjustmentContingentConsiderationLiability">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Asset Acquisition, Provisional Information, Initial Accounting Incomplete, Adjustment, Contingent Consideration Liability</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_AssetAcquisitionProvisionalInformationInitialAccountingIncompleteAdjustmentContingentConsiderationLiability</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_AssetAcquisitionProvisionalInformationInitialAccountingIncompleteAdjustmentFiniteLivedIntangibleAssetsAcquired">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Asset Acquisition, Provisional Information, Initial Accounting Incomplete, Adjustment, Finite-Lived Intangible Assets Acquired</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_AssetAcquisitionProvisionalInformationInitialAccountingIncompleteAdjustmentFiniteLivedIntangibleAssetsAcquired</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_AssetAcquisitionReserves">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Asset Acquisition, Reserves</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_AssetAcquisitionReserves</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_AssetAcquisitionReservesCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Asset Acquisition, Reserves, Current</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_AssetAcquisitionReservesCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_AssetAcquisitionReservesNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Asset Acquisition, Reserves, Noncurrent</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_AssetAcquisitionReservesNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_IntangibleAssetsMeasurementInput">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Intangible Assets, Measurement Input</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_IntangibleAssetsMeasurementInput</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_NumberOfAssetsAcquired">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of Assets Acquired</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_NumberOfAssetsAcquired</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:integerItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_NumberOfEmployeesAcquired">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of Employees Acquired</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_NumberOfEmployeesAcquired</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:integerItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_PaymentsForAssetAcquisitions">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Payments for Asset Acquisitions</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_PaymentsForAssetAcquisitions</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AssetAcquisitionConsiderationTransferred">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of consideration transferred in asset acquisition. Includes, but is not limited to, cash, liability incurred by acquirer, and equity interest issued by acquirer.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 805<br> -SubTopic 50<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479908/805-50-55-1<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 805<br> -SubTopic 50<br> -Name Accounting Standards Codification<br> -Section 25<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480060/805-50-25-1<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 805<br> -SubTopic 50<br> -Name Accounting Standards Codification<br> -Section 30<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480027/805-50-30-1<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 805<br> -SubTopic 50<br> -Name Accounting Standards Codification<br> -Section 30<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480027/805-50-30-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AssetAcquisitionConsiderationTransferred</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AssetAcquisitionConsiderationTransferredContingentConsideration">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of contingent consideration recognized as part of consideration transferred in asset acquisition.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 805<br> -SubTopic 50<br> -Name Accounting Standards Codification<br> -Section 25<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480060/805-50-25-1<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 805<br> -SubTopic 50<br> -Name Accounting Standards Codification<br> -Section 30<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480027/805-50-30-1<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 805<br> -SubTopic 50<br> -Name Accounting Standards Codification<br> -Section 30<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480027/805-50-30-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AssetAcquisitionConsiderationTransferredContingentConsideration</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AssetAcquisitionConsiderationTransferredOtherAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of tangible and intangible assets included as part of consideration transferred in asset acquisition, classified as other. Excludes cash.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 805<br> -SubTopic 50<br> -Name Accounting Standards Codification<br> -Section 25<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480060/805-50-25-1<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 805<br> -SubTopic 50<br> -Name Accounting Standards Codification<br> -Section 30<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480027/805-50-30-1<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 805<br> -SubTopic 50<br> -Name Accounting Standards Codification<br> -Section 30<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480027/805-50-30-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AssetAcquisitionConsiderationTransferredOtherAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AssetAcquisitionLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 805<br> -SubTopic 50<br> -Name Accounting Standards Codification<br> -Section 15<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480123/805-50-15-3<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AssetAcquisitionLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The pro forma net Income or Loss for the period as if the business combination or combinations had been completed at the beginning of a period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479328/805-10-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479328/805-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionsProFormaRevenue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The pro forma revenue for a period as if the business combination or combinations had been completed at the beginning of the period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479328/805-10-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479328/805-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionsProFormaRevenue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FinitelivedIntangibleAssetsAcquired1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of increase in assets, excluding financial assets, lacking physical substance with a definite life, from an acquisition.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FinitelivedIntangibleAssetsAcquired1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GoodwillAcquiredDuringPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of increase in asset representing future economic benefits arising from other assets acquired in a business combination that are not individually identified and separately recognized resulting from a business combination.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482548/350-20-55-24<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GoodwillAcquiredDuringPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AssetAcquisitionAxis=tgen_AegisEnergyServicesLLCMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AssetAcquisitionAxis=tgen_AegisEnergyServicesLLCMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_RangeAxis=srt_MinimumMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RangeAxis=srt_MinimumMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_RangeAxis=srt_MaximumMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RangeAxis=srt_MaximumMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_MeasurementInputTypeAxis=us-gaap_MeasurementInputDiscountRateMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_MeasurementInputTypeAxis=us-gaap_MeasurementInputDiscountRateMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>67
<FILENAME>R55.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Sale of ADG Assets (Details) - USD ($)<br></strong></div></th>
<th class="th" colspan="1">3 Months Ended</th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Mar. 31, 2019</div></th>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DiscontinuedOperationsAndDisposalGroupsAbstract', window );"><strong>Discontinued Operations and Disposal Groups [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ProceedsFromSaleOfProductiveAssets', window );">Consideration received</a></td>
<td class="nump">$ 7,000,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsLineItems', window );"><strong>Income Statement, Balance Sheet and Additional Disclosures by Disposal Groups, Including Discontinued Operations [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_EnergyProductionAgreementsPercentageOfExcessCashFlowsAboveThreshold', window );">Percentage of excess cash flows above threshold</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">50.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_EnergyProductionAgreementsRevenueOfExcessCashFlowsAboveThreshold', window );">Revenue of excess cash flows above threshold</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 73,243<span></span>
</td>
<td class="nump">$ 25,633<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_EnergyProductionAgreementsAccountsReceivableFromExcessCashFlowsAboveThreshold', window );">Accounts receivable from excess cash flows above threshold</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">98,876<span></span>
</td>
<td class="nump">25,633<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_EnergyProductionAgreementsSiteDecommissioningCosts', window );">Site decommissioning costs</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 20,000<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_EnergyProductionAgreementsAccountsReceivableFromExcessCashFlowsAboveThreshold">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Energy Production Agreements, Accounts Receivable From Excess Cash Flows Above Threshold</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_EnergyProductionAgreementsAccountsReceivableFromExcessCashFlowsAboveThreshold</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_EnergyProductionAgreementsPercentageOfExcessCashFlowsAboveThreshold">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Energy Production Agreements, Percentage Of Excess Cash Flows Above Threshold</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_EnergyProductionAgreementsPercentageOfExcessCashFlowsAboveThreshold</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_EnergyProductionAgreementsRevenueOfExcessCashFlowsAboveThreshold">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Energy Production Agreements, Revenue Of Excess Cash Flows Above Threshold</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_EnergyProductionAgreementsRevenueOfExcessCashFlowsAboveThreshold</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_EnergyProductionAgreementsSiteDecommissioningCosts">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Energy Production Agreements, Site Decommissioning Costs</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_EnergyProductionAgreementsSiteDecommissioningCosts</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DiscontinuedOperationsAndDisposalGroupsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DiscontinuedOperationsAndDisposalGroupsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ProceedsFromSaleOfProductiveAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The cash inflow from the sale of property, plant and equipment (capital expenditures), software, and other intangible assets.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 12<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-12<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ProceedsFromSaleOfProductiveAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>68
<FILENAME>R56.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Inventory - Summary of Inventory (Details) - USD ($)<br></strong></div></th>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InventoryDisclosureAbstract', window );"><strong>Inventory Disclosure [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InventoryRawMaterialsNetOfReserves', window );">Raw materials, net</a></td>
<td class="nump">$ 8,525,879<span></span>
</td>
<td class="nump">$ 8,803,054<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InventoryWorkInProcessNetOfReserves', window );">Work-in-process</a></td>
<td class="nump">930,769<span></span>
</td>
<td class="nump">798,522<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InventoryFinishedGoodsNetOfReserves', window );">Finished goods</a></td>
<td class="nump">177,357<span></span>
</td>
<td class="nump">951,843<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InventoryNet', window );">Inventory, Net</a></td>
<td class="nump">$ 9,634,005<span></span>
</td>
<td class="nump">$ 10,553,419<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InventoryDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InventoryDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InventoryFinishedGoodsNetOfReserves">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Carrying amount, net of valuation reserves and adjustments, as of the balance sheet date of merchandise or goods held by the company that are readily available for sale.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 330<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 5.BB)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480581/330-10-S99-2<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6)(a)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InventoryFinishedGoodsNetOfReserves</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InventoryNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount after valuation and LIFO reserves of inventory expected to be sold, or consumed within one year or operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483467/210-10-45-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InventoryNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InventoryRawMaterialsNetOfReserves">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Carrying amount, net of valuation reserves and adjustments, as of the balance sheet date of unprocessed items to be consumed in the manufacturing or production process.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 330<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 5.BB)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480581/330-10-S99-2<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6)(a)(4))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InventoryRawMaterialsNetOfReserves</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InventoryWorkInProcessNetOfReserves">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Carrying amount, net of reserves and adjustments, as of the balance sheet date of merchandise or goods which are partially completed. This inventory is generally comprised of raw materials, labor and factory overhead costs, which require further materials, labor and overhead to be converted into finished goods, and which generally require the use of estimates to determine percentage complete and pricing.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 330<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 5.BB)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480581/330-10-S99-2<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6)(a)(3))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InventoryWorkInProcessNetOfReserves</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>69
<FILENAME>R57.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Intangible assets and liabilities other than goodwill - Narrative (Details) - USD ($)<br></strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AcquiredFiniteLivedIntangibleAssetsLineItems', window );"><strong>Acquired Finite-Lived Intangible Assets [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AmortizationOfIntangibleAssets', window );">Amortization expense</a></td>
<td class="nump">$ 192,571<span></span>
</td>
<td class="nump">$ 222,884<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_AmortizationofContractRelatedIntangibleAssetsandLiabilitiesNet', window );">Net credit to cost of sales related to the amortization of contract related assets and liabilities</a></td>
<td class="nump">$ 6,727<span></span>
</td>
<td class="num">$ (110,031)<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_PatentsMember', window );">Patents | Minimum</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AcquiredFiniteLivedIntangibleAssetsLineItems', window );"><strong>Acquired Finite-Lived Intangible Assets [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Finited lived intangible assets, estimated useful life</a></td>
<td class="text">7 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_PatentsMember', window );">Patents | Maximum</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AcquiredFiniteLivedIntangibleAssetsLineItems', window );"><strong>Acquired Finite-Lived Intangible Assets [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Finited lived intangible assets, estimated useful life</a></td>
<td class="text">10 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_ContractBasedIntangibleAssetsMember', window );">Contract related intangibles | Minimum</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AcquiredFiniteLivedIntangibleAssetsLineItems', window );"><strong>Acquired Finite-Lived Intangible Assets [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Finited lived intangible assets, estimated useful life</a></td>
<td class="text">1 year<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_ContractBasedIntangibleAssetsMember', window );">Contract related intangibles | Maximum</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AcquiredFiniteLivedIntangibleAssetsLineItems', window );"><strong>Acquired Finite-Lived Intangible Assets [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Finited lived intangible assets, estimated useful life</a></td>
<td class="text">11 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_AmortizationofContractRelatedIntangibleAssetsandLiabilitiesNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amortization of Contract Related Intangible Assets and Liabilities, Net</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_AmortizationofContractRelatedIntangibleAssetsandLiabilitiesNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AcquiredFiniteLivedIntangibleAssetsLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 985<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481283/985-20-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AcquiredFiniteLivedIntangibleAssetsLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AmortizationOfIntangibleAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 40<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482640/350-30-55-40<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-2<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482686/350-30-45-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AmortizationOfIntangibleAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetUsefulLife</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_PatentsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_PatentsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_RangeAxis=srt_MinimumMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RangeAxis=srt_MinimumMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_RangeAxis=srt_MaximumMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RangeAxis=srt_MaximumMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_ContractBasedIntangibleAssetsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_ContractBasedIntangibleAssetsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>70
<FILENAME>R58.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Intangible assets other than goodwill - Schedule of Intangible Assets (Details) - USD ($)<br></strong></div></th>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsLineItems', window );"><strong>Finite-Lived Intangible Assets [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IntangibleAssetsGrossExcludingGoodwill', window );">Intangible assets</a></td>
<td class="nump">$ 4,806,795<span></span>
</td>
<td class="nump">$ 4,354,331<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization', window );">Less - accumulated amortization</a></td>
<td class="num">(2,293,606)<span></span>
</td>
<td class="num">(1,918,102)<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IntangibleAssetsNetExcludingGoodwill', window );">Intangible Assets, Net</a></td>
<td class="nump">2,513,189<span></span>
</td>
<td class="nump">2,436,229<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=tgen_ProductCertificationMember', window );">Product Certifications</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsLineItems', window );"><strong>Finite-Lived Intangible Assets [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IntangibleAssetsGrossExcludingGoodwill', window );">Intangible assets</a></td>
<td class="nump">777,465<span></span>
</td>
<td class="nump">777,465<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization', window );">Less - accumulated amortization</a></td>
<td class="num">(709,855)<span></span>
</td>
<td class="num">(658,676)<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IntangibleAssetsNetExcludingGoodwill', window );">Intangible Assets, Net</a></td>
<td class="nump">67,610<span></span>
</td>
<td class="nump">118,789<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_PatentsMember', window );">Patents</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsLineItems', window );"><strong>Finite-Lived Intangible Assets [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IntangibleAssetsGrossExcludingGoodwill', window );">Intangible assets</a></td>
<td class="nump">888,910<span></span>
</td>
<td class="nump">888,910<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization', window );">Less - accumulated amortization</a></td>
<td class="num">(584,493)<span></span>
</td>
<td class="num">(496,807)<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IntangibleAssetsNetExcludingGoodwill', window );">Intangible Assets, Net</a></td>
<td class="nump">304,417<span></span>
</td>
<td class="nump">392,103<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_DevelopedTechnologyRightsMember', window );">Developed Technology</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsLineItems', window );"><strong>Finite-Lived Intangible Assets [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IntangibleAssetsGrossExcludingGoodwill', window );">Intangible assets</a></td>
<td class="nump">240,000<span></span>
</td>
<td class="nump">240,000<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization', window );">Less - accumulated amortization</a></td>
<td class="num">(188,000)<span></span>
</td>
<td class="num">(172,000)<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IntangibleAssetsNetExcludingGoodwill', window );">Intangible Assets, Net</a></td>
<td class="nump">52,000<span></span>
</td>
<td class="nump">68,000<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=tgen_FavorableContractAssetMember', window );">Favorable contract assets</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsLineItems', window );"><strong>Finite-Lived Intangible Assets [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IntangibleAssetsGrossExcludingGoodwill', window );">Intangible assets</a></td>
<td class="nump">384,465<span></span>
</td>
<td class="nump">384,465<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization', window );">Less - accumulated amortization</a></td>
<td class="num">(379,839)<span></span>
</td>
<td class="num">(376,139)<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IntangibleAssetsNetExcludingGoodwill', window );">Intangible Assets, Net</a></td>
<td class="nump">4,626<span></span>
</td>
<td class="nump">8,326<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_CustomerContractsMember', window );">Customer contract</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsLineItems', window );"><strong>Finite-Lived Intangible Assets [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IntangibleAssetsGrossExcludingGoodwill', window );">Intangible assets</a></td>
<td class="nump">2,225,123<span></span>
</td>
<td class="nump">1,772,659<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization', window );">Less - accumulated amortization</a></td>
<td class="num">(290,025)<span></span>
</td>
<td class="num">(110,791)<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IntangibleAssetsNetExcludingGoodwill', window );">Intangible Assets, Net</a></td>
<td class="nump">1,935,098<span></span>
</td>
<td class="nump">1,661,868<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IndefiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_TrademarksMember', window );">Trademarks</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsLineItems', window );"><strong>Finite-Lived Intangible Assets [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IntangibleAssetsGrossExcludingGoodwill', window );">Intangible assets</a></td>
<td class="nump">26,896<span></span>
</td>
<td class="nump">26,896<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization', window );">Less - accumulated amortization</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IntangibleAssetsNetExcludingGoodwill', window );">Intangible Assets, Net</a></td>
<td class="nump">26,896<span></span>
</td>
<td class="nump">26,896<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IndefiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_InProcessResearchAndDevelopmentMember', window );">In process R&amp;D</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsLineItems', window );"><strong>Finite-Lived Intangible Assets [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IntangibleAssetsGrossExcludingGoodwill', window );">Intangible assets</a></td>
<td class="nump">263,936<span></span>
</td>
<td class="nump">263,936<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization', window );">Less - accumulated amortization</a></td>
<td class="num">(141,394)<span></span>
</td>
<td class="num">(103,689)<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IntangibleAssetsNetExcludingGoodwill', window );">Intangible Assets, Net</a></td>
<td class="nump">122,542<span></span>
</td>
<td class="nump">160,247<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_FiniteLivedIntangibleLiabilityAxis=tgen_UnfavorableContractLiabilityMember', window );">Unfavorable Contract Liability</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsLineItems', window );"><strong>Finite-Lived Intangible Assets [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_IntangibleLiabilityGross', window );">Intangible liability</a></td>
<td class="nump">2,618,168<span></span>
</td>
<td class="nump">2,618,168<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_FiniteLivedIntangibleLiabilitiesAccumulatedAmortization', window );">Less - accumulated amortization</a></td>
<td class="num">(2,195,329)<span></span>
</td>
<td class="num">(2,019,122)<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_IntangibleLiabilitiesNet', window );">Intangible Liabilities, Net</a></td>
<td class="nump">$ 422,839<span></span>
</td>
<td class="nump">$ 599,046<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_FiniteLivedIntangibleLiabilitiesAccumulatedAmortization">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Finite-Lived Intangible Liabilities, Accumulated Amortization</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_FiniteLivedIntangibleLiabilitiesAccumulatedAmortization</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_IntangibleLiabilitiesNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Intangible Liabilities, Net</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_IntangibleLiabilitiesNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_IntangibleLiabilityGross">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Intangible Liability, Gross</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_IntangibleLiabilityGross</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Accumulated amount of amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 40<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482640/350-30-55-40<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480265/350-10-S45-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-2<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(16))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 40<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482640/350-30-55-40<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-2<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-2<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482686/350-30-45-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-2<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-3<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 985<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481283/985-20-50-2<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 926<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483154/926-20-50-5<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IntangibleAssetsGrossExcludingGoodwill">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount before accumulated amortization of intangible assets, excluding goodwill.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(15))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IntangibleAssetsGrossExcludingGoodwill</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IntangibleAssetsNetExcludingGoodwill">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Sum of the carrying amounts of all intangible assets, excluding goodwill, as of the balance sheet date, net of accumulated amortization and impairment charges.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-2<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-2<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482686/350-30-45-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IntangibleAssetsNetExcludingGoodwill</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=tgen_ProductCertificationMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=tgen_ProductCertificationMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_PatentsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_PatentsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_DevelopedTechnologyRightsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_DevelopedTechnologyRightsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=tgen_FavorableContractAssetMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=tgen_FavorableContractAssetMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_CustomerContractsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_CustomerContractsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IndefiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_TrademarksMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IndefiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_TrademarksMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IndefiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_InProcessResearchAndDevelopmentMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IndefiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_InProcessResearchAndDevelopmentMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_FiniteLivedIntangibleLiabilityAxis=tgen_UnfavorableContractLiabilityMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_FiniteLivedIntangibleLiabilityAxis=tgen_UnfavorableContractLiabilityMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>71
<FILENAME>R59.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Intangible assets and liabilities other than goodwill - Schedule of Aggregate Future Amortization (Details) - USD ($)<br></strong></div></th>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsNetAmortizationExpenseRollingMaturityAbstract', window );"><strong>Finite-Lived Intangible Assets, Net, Amortization Expense, Rolling Maturity [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsNet', window );">Total</a></td>
<td class="nump">$ 2,513,189<span></span>
</td>
<td class="nump">$ 2,436,230<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingMaturityAbstract', window );"><strong>Finite-Lived Intangible Assets And Liability, Net, Amortization Expense, Rolling Maturity [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseNextRolling12Months', window );">2025</a></td>
<td class="nump">248,796<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearTwo', window );">2026</a></td>
<td class="nump">292,727<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearThree', window );">2027</a></td>
<td class="nump">299,135<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearFour', window );">2028</a></td>
<td class="nump">160,486<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearFive', window );">2029</a></td>
<td class="nump">142,994<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingAfterYearFive', window );">Thereafter</a></td>
<td class="nump">919,316<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_FiniteLivedIntangibleAssetsAndLiabilitiesNet', window );">Total</a></td>
<td class="nump">2,063,454<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=tgen_NonContractRelatedIntangibleAssetsMember', window );">Non-contract related intangibles</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsNetAmortizationExpenseRollingMaturityAbstract', window );"><strong>Finite-Lived Intangible Assets, Net, Amortization Expense, Rolling Maturity [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextRollingTwelveMonths', window );">2025</a></td>
<td class="nump">169,754<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRollingYearTwo', window );">2026</a></td>
<td class="nump">168,244<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRollingYearThree', window );">2027</a></td>
<td class="nump">167,936<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRollingYearFour', window );">2028</a></td>
<td class="nump">23,278<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRollingYearFive', window );">2029</a></td>
<td class="nump">5,786<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRollingAfterYearFive', window );">Thereafter</a></td>
<td class="nump">11,571<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsNet', window );">Total</a></td>
<td class="nump">546,569<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_ContractBasedIntangibleAssetsMember', window );">Contract related intangibles</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingMaturityAbstract', window );"><strong>Finite-Lived Intangible Assets And Liability, Net, Amortization Expense, Rolling Maturity [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseNextRolling12Months', window );">2025</a></td>
<td class="nump">79,042<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearTwo', window );">2026</a></td>
<td class="nump">124,483<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearThree', window );">2027</a></td>
<td class="nump">131,199<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearFour', window );">2028</a></td>
<td class="nump">137,208<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearFive', window );">2029</a></td>
<td class="nump">137,208<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingAfterYearFive', window );">Thereafter</a></td>
<td class="nump">907,745<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_FiniteLivedIntangibleAssetsAndLiabilitiesNet', window );">Total</a></td>
<td class="nump">$ 1,516,885<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_FiniteLivedIntangibleAssetsAndLiabilitiesNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Finite-Lived Intangible Assets And Liabilities, Net</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_FiniteLivedIntangibleAssetsAndLiabilitiesNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseNextRolling12Months">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Finite-Lived Intangible Assets And Liability, Net, Amortization Expense, Next Rolling 12 Months</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseNextRolling12Months</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingAfterYearFive">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Finite-Lived Intangible Assets And Liability, Net, Amortization Expense, Rolling After Year Five</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingAfterYearFive</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingMaturityAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Finite-Lived Intangible Assets And Liability, Net, Amortization Expense, Rolling Maturity</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingMaturityAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearFive">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Finite-Lived Intangible Assets And Liability, Net, Amortization Expense, Rolling Year Five</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearFive</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearFour">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Finite-Lived Intangible Assets And Liability, Net, Amortization Expense, Rolling Year Four</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearFour</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearThree">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Finite-Lived Intangible Assets And Liability, Net, Amortization Expense, Rolling Year Three</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearThree</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearTwo">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Finite-Lived Intangible Assets And Liability, Net, Amortization Expense, Rolling Year Two</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearTwo</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextRollingTwelveMonths">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of amortization expense for assets, excluding financial assets and goodwill, lacking physical substance with a finite life expected to be recognized in the next rolling twelve months following the latest balance sheet. For interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextRollingTwelveMonths</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRollingAfterYearFive">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of amortization expense for assets, excluding financial assets and goodwill, lacking physical substance with a finite life expected to be recognized after the fifth rolling twelve months following the latest balance sheet. For interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRollingAfterYearFive</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRollingYearFive">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of amortization expense for assets, excluding financial assets and goodwill, lacking physical substance with a finite life expected to be recognized in the fifth rolling twelve months following the latest balance sheet. For interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRollingYearFive</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRollingYearFour">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of amortization expense for assets, excluding financial assets and goodwill, lacking physical substance with a finite life expected to be recognized in the fourth rolling twelve months following the latest balance sheet. For interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRollingYearFour</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRollingYearThree">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of amortization expense for assets, excluding financial assets and goodwill, lacking physical substance with a finite life expected to be recognized in the third rolling twelve months following the latest balance sheet. For interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRollingYearThree</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRollingYearTwo">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of amortization expense for assets, excluding financial assets and goodwill, lacking physical substance with a finite life expected to be recognized in the second rolling twelve months following the latest balance sheet. For interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRollingYearTwo</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount after amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 926<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483154/926-20-50-5<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsNetAmortizationExpenseRollingMaturityAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsNetAmortizationExpenseRollingMaturityAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=tgen_NonContractRelatedIntangibleAssetsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=tgen_NonContractRelatedIntangibleAssetsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_ContractBasedIntangibleAssetsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_ContractBasedIntangibleAssetsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>72
<FILENAME>R60.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="2" rowspan="1"><div style="width: 200px;"><strong>Property, plant and equipment - Summary of Property and Equipment (Details) - USD ($)<br></strong></div></th>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentLineItems', window );"><strong>Property, Plant and Equipment [Line Items]</strong></a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentGross', window );">Property and equipment, gross</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">$ 5,733,242<span></span>
</td>
<td class="nump">$ 5,427,445<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment', window );">Less: accumulated depreciation and amortization</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="num">(3,995,206)<span></span>
</td>
<td class="num">(4,264,868)<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentNet', window );">Net property, plant and equipment</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">$ 1,738,036<span></span>
</td>
<td class="nump">1,162,577<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_RangeAxis=srt_MinimumMember', window );">Minimum</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentLineItems', window );"><strong>Property, Plant and Equipment [Line Items]</strong></a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentUsefulLife', window );">Useful life - years</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">3 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_RangeAxis=srt_MaximumMember', window );">Maximum</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentLineItems', window );"><strong>Property, Plant and Equipment [Line Items]</strong></a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentUsefulLife', window );">Useful life - years</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">15 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_EnergyEquipmentMember', window );">Energy systems</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentLineItems', window );"><strong>Property, Plant and Equipment [Line Items]</strong></a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentGross', window );">Property and equipment, gross</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">$ 2,810,232<span></span>
</td>
<td class="nump">2,810,232<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_EnergyEquipmentMember', window );">Energy systems | Minimum</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentLineItems', window );"><strong>Property, Plant and Equipment [Line Items]</strong></a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentUsefulLife', window );">Useful life - years</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">10 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_EnergyEquipmentMember', window );">Energy systems | Maximum</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentLineItems', window );"><strong>Property, Plant and Equipment [Line Items]</strong></a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentUsefulLife', window );">Useful life - years</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">15 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_MachineryAndEquipmentMember', window );">Machinery and Equipment</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentLineItems', window );"><strong>Property, Plant and Equipment [Line Items]</strong></a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentGross', window );">Property and equipment, gross</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">$ 1,598,538<span></span>
</td>
<td class="nump">1,744,596<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_MachineryAndEquipmentMember', window );">Machinery and Equipment | Minimum</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentLineItems', window );"><strong>Property, Plant and Equipment [Line Items]</strong></a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentUsefulLife', window );">Useful life - years</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">5 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_MachineryAndEquipmentMember', window );">Machinery and Equipment | Maximum</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentLineItems', window );"><strong>Property, Plant and Equipment [Line Items]</strong></a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentUsefulLife', window );">Useful life - years</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">7 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_FurnitureAndFixturesMember', window );">Furniture and Fixtures</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentLineItems', window );"><strong>Property, Plant and Equipment [Line Items]</strong></a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentGross', window );">Property and equipment, gross</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">$ 224,868<span></span>
</td>
<td class="nump">212,963<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentUsefulLife', window );">Useful life - years</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">5 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_ComputerSoftwareIntangibleAssetMember', window );">Computer software</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentLineItems', window );"><strong>Property, Plant and Equipment [Line Items]</strong></a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentGross', window );">Property and equipment, gross</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">$ 192,865<span></span>
</td>
<td class="nump">192,865<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_ComputerSoftwareIntangibleAssetMember', window );">Computer software | Minimum</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentLineItems', window );"><strong>Property, Plant and Equipment [Line Items]</strong></a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentUsefulLife', window );">Useful life - years</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">3 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_ComputerSoftwareIntangibleAssetMember', window );">Computer software | Maximum</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentLineItems', window );"><strong>Property, Plant and Equipment [Line Items]</strong></a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentUsefulLife', window );">Useful life - years</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">5 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_LeaseholdImprovementsMember', window );">Leasehold improvements</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentLineItems', window );"><strong>Property, Plant and Equipment [Line Items]</strong></a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentGross', window );">Property and equipment, gross</a></td>
<td class="th" style="border-bottom: 0px;"><sup>[1]</sup></td>
<td class="nump">$ 906,739<span></span>
</td>
<td class="nump">$ 466,789<span></span>
</td>
</tr>
<tr><td colspan="3"></td></tr>
<tr><td colspan="3"><table class="outerFootnotes" width="100%"><tr class="outerFootnote">
<td style="vertical-align: top; width: 12pt;" valign="top">[1]</td>
<td style="vertical-align: top;" valign="top">Lesser of estimated useful life of asset or lease term</td>
</tr></table></td></tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of accumulated depreciation, depletion and amortization for physical assets used in the normal conduct of business to produce goods and services.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(8)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(14))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 360<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482099/360-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentGross">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(8))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(13))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 360<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482099/360-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentGross</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7A<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-7A<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -SubTopic 10<br> -Topic 360<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482099/360-10-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7A<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-7A<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(8))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 360<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478451/942-360-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentUsefulLife">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Useful life of long lived, physical assets used in the normal conduct of business and not intended for resale, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days. Examples include, but not limited to, land, buildings, machinery and equipment, office equipment, furniture and fixtures, and computer equipment.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentUsefulLife</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_RangeAxis=srt_MinimumMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RangeAxis=srt_MinimumMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_RangeAxis=srt_MaximumMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RangeAxis=srt_MaximumMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_EnergyEquipmentMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_EnergyEquipmentMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_MachineryAndEquipmentMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_MachineryAndEquipmentMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_FurnitureAndFixturesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_FurnitureAndFixturesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_ComputerSoftwareIntangibleAssetMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_ComputerSoftwareIntangibleAssetMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_LeaseholdImprovementsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_LeaseholdImprovementsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>73
<FILENAME>R61.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Property, plant and equipment - Narrative (Details) - USD ($)<br></strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentLineItems', window );"><strong>Property, Plant and Equipment [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_DepreciationDepletionandAmortizationPropertyPlantandEquipment', window );">Depreciation and amortization</a></td>
<td class="nump">$ 354,485<span></span>
</td>
<td class="nump">$ 454,859<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment', window );">Proceeds on sale of property and equipment</a></td>
<td class="nump">51,400<span></span>
</td>
<td class="nump">34,655<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GainLossOnDispositionOfAssets1', window );">Gain on sale of assets</a></td>
<td class="num">$ (12,181)<span></span>
</td>
<td class="num">(36,207)<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_RestatementAxis=srt_RestatementAdjustmentMember', window );">Revision of Prior Period, Adjustment</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentLineItems', window );"><strong>Property, Plant and Equipment [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_AccruedDecommissioningCosts', window );">Accrued decommissioning costs</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 8,687<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_AccruedDecommissioningCosts">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Accrued Decommissioning Costs</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_AccruedDecommissioningCosts</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_DepreciationDepletionandAmortizationPropertyPlantandEquipment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Depreciation, Depletion and Amortization, Property, Plant and Equipment</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_DepreciationDepletionandAmortizationPropertyPlantandEquipment</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GainLossOnDispositionOfAssets1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of gain (loss) on sale or disposal of assets, including but not limited to property plant and equipment, intangible assets and equity in securities of subsidiaries or equity method investee.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GainLossOnDispositionOfAssets1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The cash inflow from the sale of long-lived, physical assets that are used in the normal conduct of business to produce goods and services and not intended for resale.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 12<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-12<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7A<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-7A<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_RestatementAxis=srt_RestatementAdjustmentMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RestatementAxis=srt_RestatementAdjustmentMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>74
<FILENAME>R62.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Goodwill - Schedule of Goodwill (Details) - USD ($)<br></strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GoodwillRollForward', window );"><strong>Goodwill [Roll Forward]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_Goodwill', window );">Goodwill, beginning</a></td>
<td class="nump">$ 2,743,424<span></span>
</td>
<td class="nump">$ 2,406,156<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GoodwillImpairmentLoss', window );">Impairment</a></td>
<td class="num">(217,295)<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GoodwillAcquiredDuringPeriod', window );">Acquisition</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">337,268<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GoodwillPurchaseAccountingAdjustments', window );">Acquisition - adjustment</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(179,563)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_Goodwill', window );">Goodwill, ending</a></td>
<td class="nump">2,346,566<span></span>
</td>
<td class="nump">2,743,424<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StatementBusinessSegmentsAxis=tgen_ProductsSegmentMember', window );">Products Segment</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GoodwillRollForward', window );"><strong>Goodwill [Roll Forward]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_Goodwill', window );">Goodwill, beginning</a></td>
<td class="nump">40,870<span></span>
</td>
<td class="nump">40,870<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GoodwillImpairmentLoss', window );">Impairment</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GoodwillAcquiredDuringPeriod', window );">Acquisition</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GoodwillPurchaseAccountingAdjustments', window );">Acquisition - adjustment</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_Goodwill', window );">Goodwill, ending</a></td>
<td class="nump">40,870<span></span>
</td>
<td class="nump">40,870<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StatementBusinessSegmentsAxis=tgen_EnergyProductionMember', window );">Energy Production</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GoodwillRollForward', window );"><strong>Goodwill [Roll Forward]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_Goodwill', window );">Goodwill, beginning</a></td>
<td class="nump">2,365,286<span></span>
</td>
<td class="nump">2,365,286<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GoodwillImpairmentLoss', window );">Impairment</a></td>
<td class="num">(217,295)<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GoodwillAcquiredDuringPeriod', window );">Acquisition</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GoodwillPurchaseAccountingAdjustments', window );">Acquisition - adjustment</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_Goodwill', window );">Goodwill, ending</a></td>
<td class="nump">2,147,991<span></span>
</td>
<td class="nump">2,365,286<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StatementBusinessSegmentsAxis=tgen_ServicesSegmentMember', window );">Services Segment</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GoodwillRollForward', window );"><strong>Goodwill [Roll Forward]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_Goodwill', window );">Goodwill, beginning</a></td>
<td class="nump">337,268<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GoodwillImpairmentLoss', window );">Impairment</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GoodwillAcquiredDuringPeriod', window );">Acquisition</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">337,268<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GoodwillPurchaseAccountingAdjustments', window );">Acquisition - adjustment</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(179,563)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_Goodwill', window );">Goodwill, ending</a></td>
<td class="nump">$ 157,705<span></span>
</td>
<td class="nump">$ 337,268<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_Goodwill">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 49<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-49<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482548/350-20-55-24<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 100<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482078/820-10-55-100<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(15))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482598/350-20-45-1<br><br>Reference 7: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1<br><br>Reference 8: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (h)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(10)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478546/942-210-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_Goodwill</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GoodwillAcquiredDuringPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of increase in asset representing future economic benefits arising from other assets acquired in a business combination that are not individually identified and separately recognized resulting from a business combination.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482548/350-20-55-24<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GoodwillAcquiredDuringPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GoodwillImpairmentLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482548/350-20-55-24<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-2<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 100<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482078/820-10-55-100<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482598/350-20-45-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GoodwillImpairmentLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GoodwillPurchaseAccountingAdjustments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of increase (decrease) from measurement period adjustment 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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 25<br> -Paragraph 16<br> -SubTopic 10<br> -Topic 805<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479405/805-10-25-16<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GoodwillPurchaseAccountingAdjustments</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GoodwillRollForward">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GoodwillRollForward</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StatementBusinessSegmentsAxis=tgen_ProductsSegmentMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StatementBusinessSegmentsAxis=tgen_ProductsSegmentMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StatementBusinessSegmentsAxis=tgen_EnergyProductionMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StatementBusinessSegmentsAxis=tgen_EnergyProductionMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StatementBusinessSegmentsAxis=tgen_ServicesSegmentMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StatementBusinessSegmentsAxis=tgen_ServicesSegmentMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>75
<FILENAME>R63.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Goodwill - Narrative (Details) - USD ($)<br></strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GoodwillLineItems', window );"><strong>Goodwill [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GoodwillImpairmentLoss', window );">Goodwill impairment</a></td>
<td class="nump">$ 217,295<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StatementBusinessSegmentsAxis=tgen_ServicesSegmentMember', window );">Services Segment</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GoodwillLineItems', window );"><strong>Goodwill [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GoodwillImpairmentLoss', window );">Goodwill impairment</a></td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GoodwillImpairmentLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482548/350-20-55-24<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-2<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 100<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482078/820-10-55-100<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482598/350-20-45-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GoodwillImpairmentLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GoodwillLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482548/350-20-55-24<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-2<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (h)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1A<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1A<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GoodwillLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StatementBusinessSegmentsAxis=tgen_ServicesSegmentMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StatementBusinessSegmentsAxis=tgen_ServicesSegmentMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>76
<FILENAME>R64.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Related Party Notes (Details) - USD ($)<br></strong></div></th>
<th class="th"><div>Feb. 18, 2025</div></th>
<th class="th"><div>Jan. 14, 2025</div></th>
<th class="th"><div>Sep. 18, 2024</div></th>
<th class="th"><div>Jul. 23, 2024</div></th>
<th class="th"><div>Mar. 21, 2024</div></th>
<th class="th"><div>Oct. 10, 2023</div></th>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Oct. 09, 2023</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RelatedPartyTransactionLineItems', window );"><strong>Related Party Transaction [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NotesPayable', window );">Related party notes payable</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 1,548,872<span></span>
</td>
<td class="nump">$ 505,505<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis=us-gaap_RelatedPartyMember', window );">Related Party | July 2024 Promissory Note</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RelatedPartyTransactionLineItems', window );"><strong>Related Party Transaction [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RelatedPartyTransactionRate', window );">Related party transaction, rate</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">5.06%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis=srt_DirectorMember', window );">Director | October 2023 Promissory Note</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RelatedPartyTransactionLineItems', window );"><strong>Related Party Transaction [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_RelatedPartyTransactionPeriod', window );">Related party transaction, period</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">1 year<span></span>
</td>
<td class="text">1 year<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RelatedPartyTransactionRate', window );">Related party transaction, rate</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">5.12%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis=srt_DirectorMember', window );">Director | July 2024 Promissory Note</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RelatedPartyTransactionLineItems', window );"><strong>Related Party Transaction [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NotesPayable', window );">Related party notes payable</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 500,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_RelatedPartyTransactionPeriod', window );">Related party transaction, period</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">1 year<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis=srt_DirectorMember', window );">Director | September 2024 Promissory Note</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RelatedPartyTransactionLineItems', window );"><strong>Related Party Transaction [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NotesPayable', window );">Related party notes payable</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 500,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_RelatedPartyTransactionPeriod', window );">Related party transaction, period</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">1 year<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RelatedPartyTransactionRate', window );">Related party transaction, rate</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">4.57%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis=srt_DirectorMember', window );">Director | Average Closing Share Price | Subsequent Event</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RelatedPartyTransactionLineItems', window );"><strong>Related Party Transaction [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_RelatedPartyTransactionPeriod', window );">Related party transaction, period</a></td>
<td class="text">30 days<span></span>
</td>
<td class="text">30 days<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_CounterpartyNameAxis=tgen_JohnN.HatsopoulosAndEarlR.LewisIIIMember', window );">John N. Hatsopoulos and Earl R. Lewis, III | Related Party</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RelatedPartyTransactionLineItems', window );"><strong>Related Party Transaction [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NotesPayable', window );">Related party notes payable</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 1,000,000<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_CounterpartyNameAxis=tgen_EarlR.LewisIIIMember', window );">Earl R. Lewis, III | Related Party</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RelatedPartyTransactionLineItems', window );"><strong>Related Party Transaction [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NotesPayable', window );">Related party notes payable</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 500,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 500,000<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_CounterpartyNameAxis=tgen_EarlR.LewisIIIMember', window );">Earl R. Lewis, III | Director</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RelatedPartyTransactionLineItems', window );"><strong>Related Party Transaction [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NotesPayable', window );">Related party notes payable</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">506,474<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InterestPayableCurrentAndNoncurrent', window );">Interest Payable</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">6,474<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_CounterpartyNameAxis=tgen_JohnN.HatsopoulosMember', window );">John N. Hatsopoulos | Director</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RelatedPartyTransactionLineItems', window );"><strong>Related Party Transaction [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NotesPayable', window );">Related party notes payable</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,042,398<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InterestPayableCurrentAndNoncurrent', window );">Interest Payable</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 42,398<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_RelatedPartyTransactionPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Related Party Transaction, Period</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_RelatedPartyTransactionPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InterestPayableCurrentAndNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of interest payable on debt, including, but not limited to, trade payables.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(15)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478546/942-210-S99-1<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(15)(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InterestPayableCurrentAndNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NotesPayable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Including the current and noncurrent portions, aggregate carrying amount of all types of notes payable, as of the balance sheet date, with initial maturities beyond one year or beyond the normal operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(22))<br> -SubTopic 10<br> -Topic 210<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(16))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478546/942-210-S99-1<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(16)(a)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-1<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(17))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NotesPayable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RelatedPartyTransactionLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 310<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 13<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481990/310-10-45-13<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-07(2)(c)(2)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-07(2)(c)(2)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-07(2)(g)(3))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RelatedPartyTransactionLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RelatedPartyTransactionRate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Identify the stated interest rate per the agreement, for example, leasing and debt arrangements between related parties.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RelatedPartyTransactionRate</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis=us-gaap_RelatedPartyMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RelatedPartyTransactionsByRelatedPartyAxis=us-gaap_RelatedPartyMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RelatedPartyTransactionAxis=tgen_July2024PromissoryNoteMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RelatedPartyTransactionAxis=tgen_July2024PromissoryNoteMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis=srt_DirectorMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RelatedPartyTransactionsByRelatedPartyAxis=srt_DirectorMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RelatedPartyTransactionAxis=tgen_October2023PromissoryNoteMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RelatedPartyTransactionAxis=tgen_October2023PromissoryNoteMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RelatedPartyTransactionAxis=tgen_September2024PromissoryNoteMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RelatedPartyTransactionAxis=tgen_September2024PromissoryNoteMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RelatedPartyTransactionAxis=tgen_AverageClosingSharePriceMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RelatedPartyTransactionAxis=tgen_AverageClosingSharePriceMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SubsequentEventTypeAxis=us-gaap_SubsequentEventMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SubsequentEventTypeAxis=us-gaap_SubsequentEventMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_CounterpartyNameAxis=tgen_JohnN.HatsopoulosAndEarlR.LewisIIIMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_CounterpartyNameAxis=tgen_JohnN.HatsopoulosAndEarlR.LewisIIIMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_CounterpartyNameAxis=tgen_EarlR.LewisIIIMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_CounterpartyNameAxis=tgen_EarlR.LewisIIIMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_CounterpartyNameAxis=tgen_JohnN.HatsopoulosMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_CounterpartyNameAxis=tgen_JohnN.HatsopoulosMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>77
<FILENAME>R65.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Commitments and contingencies (Details)<br></strong></div></th>
<th class="th" colspan="2"></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="2">12 Months Ended</th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th">
<div>Feb. 07, 2025 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Feb. 07, 2025 </div>
<div>CAD ($)</div>
</th>
<th class="th">
<div>Jan. 13, 2025 </div>
<div>CAD ($)</div>
</th>
<th class="th">
<div>Nov. 23, 2022 </div>
<div>CAD ($)</div>
</th>
<th class="th"><div>Jul. 09, 2020</div></th>
<th class="th">
<div>Dec. 31, 2024 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Dec. 31, 2023 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Dec. 31, 2022 </div>
<div>USD ($)</div>
</th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LossContingenciesLineItems', window );"><strong>Loss Contingencies [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_PeriodOfSeveranceBenefitsForKeyManagementEmployeesUnderThePlan', window );">Period of severance benefits for key management employees under the plan</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">12 months<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_ChangeInControlSeveranceBenefitPlanPeriodInForce', window );">Change in Control Severance Benefit Plan, period in force</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">3 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_ChangeInControlSeveranceBenefitPlanPeriodInForceExtension', window );">Change in Control Severance Benefit Plan, extension period</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">1 year<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_ChangeInControlSeveranceBenefitPlanNoticePeriodForCancellation', window );">Change in Control Severance Benefit Plan, notice period for cancellation</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">6 months<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_ChangeInControlSeveranceBenefitPlanThresholdPeriodForTerminationPriorToChangeInControl', window );">Change in Control Severance Benefit Plan, qualifying termination period prior to change in control</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">3 months<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_ChangeInControlSeveranceBenefitPlanThresholdPeriodForTerminationAfterToChangeInControl', window );">Change in Control Severance Benefit Plan, qualifying termination period after change in control</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">18 months<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_LitigationCaseAxis=tgen_TheCorporationOfTheTownOfMiltonMiltonEnergyGenerationSolutionsInc.AndMiltonHydroDistributionIncMember', window );">The Corporation Of The Town Of Milton, Milton Energy Generation Solutions Inc. And Milton Hydro Distribution Inc</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LossContingenciesLineItems', window );"><strong>Loss Contingencies [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LossContingencyDamagesSoughtValue', window );">Loss contingency, damages sought</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 1,000,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LitigationReserve', window );">Reserve for anticipated damages</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 150,000<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_LitigationCaseAxis=tgen_TheCorporationOfTheTownOfMiltonMiltonEnergyGenerationSolutionsInc.AndMiltonHydroDistributionIncMember', window );">The Corporation Of The Town Of Milton, Milton Energy Generation Solutions Inc. And Milton Hydro Distribution Inc | Subsequent Event</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LossContingenciesLineItems', window );"><strong>Loss Contingencies [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LossContingencyDamagesAwardedValue', window );">Loss contingency, damages awarded</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 400,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LossContingencyDamagesPaidValue', window );">Loss contingency, damages paid</a></td>
<td class="nump">$ 70,994<span></span>
</td>
<td class="nump">$ 100,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=tgen_OfficeSpaceAndWarehouseFacilitiesMember', window );">Office space and warehouse facilities</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LossContingenciesLineItems', window );"><strong>Loss Contingencies [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseCost', window );">Lease expense</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 796,400<span></span>
</td>
<td class="nump">$ 812,815<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_ChangeInControlSeveranceBenefitPlanNoticePeriodForCancellation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Change in Control Severance Benefit Plan, Notice Period for Cancellation</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_ChangeInControlSeveranceBenefitPlanNoticePeriodForCancellation</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_ChangeInControlSeveranceBenefitPlanPeriodInForce">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Change in Control Severance Benefit Plan, Period in Force</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_ChangeInControlSeveranceBenefitPlanPeriodInForce</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_ChangeInControlSeveranceBenefitPlanPeriodInForceExtension">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Change in Control Severance Benefit Plan, Period in Force, Extension</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_ChangeInControlSeveranceBenefitPlanPeriodInForceExtension</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_ChangeInControlSeveranceBenefitPlanThresholdPeriodForTerminationAfterToChangeInControl">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Change in Control Severance Benefit Plan, Threshold Period for Termination after to Change in Control</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_ChangeInControlSeveranceBenefitPlanThresholdPeriodForTerminationAfterToChangeInControl</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_ChangeInControlSeveranceBenefitPlanThresholdPeriodForTerminationPriorToChangeInControl">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Change in Control Severance Benefit Plan, Threshold Period for Termination Prior to Change in Control</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_ChangeInControlSeveranceBenefitPlanThresholdPeriodForTerminationPriorToChangeInControl</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_PeriodOfSeveranceBenefitsForKeyManagementEmployeesUnderThePlan">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Period of Severance Benefits for Key Management Employees under the Plan</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_PeriodOfSeveranceBenefitsForKeyManagementEmployeesUnderThePlan</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LitigationReserve">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Aggregate carrying amount of the estimated litigation liability for known or estimated probable loss from litigation, which may include attorneys' fees and other litigation costs.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 450<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483076/450-20-50-1<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(25))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LitigationReserve</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LossContingenciesLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 450<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483076/450-20-50-4<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 450<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483076/450-20-50-9<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 720<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483359/720-20-50-1<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 460<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 27<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482395/460-10-55-27<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 450<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483076/450-20-50-9<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 450<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483076/450-20-50-4<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 460<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482425/460-10-50-3<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 450<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483076/450-20-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LossContingenciesLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LossContingencyDamagesAwardedValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of damages awarded to the plaintiff in the legal matter.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 450<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483076/450-20-50-1<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 450<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483076/450-20-50-4<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 450<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483076/450-20-50-9<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LossContingencyDamagesAwardedValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LossContingencyDamagesPaidValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of damages paid to the plaintiff in the legal matter.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 450<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483076/450-20-50-1<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 450<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483076/450-20-50-4<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 450<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483076/450-20-50-9<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LossContingencyDamagesPaidValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LossContingencyDamagesSoughtValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The value (monetary amount) of the award the plaintiff seeks in the legal matter.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 450<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483076/450-20-50-1<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 450<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483076/450-20-50-4<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 450<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483076/450-20-50-9<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LossContingencyDamagesSoughtValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseCost">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 53<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479589/842-20-55-53<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseCost</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_LitigationCaseAxis=tgen_TheCorporationOfTheTownOfMiltonMiltonEnergyGenerationSolutionsInc.AndMiltonHydroDistributionIncMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_LitigationCaseAxis=tgen_TheCorporationOfTheTownOfMiltonMiltonEnergyGenerationSolutionsInc.AndMiltonHydroDistributionIncMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SubsequentEventTypeAxis=us-gaap_SubsequentEventMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SubsequentEventTypeAxis=us-gaap_SubsequentEventMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=tgen_OfficeSpaceAndWarehouseFacilitiesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentByTypeAxis=tgen_OfficeSpaceAndWarehouseFacilitiesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>78
<FILENAME>R66.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Product warranty - Schedule of Product Warranty Reserve (Details) - USD ($)<br></strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GuaranteesAbstract', window );"><strong>Guarantees [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_ProductWarrantyPeriod', window );">Product warranty period</a></td>
<td class="text">1 year<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_MovementInStandardProductWarrantyAccrualRollForward', window );"><strong>Schedule of Product Warranty Reserve [Roll Forward]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StandardProductWarrantyAccrual', window );">Warranty reserve, beginning balance</a></td>
<td class="nump">$ 142,000<span></span>
</td>
<td class="nump">$ 137,800<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StandardProductWarrantyAccrualWarrantiesIssued', window );">Warranty provision for units sold</a></td>
<td class="nump">257,898<span></span>
</td>
<td class="nump">286,391<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StandardProductWarrantyAccrualPayments', window );">Costs of warranty incurred</a></td>
<td class="num">(276,898)<span></span>
</td>
<td class="num">(282,191)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StandardProductWarrantyAccrual', window );">Warranty reserve, ending balance</a></td>
<td class="nump">$ 123,000<span></span>
</td>
<td class="nump">$ 142,000<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_ProductWarrantyPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Product Warranty Period</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_ProductWarrantyPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GuaranteesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GuaranteesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_MovementInStandardProductWarrantyAccrualRollForward">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_MovementInStandardProductWarrantyAccrualRollForward</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StandardProductWarrantyAccrual">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 460<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (c)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482425/460-10-50-8<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 460<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (c)(5)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482425/460-10-50-8<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StandardProductWarrantyAccrual</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StandardProductWarrantyAccrualPayments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 460<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (c)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482425/460-10-50-8<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StandardProductWarrantyAccrualPayments</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StandardProductWarrantyAccrualWarrantiesIssued">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of increase in the standard product warranty accrual from warranties issued. Excludes extended product warranties.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 460<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (c)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482425/460-10-50-8<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StandardProductWarrantyAccrualWarrantiesIssued</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>79
<FILENAME>R67.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Leases - Narrative (Details)<br></strong></div></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="2">12 Months Ended</th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th">
<div>Jan. 15, 2025 </div>
<div>USD ($) </div>
<div>ft&#178;</div>
</th>
<th class="th">
<div>Feb. 01, 2024 </div>
<div>USD ($) </div>
<div>ft&#178;</div>
</th>
<th class="th">
<div>Jan. 01, 2024 </div>
<div>USD ($) </div>
<div>ft&#178;</div>
</th>
<th class="th">
<div>Dec. 31, 2024 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Dec. 31, 2023 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Jun. 17, 2024 </div>
<div>USD ($) </div>
<div>ft&#178;</div>
</th>
<th class="th">
<div>Mar. 31, 2023 </div>
<div>building </div>
<div>leaseAgreement </div>
<div>ft&#178; </div>
<div>option</div>
</th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LessorLeaseDescriptionLineItems', window );"><strong>Lessor, Lease, Description [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_LesseeOperatingLeaseNumberOfLeaseAgreements', window );">Number of lease agreements | leaseAgreement</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">2<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_LesseeOperatingLeaseNumberOfBuildings', window );">Number of buildings in lease agreements | building</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">2<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_LesseeOperatingLeaseSquareFeet', window );">Square feet of lease | ft&#178;</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">2,063<span></span>
</td>
<td class="nump">2,800<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,751<span></span>
</td>
<td class="nump">26,412<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseRemainingLeaseTerm', window );">Remaining lease term</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">5 years<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_LesseeOperatingLeaseOptionToExtendNumberOfOptions', window );">Number of options to extend lease | option</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">2<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseRenewalTerm', window );">Lease renewal term</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">3 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">3 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_LesseeOperatingLeaseOptionToExtendPeriod', window );">Option to extend, period</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">2 years<span></span>
</td>
<td class="text">3 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_LesseeOperatingLeaseOptionToExtendMonthlyRent', window );">Option to extend lease, monthly rent</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 1,891<span></span>
</td>
<td class="nump">$ 4,560<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 3,662<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseTermOfContract', window );">Operating lease, term of contract</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">3 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseExpense', window );">Operating lease, expense</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">26,962<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LeaseCost', window );">Lease cost</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">38,200<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_FinanceLeaseExpense', window );">Finance lease, expense</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 119,690<span></span>
</td>
<td class="nump">$ 2,338<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FinanceLeaseRightOfUseAssetAmortization', window );">Depreciation and amortization expense on right-of-use finance lease assets</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">61,572<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SubsequentEventTypeAxis=us-gaap_SubsequentEventMember', window );">Subsequent Event</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LessorLeaseDescriptionLineItems', window );"><strong>Lessor, Lease, Description [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_LesseeOperatingLeaseSquareFeet', window );">Square feet of lease | ft&#178;</a></td>
<td class="nump">2,969<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_LesseeOperatingLeaseOptionToExtendPeriod', window );">Option to extend, period</a></td>
<td class="text">5 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_LesseeOperatingLeaseOptionToExtendMonthlyRent', window );">Option to extend lease, monthly rent</a></td>
<td class="nump">$ 2,324<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseTermOfContract', window );">Operating lease, term of contract</a></td>
<td class="text">5 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_RangeAxis=srt_MinimumMember', window );">Minimum</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LessorLeaseDescriptionLineItems', window );"><strong>Lessor, Lease, Description [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_ConstructionInProgressExpenditures', window );">Construction in progress costs</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">900,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_RangeAxis=srt_MaximumMember', window );">Maximum</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LessorLeaseDescriptionLineItems', window );"><strong>Lessor, Lease, Description [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_ConstructionInProgressExpenditures', window );">Construction in progress costs</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 1,000,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=tgen_OfficeSpaceAndWarehouseFacilitiesMember', window );">Office space and warehouse facilities</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LessorLeaseDescriptionLineItems', window );"><strong>Lessor, Lease, Description [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseCost', window );">Lease expense</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 796,400<span></span>
</td>
<td class="nump">$ 812,815<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_ConstructionInProgressExpenditures">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Construction In Progress Expenditures</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_ConstructionInProgressExpenditures</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_FinanceLeaseExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Finance Lease, Expense</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_FinanceLeaseExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_LesseeOperatingLeaseNumberOfBuildings">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Lessee, Operating Lease, Number Of Buildings</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_LesseeOperatingLeaseNumberOfBuildings</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:integerItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_LesseeOperatingLeaseNumberOfLeaseAgreements">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Lessee, Operating Lease, Number Of Lease Agreements</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_LesseeOperatingLeaseNumberOfLeaseAgreements</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:integerItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_LesseeOperatingLeaseOptionToExtendMonthlyRent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Lessee, Operating Lease, Option To Extend, Monthly Rent</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_LesseeOperatingLeaseOptionToExtendMonthlyRent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_LesseeOperatingLeaseOptionToExtendNumberOfOptions">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Lessee, Operating Lease, Option To Extend, Number Of Options</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_LesseeOperatingLeaseOptionToExtendNumberOfOptions</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:integerItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_LesseeOperatingLeaseOptionToExtendPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Lessee, Operating Lease, Option To Extend, Period</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_LesseeOperatingLeaseOptionToExtendPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_LesseeOperatingLeaseSquareFeet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Lessee, Operating Lease, Square Feet</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_LesseeOperatingLeaseSquareFeet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:integerItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FinanceLeaseRightOfUseAssetAmortization">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of amortization expense attributable to right-of-use asset from finance lease.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 53<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479589/842-20-55-53<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 4<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479041/842-20-45-4<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FinanceLeaseRightOfUseAssetAmortization</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LeaseCost">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of lease cost recognized by lessee for lease contract.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 53<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479589/842-20-55-53<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LeaseCost</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeaseRemainingLeaseTerm">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Remaining lease term of operating lease, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7A<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-7A<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-3<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseRemainingLeaseTerm</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeaseRenewalTerm">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Term of lessee's operating lease renewal, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (a)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-3<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseRenewalTerm</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeaseTermOfContract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Term of lessee's operating lease, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (a)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-3<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseTermOfContract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LessorLeaseDescriptionLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479773/842-30-50-3<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LessorLeaseDescriptionLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseCost">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 53<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479589/842-20-55-53<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseCost</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of operating lease expense. Excludes sublease income.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 4<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479041/842-20-45-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SubsequentEventTypeAxis=us-gaap_SubsequentEventMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SubsequentEventTypeAxis=us-gaap_SubsequentEventMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_RangeAxis=srt_MinimumMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RangeAxis=srt_MinimumMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_RangeAxis=srt_MaximumMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RangeAxis=srt_MaximumMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=tgen_OfficeSpaceAndWarehouseFacilitiesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentByTypeAxis=tgen_OfficeSpaceAndWarehouseFacilitiesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>80
<FILENAME>R68.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Leases - Supplemental Information for Operating Leases (Details) - USD ($)<br></strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LeasesAbstract', window );"><strong>Leases [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeasePayments', window );">Cash paid for amounts included in the measurement of operating lease liabilities</a></td>
<td class="nump">$ 727,418<span></span>
</td>
<td class="nump">$ 743,849<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability', window );">Right-of-use assets obtained in exchange for operating lease liabilities</a></td>
<td class="nump">$ 1,650,994<span></span>
</td>
<td class="nump">$ 148,093<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1', window );">Weighted-average remaining lease term - operating leases</a></td>
<td class="text">4 years 1 month 6 days<span></span>
</td>
<td class="text">4 years 7 months 6 days<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent', window );">Weighted-average discount rate - operating leases (percent)</a></td>
<td class="nump">7.50%<span></span>
</td>
<td class="nump">6.40%<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LeasesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LeasesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeasePayments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash outflow from operating lease, excluding payments to bring another asset to condition and location necessary for its intended use.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 5<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479041/842-20-45-5<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (g)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeasePayments</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Weighted average discount rate for operating lease calculated at point in time.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 53<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479589/842-20-55-53<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (g)(4)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Weighted average remaining lease term for operating lease, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 53<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479589/842-20-55-53<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (g)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of increase in right-of-use asset obtained in exchange for operating lease liability.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 53<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479589/842-20-55-53<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (g)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>81
<FILENAME>R69.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Leases - Supplemental Information for Finance Leases (Details) - USD ($)<br></strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LeasesAbstract', window );"><strong>Leases [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_FinanceLeasePrincipalPaymentsAndOtherCosts', window );">Cash paid for amounts included in the measurement of finance lease liabilities</a></td>
<td class="nump">$ 88,845<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RightOfUseAssetObtainedInExchangeForFinanceLeaseLiability', window );">Right-of-use assets obtained in exchange for finance lease liabilities</a></td>
<td class="nump">$ 295,085<span></span>
</td>
<td class="nump">$ 200,187<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FinanceLeaseWeightedAverageRemainingLeaseTerm1', window );">Weighted-average remaining lease term - finance leases</a></td>
<td class="text">4 years 3 months 18 days<span></span>
</td>
<td class="text">5 years<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FinanceLeaseWeightedAverageDiscountRatePercent', window );">Weighted-average discount rate - finance leases</a></td>
<td class="nump">10.00%<span></span>
</td>
<td class="nump">10.40%<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_FinanceLeasePrincipalPaymentsAndOtherCosts">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Finance Lease, Principal Payments And Other Costs</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_FinanceLeasePrincipalPaymentsAndOtherCosts</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FinanceLeaseWeightedAverageDiscountRatePercent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Weighted average discount rate for finance lease calculated at point in time.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 53<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479589/842-20-55-53<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (g)(4)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FinanceLeaseWeightedAverageDiscountRatePercent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FinanceLeaseWeightedAverageRemainingLeaseTerm1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Weighted average remaining lease term for finance lease, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 53<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479589/842-20-55-53<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (g)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FinanceLeaseWeightedAverageRemainingLeaseTerm1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LeasesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LeasesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RightOfUseAssetObtainedInExchangeForFinanceLeaseLiability">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of increase in right-of-use asset obtained in exchange for finance lease liability.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 53<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479589/842-20-55-53<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (g)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RightOfUseAssetObtainedInExchangeForFinanceLeaseLiability</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>82
<FILENAME>R70.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Leases - Supplemental Balance Sheet Information (Details) - USD ($)<br></strong></div></th>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_OperatingLeaseAssetsAndLiabilitiesLesseeAbstract', window );"><strong>Operating leases</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseRightOfUseAsset', window );">Right of use assets - operating leases</a></td>
<td class="nump">$ 1,730,358<span></span>
</td>
<td class="nump">$ 743,096<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiabilityCurrent', window );">Operating lease liability, current</a></td>
<td class="nump">430,382<span></span>
</td>
<td class="nump">248,933<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiabilityNoncurrent', window );">Operating lease liability, long-term</a></td>
<td class="nump">1,341,789<span></span>
</td>
<td class="nump">523,660<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiability', window );">Total operating lease liability</a></td>
<td class="nump">1,772,171<span></span>
</td>
<td class="nump">772,593<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FinanceLeaseRightOfUseAsset', window );">Right of use assets - finance leases</a></td>
<td class="nump">452,390<span></span>
</td>
<td class="nump">200,187<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FinanceLeaseLiabilityCurrent', window );">Finance lease obligations, current</a></td>
<td class="nump">85,646<span></span>
</td>
<td class="nump">40,540<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FinanceLeaseLiabilityNoncurrent', window );">Finance lease obligations, net of current portion</a></td>
<td class="nump">325,235<span></span>
</td>
<td class="nump">159,647<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FinanceLeaseLiability', window );">Total finance lease liability</a></td>
<td class="nump">410,881<span></span>
</td>
<td class="nump">200,187<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_VehiclesMember', window );">Vehicles</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_OperatingLeaseAssetsAndLiabilitiesLesseeAbstract', window );"><strong>Operating leases</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FinanceLeaseRightOfUseAsset', window );">Right of use assets - finance leases</a></td>
<td class="nump">425,563<span></span>
</td>
<td class="nump">200,187<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=tgen_BoilerMember', window );">Boiler</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_OperatingLeaseAssetsAndLiabilitiesLesseeAbstract', window );"><strong>Operating leases</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FinanceLeaseRightOfUseAsset', window );">Right of use assets - finance leases</a></td>
<td class="nump">$ 26,827<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_OperatingLeaseAssetsAndLiabilitiesLesseeAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Operating Lease, Assets And Liabilities, Lessee</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_OperatingLeaseAssetsAndLiabilitiesLesseeAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FinanceLeaseLiability">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Present value of lessee's discounted obligation for lease payments from finance lease.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-6<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479041/842-20-45-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FinanceLeaseLiability</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FinanceLeaseLiabilityCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Present value of lessee's discounted obligation for lease payments from finance lease, classified as current.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479041/842-20-45-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FinanceLeaseLiabilityCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FinanceLeaseLiabilityNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Present value of lessee's discounted obligation for lease payments from finance lease, classified as noncurrent.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479041/842-20-45-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FinanceLeaseLiabilityNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FinanceLeaseRightOfUseAsset">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, after accumulated amortization, of right-of-use asset from finance lease.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479041/842-20-45-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FinanceLeaseRightOfUseAsset</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseLiability">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Present value of lessee's discounted obligation for lease payments from operating lease.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479041/842-20-45-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseLiability</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseLiabilityCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Present value of lessee's discounted obligation for lease payments from operating lease, classified as current.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479041/842-20-45-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseLiabilityCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseLiabilityNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Present value of lessee's discounted obligation for lease payments from operating lease, classified as noncurrent.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479041/842-20-45-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseLiabilityNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseRightOfUseAsset">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's right to use underlying asset under operating lease.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479041/842-20-45-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseRightOfUseAsset</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_VehiclesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_VehiclesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=tgen_BoilerMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentByTypeAxis=tgen_BoilerMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>83
<FILENAME>R71.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Leases - Future Minimum Lease Commitments (Details) - USD ($)<br></strong></div></th>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LeasesAbstract', window );"><strong>Leases [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths', window );">2025</a></td>
<td class="nump">$ 542,066<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo', window );">2026</a></td>
<td class="nump">538,297<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree', window );">2027</a></td>
<td class="nump">442,471<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour', window );">2028</a></td>
<td class="nump">395,827<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive', window );">2029</a></td>
<td class="nump">55,435<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive', window );">Thereafter</a></td>
<td class="nump">61,569<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue', window );">Total lease payments</a></td>
<td class="nump">2,035,665<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount', window );">Less: imputed interest</a></td>
<td class="nump">263,494<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiability', window );">Total</a></td>
<td class="nump">1,772,171<span></span>
</td>
<td class="nump">$ 772,593<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FinanceLeaseLiabilityPaymentsDueNextTwelveMonths', window );">2025</a></td>
<td class="nump">122,460<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FinanceLeaseLiabilityPaymentsDueYearTwo', window );">2026</a></td>
<td class="nump">113,845<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FinanceLeaseLiabilityPaymentsDueYearThree', window );">2027</a></td>
<td class="nump">113,845<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FinanceLeaseLiabilityPaymentsDueYearFour', window );">2028</a></td>
<td class="nump">113,845<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FinanceLeaseLiabilityPaymentsDueYearFive', window );">2029</a></td>
<td class="nump">43,669<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FinanceLeaseLiabilityPaymentsDueAfterYearFive', window );">Thereafter</a></td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FinanceLeaseLiabilityPaymentsDue', window );">Total lease payments</a></td>
<td class="nump">507,664<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FinanceLeaseLiabilityUndiscountedExcessAmount', window );">Less: imputed interest</a></td>
<td class="nump">96,783<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FinanceLeaseLiability', window );">Total finance lease liability</a></td>
<td class="nump">410,881<span></span>
</td>
<td class="nump">$ 200,187<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_OperatingAndFinanceLeaseLiabilityToBePaidYearOne', window );">2025</a></td>
<td class="nump">664,526<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_OperatingAndFinanceLeaseLiabilityToBePaidYearTwo', window );">2026</a></td>
<td class="nump">652,142<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_OperatingAndFinanceLeaseLiabilityToBePaidYearThree', window );">2027</a></td>
<td class="nump">556,316<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_OperatingAndFinanceLeaseLiabilityToBePaidYearFour', window );">2028</a></td>
<td class="nump">509,672<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_OperatingAndFinanceLeaseLiabilityToBePaidYearFive', window );">2029</a></td>
<td class="nump">99,104<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_OperatingAndFinanceLeaseLiabilityToBePaidAfterYearFive', window );">Thereafter</a></td>
<td class="nump">61,569<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_OperatingAndFinanceLeaseLiabilityToBePaid', window );">Total lease payments</a></td>
<td class="nump">2,543,329<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_OperatingAndFinanceLeaseLiabilityUndiscountedExcessAmount', window );">Less: imputed interest</a></td>
<td class="nump">360,277<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_OperatingAndFinanceLeaseLiability', window );">Total</a></td>
<td class="nump">$ 2,183,052<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_OperatingAndFinanceLeaseLiability">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Operating and Finance Lease, Liability</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_OperatingAndFinanceLeaseLiability</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_OperatingAndFinanceLeaseLiabilityToBePaid">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Operating and Finance Lease, Liability, to be Paid</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_OperatingAndFinanceLeaseLiabilityToBePaid</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_OperatingAndFinanceLeaseLiabilityToBePaidAfterYearFive">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Operating and Finance Lease, Liability, to be Paid, After Year Five</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_OperatingAndFinanceLeaseLiabilityToBePaidAfterYearFive</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_OperatingAndFinanceLeaseLiabilityToBePaidYearFive">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Operating and Finance Lease, Liability, to be Paid, Year Five</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_OperatingAndFinanceLeaseLiabilityToBePaidYearFive</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_OperatingAndFinanceLeaseLiabilityToBePaidYearFour">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Operating and Finance Lease, Liability, to be Paid, Year Four</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_OperatingAndFinanceLeaseLiabilityToBePaidYearFour</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_OperatingAndFinanceLeaseLiabilityToBePaidYearOne">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Operating and Finance Lease, Liability, to be Paid, Year One</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_OperatingAndFinanceLeaseLiabilityToBePaidYearOne</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_OperatingAndFinanceLeaseLiabilityToBePaidYearThree">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Operating and Finance Lease, Liability, to be Paid, Year Three</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_OperatingAndFinanceLeaseLiabilityToBePaidYearThree</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_OperatingAndFinanceLeaseLiabilityToBePaidYearTwo">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Operating and Finance Lease, Liability, to be Paid, Year Two</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_OperatingAndFinanceLeaseLiabilityToBePaidYearTwo</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_OperatingAndFinanceLeaseLiabilityUndiscountedExcessAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Operating and Finance Lease, Liability, Undiscounted Excess Amount</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_OperatingAndFinanceLeaseLiabilityUndiscountedExcessAmount</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FinanceLeaseLiability">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Present value of lessee's discounted obligation for lease payments from finance lease.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-6<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479041/842-20-45-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FinanceLeaseLiability</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FinanceLeaseLiabilityPaymentsDue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's undiscounted obligation for lease payments for finance lease.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FinanceLeaseLiabilityPaymentsDue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FinanceLeaseLiabilityPaymentsDueAfterYearFive">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's undiscounted obligation for lease payment for finance lease to be paid 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).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FinanceLeaseLiabilityPaymentsDueAfterYearFive</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FinanceLeaseLiabilityPaymentsDueNextTwelveMonths">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's undiscounted obligation for lease payment for finance lease to be paid in next fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FinanceLeaseLiabilityPaymentsDueNextTwelveMonths</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FinanceLeaseLiabilityPaymentsDueYearFive">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's undiscounted obligation for lease payment for finance 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).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FinanceLeaseLiabilityPaymentsDueYearFive</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FinanceLeaseLiabilityPaymentsDueYearFour">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's undiscounted obligation for lease payment for finance lease to be paid in fourth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FinanceLeaseLiabilityPaymentsDueYearFour</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FinanceLeaseLiabilityPaymentsDueYearThree">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's undiscounted obligation for lease payment for finance lease to be paid in third fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FinanceLeaseLiabilityPaymentsDueYearThree</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FinanceLeaseLiabilityPaymentsDueYearTwo">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's undiscounted obligation for lease payment for finance lease to be paid in second fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FinanceLeaseLiabilityPaymentsDueYearTwo</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FinanceLeaseLiabilityUndiscountedExcessAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's undiscounted obligation for lease payments in excess of discounted obligation for lease payments for finance lease.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FinanceLeaseLiabilityUndiscountedExcessAmount</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LeasesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LeasesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's undiscounted obligation for lease payment for operating lease.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's undiscounted obligation for lease payments in excess of discounted obligation for lease payments for operating lease.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseLiability">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Present value of lessee's discounted obligation for lease payments from operating lease.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479041/842-20-45-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseLiability</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>84
<FILENAME>R72.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Stockholders' equity - Common Stock and Receivable from Shareholder (Details) - shares<br></strong></div></th>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Feb. 13, 2013</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EquityAbstract', window );"><strong>Equity [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommonStockSharesOutstanding', window );">Common stock, shares outstanding</a></td>
<td class="nump">24,950,261<span></span>
</td>
<td class="nump">24,850,261<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PreferredStockSharesAuthorized', window );">Preferred stock, shares authorized</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">10,000,000<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PreferredStockSharesIssued', window );">Preferred stock, issued (in shares)</a></td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PreferredStockSharesOutstanding', window );">Preferred stock, outstanding (in shares)</a></td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommonStockSharesOutstanding">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of shares of common stock outstanding. Common stock represent the ownership interest in a corporation.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -SubTopic 10<br> -Topic 505<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-2<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.6-05(4))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-2<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(4)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(16)(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-1<br><br>Reference 6: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(7))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommonStockSharesOutstanding</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EquityAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EquityAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PreferredStockSharesAuthorized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(16)(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PreferredStockSharesAuthorized</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PreferredStockSharesIssued">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-13<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PreferredStockSharesIssued</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PreferredStockSharesOutstanding">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Aggregate share number for all nonredeemable preferred stock (or preferred stock redeemable solely at the option of the issuer) held by stockholders. Does not include preferred shares that have been repurchased.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.6-05(4))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-2<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(4)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(16)(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-1<br><br>Reference 5: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(7))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PreferredStockSharesOutstanding</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>85
<FILENAME>R73.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Stockholders' equity - Stock-Based Compensation (Details)<br></strong></div></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th">
<div>Mar. 01, 2022 </div>
<div>shares</div>
</th>
<th class="th">
<div>Dec. 31, 2024 </div>
<div>USD ($) </div>
<div>option </div>
<div>company </div>
<div>$ / shares </div>
<div>shares</div>
</th>
<th class="th">
<div>Dec. 31, 2023 </div>
<div>USD ($) </div>
<div>$ / shares </div>
<div>shares</div>
</th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Share-based Compensation Arrangement by Share-based Payment Award [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansGrantedExercisePriceRangeLowerRangeLimit', window );">Options granted, exercise price range, lower limit (usd per share) | $ / shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 0.77<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansGrantedExercisePriceRangeUpperRangeLimit', window );">Options granted, exercise price range, upper limit (usd per share) | $ / shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 10.33<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_ShareBasedCompensationArrangementbyShareBasedPaymentAwardHistoricalForfeitureRate', window );">Historical forfeiture rate (percent)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">15.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfPubliclyTradedCompaniesUsedInExpectedVolatilityRateCalculation', window );">Number of publicly traded companies used in expected volatility rate calculation | company</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">4<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_ConsolidatedEntitiesAxis=srt_ParentCompanyMember', window );">Tecogen</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Share-based Compensation Arrangement by Share-based Payment Award [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross', window );">Options granted</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">125,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised', window );">Exercise of stock options (in shares)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(100,000)<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfOptionsExercisedInPeriod', window );">Number of options exercised in period | option</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AllocatedShareBasedCompensationExpense', window );">Recognized stock-based compensation | $</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 172,987<span></span>
</td>
<td class="nump">$ 250,394<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense', window );">Tax benefit related to stock-based compensation expense | $</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized', window );">Compensation cost related to unvested restricted stock awards and stock option awards not yet recognized | $</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 278,461<span></span>
</td>
<td class="nump">$ 451,298<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1', window );">Compensation cost not yet recognized, weighted average period of recognition</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">2 years 3 months 18 days<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_ConsolidatedEntitiesAxis=srt_ParentCompanyMember', window );">Tecogen | Director</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Share-based Compensation Arrangement by Share-based Payment Award [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross', window );">Options granted</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">125,000<span></span>
</td>
<td class="nump">575,000<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod', window );">Award expiration period</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">10 years<span></span>
</td>
<td class="text">10 years<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantedInPeriodExercisePrice', window );">Exercise price per share, granted (usd per share) | $ / shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 0.77<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansGrantedExercisePriceRangeLowerRangeLimit', window );">Options granted, exercise price range, lower limit (usd per share) | $ / shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 0.88<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansGrantedExercisePriceRangeUpperRangeLimit', window );">Options granted, exercise price range, upper limit (usd per share) | $ / shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 1.10<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1', window );">Award vesting period</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">4 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1', window );">Fair value of options issued | $</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 44,750<span></span>
</td>
<td class="nump">$ 244,625<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue', window );">Weighted-average grant date fair value of options granted | $ / shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 0.36<span></span>
</td>
<td class="nump">$ 0.43<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_ConsolidatedEntitiesAxis=srt_ParentCompanyMember', window );">Tecogen | Director | Minimum</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Share-based Compensation Arrangement by Share-based Payment Award [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1', window );">Award vesting period</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">2 years<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_ConsolidatedEntitiesAxis=srt_ParentCompanyMember', window );">Tecogen | Director | Maximum</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Share-based Compensation Arrangement by Share-based Payment Award [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1', window );">Award vesting period</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">4 years<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_ConsolidatedEntitiesAxis=srt_ParentCompanyMember', window );">Tecogen | Amended Plan</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Share-based Compensation Arrangement by Share-based Payment Award [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross', window );">Options granted</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_ConsolidatedEntitiesAxis=srt_ParentCompanyMember', window );">Tecogen | Amended Plan | Stock Options</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Share-based Compensation Arrangement by Share-based Payment Award [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommonStockCapitalSharesReservedForFutureIssuance', window );">Shares of common stock reserved for future issuance</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">3,838,750<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant', window );">Number of shares remaining available for future issuance</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,108,168<span></span>
</td>
<td class="nump">243,818<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_ConsolidatedEntitiesAxis=srt_ParentCompanyMember', window );">Tecogen | 2022 Stock Incentive Plan | Stock Options</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Share-based Compensation Arrangement by Share-based Payment Award [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommonStockCapitalSharesReservedForFutureIssuance', window );">Shares of common stock reserved for future issuance</a></td>
<td class="nump">3,800,000<span></span>
</td>
<td class="nump">2,950,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod', window );">Award expiration period</a></td>
<td class="text">10 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfOptionsExercisedInPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Share-Based Compensation Arrangement By Share-Based Payment Award, Number Of Options Exercised In Period</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfOptionsExercisedInPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:integerItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfPubliclyTradedCompaniesUsedInExpectedVolatilityRateCalculation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Share Based Compensation Arrangement By Share Based Payment Award, Number Of Publicly Traded Companies Used In Expected Volatility Rate Calculation</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfPubliclyTradedCompaniesUsedInExpectedVolatilityRateCalculation</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:integerItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantedInPeriodExercisePrice">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Share-based Compensation Arrangement by Share-based Payment Award, Options, Granted in Period, Exercise Price</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantedInPeriodExercisePrice</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types1:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_ShareBasedCompensationArrangementbyShareBasedPaymentAwardHistoricalForfeitureRate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Share Based Compensation Arrangement by Share Based Payment Award, Historical Forfeiture Rate</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_ShareBasedCompensationArrangementbyShareBasedPaymentAwardHistoricalForfeitureRate</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types1:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansGrantedExercisePriceRangeLowerRangeLimit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Lower range of Exercise price per share of stock options granted during the period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansGrantedExercisePriceRangeLowerRangeLimit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types1:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansGrantedExercisePriceRangeUpperRangeLimit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Upper range of Exercise price per share of stock options granted during the period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansGrantedExercisePriceRangeUpperRangeLimit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types1:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AllocatedShareBasedCompensationExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of expense for award under share-based payment arrangement. Excludes amount capitalized.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 14.F)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479830/718-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(1)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AllocatedShareBasedCompensationExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommonStockCapitalSharesReservedForFutureIssuance">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Aggregate number of common shares reserved for future issuance.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommonStockCapitalSharesReservedForFutureIssuance</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cost not yet recognized for nonvested award under share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Weighted-average period over which cost not yet recognized is expected to be recognized for award under share-based payment arrangement, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of tax benefit for recognition of expense of award under share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(1)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Period over which grantee's right to exercise award under share-based payment arrangement is no longer contingent on satisfaction of service or performance condition, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days. Includes, but is not limited to, combination of market, performance or service condition.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 35<br> -Paragraph 1D<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480483/718-10-35-1D<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 35<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480483/718-10-35-3<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(01)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(02)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(03)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(04)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(01)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(02)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(03)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(iii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(iv)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(v)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The difference between the maximum number of shares (or other type of equity) authorized for issuance under the plan (including the effects of amendments and adjustments), and the sum of: 1) the number of shares (or other type of equity) already issued upon exercise of options or other equity-based awards under the plan; and 2) shares (or other type of equity) reserved for issuance on granting of outstanding awards, net of cancellations and forfeitures, if applicable.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Gross number of share options (or share units) granted during the period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(01)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The weighted average grant-date fair value of options granted during the reporting period as calculated by applying the disclosed option pricing methodology.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Period from grant date that an equity-based award expires, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Fair value of options vested. Excludes equity instruments other than options, for example, but not limited to, share units, stock appreciation rights, restricted stock.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of share options (or share units) exercised during the current period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -SubTopic 10<br> -Topic 505<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-2<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(02)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480008/505-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_ConsolidatedEntitiesAxis=srt_ParentCompanyMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_ConsolidatedEntitiesAxis=srt_ParentCompanyMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_TitleOfIndividualAxis=srt_DirectorMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_TitleOfIndividualAxis=srt_DirectorMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_RangeAxis=srt_MinimumMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RangeAxis=srt_MinimumMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_RangeAxis=srt_MaximumMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RangeAxis=srt_MaximumMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PlanNameAxis=tgen_AmendnedStockOptionAndIncentivePlan2006Member">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PlanNameAxis=tgen_AmendnedStockOptionAndIncentivePlan2006Member</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AwardTypeAxis=us-gaap_EmployeeStockOptionMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AwardTypeAxis=us-gaap_EmployeeStockOptionMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PlanNameAxis=tgen_A2022StockIncentivePlanMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PlanNameAxis=tgen_A2022StockIncentivePlanMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>86
<FILENAME>R74.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Stockholders' equity - Stock Option Activity (Details) - USD ($)<br></strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_ExercisePricePerShareAbstract', window );"><strong>Exercise Price Per Share [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit', window );">Outstanding, Exercise Price Lower Range Limit (usd per share)</a></td>
<td class="nump">$ 0.71<span></span>
</td>
<td class="nump">$ 0.71<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit', window );">Outstanding, Exercise Price Upper Range Limit (usd per share)</a></td>
<td class="nump">3.93<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansGrantedExercisePriceRangeLowerRangeLimit', window );">Granted, Exercise Price Lower Range Limit (usd per share)</a></td>
<td class="nump">0.77<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansGrantedExercisePriceRangeUpperRangeLimit', window );">Granted, Exercise Price Upper Range Limit (usd per share)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 10.33<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_ShareBasedPaymentArrangementOptionExercisesInPeriodExercisePricePerShare', window );">Exercised, Exercise Price Per Share (usd per share)</a></td>
<td class="nump">0.71<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansCancelledAndForfeitedExercisePriceRangeLowerRangeLimit', window );">Canceled and Forfeited, Exercise Price Lower Range Limit (usd per share)</a></td>
<td class="nump">0.71<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansCancelledAndForfeitedExercisePriceRangeUpperRangeLimit', window );">Canceled and Forfeited, Exercise Price Upper Range Limit (usd per share)</a></td>
<td class="nump">$ 10.33<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_ConsolidatedEntitiesAxis=srt_ParentCompanyMember', window );">Tecogen</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward', window );"><strong>Stock Options Outstanding [Roll Forward]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber', window );">Beginning (shares)</a></td>
<td class="nump">3,638,122<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross', window );">Granted (shares)</a></td>
<td class="nump">125,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsCancellationsAndForfeituresInPeriod', window );">Canceled and forfeited (shares)</a></td>
<td class="num">(910,160)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber', window );">Ending (shares)</a></td>
<td class="nump">2,752,962<span></span>
</td>
<td class="nump">3,638,122<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber', window );">Exercisable (shares)</a></td>
<td class="nump">1,839,212<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber', window );">Vested and expected to vest (shares)</a></td>
<td class="nump">2,615,900<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward', window );"><strong>Weighted Average Exercise Price [Roll Forward]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice', window );">Beginning (usd per share)</a></td>
<td class="nump">$ 1.49<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice', window );">Granted (usd per share)</a></td>
<td class="nump">0.77<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice', window );">Exercised (usd per share)</a></td>
<td class="nump">0.71<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsCancellationsAndForfeituresInPeriodWeightedAverageExercisePrice', window );">Canceled and forfeited (usd per share)</a></td>
<td class="nump">2.54<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice', window );">Ending (usd per share)</a></td>
<td class="nump">1.14<span></span>
</td>
<td class="nump">$ 1.49<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice', window );">Vested and expected to vest (usd per share)</a></td>
<td class="nump">1.15<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice', window );">Exercisable (usd per share)</a></td>
<td class="nump">$ 1.25<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAdditionalDisclosuresAbstract', window );"><strong>Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Additional Disclosures [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue', window );">Outstanding, Aggregate Intrinsic Value</a></td>
<td class="nump">$ 1,348,684<span></span>
</td>
<td class="nump">$ 127,811<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue', window );">Exercised, Aggregate Intrinsic Value</a></td>
<td class="nump">75,500<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1', window );">Exercisable, Aggregate Intrinsic Value</a></td>
<td class="nump">838,184<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue', window );">Vested and expected to vest, Aggregate Intrinsic Value</a></td>
<td class="nump">$ 1,272,109<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=us-gaap_EmployeeStockOptionMember', window );">Stock Options | Tecogen</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAdditionalDisclosuresAbstract', window );"><strong>Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Additional Disclosures [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2', window );">Outstanding, Weighted Average Remaining Life</a></td>
<td class="text">6 years 8 months 12 days<span></span>
</td>
<td class="text">6 years 8 months 12 days<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_ExercisePricePerShareAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Exercise Price Per Share [Abstract]</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_ExercisePricePerShareAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsCancellationsAndForfeituresInPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Share-based Compensation Arrangement by Share-based Payment Award, Options, Cancellations and Forfeitures in Period</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsCancellationsAndForfeituresInPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsCancellationsAndForfeituresInPeriodWeightedAverageExercisePrice">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Share-based Compensation Arrangement by Share-based Payment Award, Options, Cancellations and Forfeitures in Period, Weighted Average Exercise Price</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsCancellationsAndForfeituresInPeriodWeightedAverageExercisePrice</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types1:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansCancelledAndForfeitedExercisePriceRangeLowerRangeLimit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Lower range of Exercise price per share of stock options cancelled and forfeited during the period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansCancelledAndForfeitedExercisePriceRangeLowerRangeLimit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types1:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansCancelledAndForfeitedExercisePriceRangeUpperRangeLimit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Upper range of Exercise price per share of stock options cancelled and forfeited during the period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansCancelledAndForfeitedExercisePriceRangeUpperRangeLimit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types1:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansGrantedExercisePriceRangeLowerRangeLimit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Lower range of Exercise price per share of stock options granted during the period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansGrantedExercisePriceRangeLowerRangeLimit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types1:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansGrantedExercisePriceRangeUpperRangeLimit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Upper range of Exercise price per share of stock options granted during the period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansGrantedExercisePriceRangeUpperRangeLimit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types1:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_ShareBasedPaymentArrangementOptionExercisesInPeriodExercisePricePerShare">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Share-Based Payment Arrangement, Option, Exercises In Period, Exercise Price Per Share</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_ShareBasedPaymentArrangementOptionExercisesInPeriodExercisePricePerShare</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAdditionalDisclosuresAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAdditionalDisclosuresAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The number of shares into which fully or partially vested stock options outstanding as of the balance sheet date can be currently converted under the option plan.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The weighted-average price as of the balance sheet date at which grantees can acquire the shares reserved for issuance on vested portions of options outstanding and currently exercisable under the stock option plan.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of accumulated difference between fair value of underlying shares on dates of exercise and exercise price on options exercised (or share units converted) into shares.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Gross number of share options (or share units) granted during the period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(01)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount by which the current fair value of the underlying stock exceeds the exercise price of options outstanding.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of options outstanding, including both vested and non-vested options.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Weighted average price at which grantees can acquire the shares reserved for issuance under the stock option plan.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount by which current fair value of underlying stock exceeds exercise price of fully vested and expected to vest options outstanding. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of fully vested and expected to vest options outstanding that can be converted into shares under option plan. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Weighted-average exercise price, at which grantee can acquire shares reserved for issuance, for fully vested and expected to vest options outstanding. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Weighted average price at which option holders acquired shares when converting their stock options into shares.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(02)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Weighted average per share amount at which grantees can acquire shares of common stock by exercise of options.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(01)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The floor of a customized range of exercise prices for purposes of disclosing shares potentially issuable under outstanding stock option awards on all stock option plans and other required information pertaining to awards in the customized range.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The ceiling of a customized range of exercise prices for purposes of disclosing shares potentially issuable under outstanding stock option awards on all stock option plans and other required information pertaining to awards in the customized range.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of difference between fair value of the underlying shares reserved for issuance and exercise price of vested portions of options outstanding and currently exercisable.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Weighted average remaining contractual term for option awards outstanding, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 718<br> -SubTopic 10<br> -Subparagraph (e)(1)<br> -Name Accounting Standards Codification<br> -Paragraph 2<br> -Section 50<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_ConsolidatedEntitiesAxis=srt_ParentCompanyMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_ConsolidatedEntitiesAxis=srt_ParentCompanyMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AwardTypeAxis=us-gaap_EmployeeStockOptionMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AwardTypeAxis=us-gaap_EmployeeStockOptionMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>87
<FILENAME>R75.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Stockholders' equity - Weighted Average Assumptions (Details) - Tecogen - Stock Options<br></strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Share-based Compensation Arrangement by Share-based Payment Award [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1', window );">Expected life</a></td>
<td class="text">6 years 3 months<span></span>
</td>
<td class="text">6 years 3 months<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate', window );">Risk-free interest rate</a></td>
<td class="nump">4.28%<span></span>
</td>
<td class="nump">4.70%<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate', window );">Expected volatility</a></td>
<td class="nump">40.17%<span></span>
</td>
<td class="nump">38.49%<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate', window );">Share-Based Compensation Arrangement by Share-Based Payment Award, Fair Value Assumptions, Expected Dividend Rate</a></td>
<td class="nump">0.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The estimated dividend rate (a percentage of the share price) to be paid (expected dividends) to holders of the underlying shares over the option's term.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(iii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The estimated measure of the percentage by which a share price is expected to fluctuate during a period. Volatility also may be defined as a probability-weighted measure of the dispersion of returns about the mean. The volatility of a share price is the standard deviation of the continuously compounded rates of return on the share over a specified period. That is the same as the standard deviation of the differences in the natural logarithms of the stock prices plus dividends, if any, over the period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The risk-free interest rate assumption that is used in valuing an option on its own shares.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(iv)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 35<br> -Paragraph 1D<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480483/718-10-35-1D<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 35<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480483/718-10-35-3<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(01)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(02)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(03)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(04)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(01)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(02)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(03)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(iii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(iv)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(v)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Expected term of award under share-based payment arrangement, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_ConsolidatedEntitiesAxis=srt_ParentCompanyMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_ConsolidatedEntitiesAxis=srt_ParentCompanyMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AwardTypeAxis=us-gaap_EmployeeStockOptionMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AwardTypeAxis=us-gaap_EmployeeStockOptionMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>88
<FILENAME>R76.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Fair Value Measurements - Schedule of Asset Reported in Consolidated Balance Sheet Measured at Fair Value on Recurring Basis (Details) - USD ($)<br></strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems', window );"><strong>Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings', window );">Total gains (losses)</a></td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueByLiabilityClassAxis=tgen_ContingentConsiderationCurrentMember', window );">Contingent Consideration, Current</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems', window );"><strong>Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings', window );">Total gains (losses)</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueByLiabilityClassAxis=tgen_ContingentConsiderationNoncurrentMember', window );">Contingent Consideration, Noncurrent</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems', window );"><strong>Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings', window );">Total gains (losses)</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueByMeasurementFrequencyAxis=us-gaap_FairValueMeasurementsRecurringMember', window );">Fair Value, Measurements, Recurring</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems', window );"><strong>Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax', window );">Unrealized gain (loss)</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AssetAcquisitionContingentConsiderationLiabilityCurrent', window );">Contingent contract consideration, current</a></td>
<td class="nump">328,350<span></span>
</td>
<td class="nump">200,639<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AssetAcquisitionContingentConsiderationLiabilityNoncurrent', window );">Contingent contract consideration, long-term</a></td>
<td class="nump">1,008,760<span></span>
</td>
<td class="nump">994,743<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LiabilitiesFairValueDisclosure', window );">Total recurring fair value measurements</a></td>
<td class="nump">1,337,110<span></span>
</td>
<td class="nump">1,195,382<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueByMeasurementFrequencyAxis=us-gaap_FairValueMeasurementsRecurringMember', window );">Fair Value, Measurements, Recurring | Level 1</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems', window );"><strong>Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AssetsFairValueDisclosure', window );">Total recurring fair value measurements</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AssetAcquisitionContingentConsiderationLiabilityCurrent', window );">Contingent contract consideration, current</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AssetAcquisitionContingentConsiderationLiabilityNoncurrent', window );">Contingent contract consideration, long-term</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LiabilitiesFairValueDisclosure', window );">Total recurring fair value measurements</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueByMeasurementFrequencyAxis=us-gaap_FairValueMeasurementsRecurringMember', window );">Fair Value, Measurements, Recurring | Level 2</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems', window );"><strong>Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AssetsFairValueDisclosure', window );">Total recurring fair value measurements</a></td>
<td class="nump">93,744<span></span>
</td>
<td class="nump">93,744<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AssetAcquisitionContingentConsiderationLiabilityCurrent', window );">Contingent contract consideration, current</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AssetAcquisitionContingentConsiderationLiabilityNoncurrent', window );">Contingent contract consideration, long-term</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LiabilitiesFairValueDisclosure', window );">Total recurring fair value measurements</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueByMeasurementFrequencyAxis=us-gaap_FairValueMeasurementsRecurringMember', window );">Fair Value, Measurements, Recurring | Level 3</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems', window );"><strong>Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AssetsFairValueDisclosure', window );">Total recurring fair value measurements</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AssetAcquisitionContingentConsiderationLiabilityCurrent', window );">Contingent contract consideration, current</a></td>
<td class="nump">328,350<span></span>
</td>
<td class="nump">200,639<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AssetAcquisitionContingentConsiderationLiabilityNoncurrent', window );">Contingent contract consideration, long-term</a></td>
<td class="nump">1,008,760<span></span>
</td>
<td class="nump">994,743<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LiabilitiesFairValueDisclosure', window );">Total recurring fair value measurements</a></td>
<td class="nump">1,337,110<span></span>
</td>
<td class="nump">1,195,382<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueByMeasurementBasisAxis=us-gaap_EstimateOfFairValueFairValueDisclosureMember', window );">Estimate of Fair Value Measurement | Fair Value, Measurements, Recurring</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems', window );"><strong>Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AssetsFairValueDisclosure', window );">Total recurring fair value measurements</a></td>
<td class="nump">93,744<span></span>
</td>
<td class="nump">93,744<span></span>
</td>
<td class="nump">$ 93,744<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_LegalEntityAxis=tgen_EurositePowerIncMember', window );">Eurosite Power Inc. | Fair Value, Measurements, Recurring</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems', window );"><strong>Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax', window );">Unrealized gain (loss)</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_LegalEntityAxis=tgen_EurositePowerIncMember', window );">Eurosite Power Inc. | Fair Value, Measurements, Recurring | Level 1</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems', window );"><strong>Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Available-for-sale equity securities</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_LegalEntityAxis=tgen_EurositePowerIncMember', window );">Eurosite Power Inc. | Fair Value, Measurements, Recurring | Level 2</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems', window );"><strong>Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Available-for-sale equity securities</a></td>
<td class="nump">93,744<span></span>
</td>
<td class="nump">93,744<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_LegalEntityAxis=tgen_EurositePowerIncMember', window );">Eurosite Power Inc. | Fair Value, Measurements, Recurring | Level 3</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems', window );"><strong>Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Available-for-sale equity securities</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_LegalEntityAxis=tgen_EurositePowerIncMember', window );">Eurosite Power Inc. | Estimate of Fair Value Measurement | Fair Value, Measurements, Recurring</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems', window );"><strong>Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Available-for-sale equity securities</a></td>
<td class="nump">$ 93,744<span></span>
</td>
<td class="nump">$ 93,744<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AssetAcquisitionContingentConsiderationLiabilityCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of liability recognized from contingent consideration in asset acquisition, classified as current.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 805<br> -SubTopic 50<br> -Name Accounting Standards Codification<br> -Section 15<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480123/805-50-15-3<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AssetAcquisitionContingentConsiderationLiabilityCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AssetAcquisitionContingentConsiderationLiabilityNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of liability recognized from contingent consideration in asset acquisition, classified as noncurrent.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 805<br> -SubTopic 50<br> -Name Accounting Standards Codification<br> -Section 15<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480123/805-50-15-3<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AssetAcquisitionContingentConsiderationLiabilityNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AssetsFairValueDisclosure">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Fair value portion of asset recognized for present right to economic benefit.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 100<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482078/820-10-55-100<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AssetsFairValueDisclosure</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 103<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482078/820-10-55-103<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 100<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482078/820-10-55-100<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (bbb)(2)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (bbb)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2<br><br>Reference 5: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (bbb)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (aa)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481800/320-10-50-2<br><br>Reference 8: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481830/320-10-45-1<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(6))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478546/942-210-S99-1<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479130/326-30-45-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AvailableForSaleSecuritiesDebtSecurities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 100<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482078/820-10-55-100<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-3<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of gain (loss) recognized in income from liability measured at fair value on recurring basis using unobservable input (level 3).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-3<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LiabilitiesFairValueDisclosure">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Fair value of financial and nonfinancial obligations.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LiabilitiesFairValueDisclosure</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, after tax and adjustment, of unrealized gain (loss) on investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale) and unrealized gain (loss) on investment in debt security measured at amortized cost (held-to-maturity) from transfer to available-for-sale.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(19))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 10A<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-10A<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 10A<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-10A<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 11<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-11<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FairValueByLiabilityClassAxis=tgen_ContingentConsiderationCurrentMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FairValueByLiabilityClassAxis=tgen_ContingentConsiderationCurrentMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FairValueByLiabilityClassAxis=tgen_ContingentConsiderationNoncurrentMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FairValueByLiabilityClassAxis=tgen_ContingentConsiderationNoncurrentMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FairValueByMeasurementFrequencyAxis=us-gaap_FairValueMeasurementsRecurringMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FairValueByMeasurementFrequencyAxis=us-gaap_FairValueMeasurementsRecurringMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FairValueByFairValueHierarchyLevelAxis=us-gaap_FairValueInputsLevel1Member">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FairValueByFairValueHierarchyLevelAxis=us-gaap_FairValueInputsLevel1Member</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FairValueByFairValueHierarchyLevelAxis=us-gaap_FairValueInputsLevel2Member">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FairValueByFairValueHierarchyLevelAxis=us-gaap_FairValueInputsLevel2Member</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FairValueByFairValueHierarchyLevelAxis=us-gaap_FairValueInputsLevel3Member">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FairValueByFairValueHierarchyLevelAxis=us-gaap_FairValueInputsLevel3Member</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FairValueByMeasurementBasisAxis=us-gaap_EstimateOfFairValueFairValueDisclosureMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FairValueByMeasurementBasisAxis=us-gaap_EstimateOfFairValueFairValueDisclosureMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_LegalEntityAxis=tgen_EurositePowerIncMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_LegalEntityAxis=tgen_EurositePowerIncMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>89
<FILENAME>R77.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Fair Value Measures and Disclosures - Schedule of Changes in Level 2 Assets (Details) - Estimate of Fair Value Measurement - Fair Value, Measurements, Recurring - USD ($)<br></strong></div></th>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward', window );"><strong>Fair Value, Assets Measured on Recurring Basis, Unobservable Input Reconciliation, Calculation [Roll Forward]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AssetsFairValueDisclosure', window );">Beginning balance</a></td>
<td class="nump">$ 93,744<span></span>
</td>
<td class="nump">$ 93,744<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AssetsFairValueDisclosure', window );">Ending balance</a></td>
<td class="nump">$ 93,744<span></span>
</td>
<td class="nump">$ 93,744<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AssetsFairValueDisclosure">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Fair value portion of asset recognized for present right to economic benefit.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 100<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482078/820-10-55-100<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AssetsFairValueDisclosure</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FairValueByMeasurementBasisAxis=us-gaap_EstimateOfFairValueFairValueDisclosureMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FairValueByMeasurementBasisAxis=us-gaap_EstimateOfFairValueFairValueDisclosureMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FairValueByMeasurementFrequencyAxis=us-gaap_FairValueMeasurementsRecurringMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FairValueByMeasurementFrequencyAxis=us-gaap_FairValueMeasurementsRecurringMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>90
<FILENAME>R78.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Fair Value Measurements - Narrative (Details)<br></strong></div></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Apr. 01, 2023</div></th>
<th class="th"><div>Dec. 31, 2024</div></th>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_RangeAxis=srt_MinimumMember', window );">Minimum</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems', window );"><strong>Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_MaintenanceAgreementsApplicablePercentage', window );">Maintenance agreements, applicable percentage</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">5.00%<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_RangeAxis=srt_MaximumMember', window );">Maximum</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems', window );"><strong>Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_MaintenanceAgreementsApplicablePercentage', window );">Maintenance agreements, applicable percentage</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">10.00%<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AssetAcquisitionAxis=tgen_AegisEnergyServicesLLCMember', window );">Aegis Energy Services, LLC | Measurement Input, Discount Rate</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems', window );"><strong>Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_IntangibleAssetsMeasurementInput', window );">Intangible assets, measurement input</a></td>
<td class="nump">15.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_IntangibleAssetsMeasurementInput">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Intangible Assets, Measurement Input</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_IntangibleAssetsMeasurementInput</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_MaintenanceAgreementsApplicablePercentage">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Maintenance Agreements, Applicable Percentage</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_MaintenanceAgreementsApplicablePercentage</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 100<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482078/820-10-55-100<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-3<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_RangeAxis=srt_MinimumMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RangeAxis=srt_MinimumMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_RangeAxis=srt_MaximumMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RangeAxis=srt_MaximumMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AssetAcquisitionAxis=tgen_AegisEnergyServicesLLCMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AssetAcquisitionAxis=tgen_AegisEnergyServicesLLCMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_MeasurementInputTypeAxis=us-gaap_MeasurementInputDiscountRateMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_MeasurementInputTypeAxis=us-gaap_MeasurementInputDiscountRateMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>91
<FILENAME>R79.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Retirement plans (Details) - USD ($)<br></strong></div></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jul. 01, 2023</div></th>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CompensationAndRetirementDisclosureAbstract', window );"><strong>Retirement Benefits [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DefinedContributionPlanEmployerMatchingContributionPercent', window );">Maximum employer annual contribution per employee, percent</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">4.50%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_DefinedContributionPlanMaximumQuarterlyEmployerMatchingContributionPerParticipant', window );">Maximum quarterly employer matching contribution per participant</a></td>
<td class="nump">$ 250<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_DefinedContributionPlanMaximumAnnualEmployerMatchingContributionPerParticipant', window );">Maximum annual employer matching contribution per participant</a></td>
<td class="nump">$ 1,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DefinedContributionPlanCostRecognized', window );">Contributions to plan</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 86,827<span></span>
</td>
<td class="nump">$ 65,705<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_DefinedContributionPlanMaximumAnnualEmployerMatchingContributionPerParticipant">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Defined Contribution Plan, Maximum Annual Employer Matching Contribution Per Participant</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_DefinedContributionPlanMaximumAnnualEmployerMatchingContributionPerParticipant</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_DefinedContributionPlanMaximumQuarterlyEmployerMatchingContributionPerParticipant">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Defined Contribution Plan, Maximum Quarterly Employer Matching Contribution Per Participant</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_DefinedContributionPlanMaximumQuarterlyEmployerMatchingContributionPerParticipant</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CompensationAndRetirementDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CompensationAndRetirementDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DefinedContributionPlanCostRecognized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cost for defined contribution plan.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 715<br> -SubTopic 70<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480794/715-70-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DefinedContributionPlanCostRecognized</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DefinedContributionPlanEmployerMatchingContributionPercent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Percentage of employees' gross pay for which the employer contributes a matching contribution to a defined contribution plan.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DefinedContributionPlanEmployerMatchingContributionPercent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>92
<FILENAME>R80.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Segments (Details)<br></strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th">
<div>Dec. 31, 2024 </div>
<div>USD ($) </div>
<div>segment</div>
</th>
<th class="th">
<div>Dec. 31, 2023 </div>
<div>USD ($)</div>
</th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SegmentReportingInformationLineItems', window );"><strong>Segment Reporting Information [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NumberOfOperatingSegments', window );">Number of operating segments | segment</a></td>
<td class="nump">3<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenue</a></td>
<td class="nump">$ 22,619,536<span></span>
</td>
<td class="nump">$ 25,139,419<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CostOfGoodsAndServicesSold', window );">Cost of sales</a></td>
<td class="nump">12,749,363<span></span>
</td>
<td class="nump">14,937,801<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GrossProfit', window );">Gross profit</a></td>
<td class="nump">9,870,173<span></span>
</td>
<td class="nump">10,201,618<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingExpenses', window );">Operating expenses</a></td>
<td class="nump">14,404,260<span></span>
</td>
<td class="nump">14,615,230<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingIncomeLoss', window );">Loss from operations</a></td>
<td class="num">(4,534,087)<span></span>
</td>
<td class="num">(4,413,612)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_Assets', window );">Identifiable assets</a></td>
<td class="nump">31,092,259<span></span>
</td>
<td class="nump">27,792,629<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StatementBusinessSegmentsAxis=tgen_EnergyProductionMember', window );">Energy Production</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SegmentReportingInformationLineItems', window );"><strong>Segment Reporting Information [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GrossProfit', window );">Gross profit</a></td>
<td class="nump">798,838<span></span>
</td>
<td class="nump">650,916<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingExpenses', window );">Operating expenses</a></td>
<td class="nump">319,514<span></span>
</td>
<td class="nump">66,190<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingIncomeLoss', window );">Loss from operations</a></td>
<td class="nump">479,324<span></span>
</td>
<td class="nump">584,726<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_Assets', window );">Identifiable assets</a></td>
<td class="nump">2,855,386<span></span>
</td>
<td class="nump">3,269,013<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StatementBusinessSegmentsAxis=us-gaap_CorporateAndOtherMember', window );">Corporate, other and elimination</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SegmentReportingInformationLineItems', window );"><strong>Segment Reporting Information [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GrossProfit', window );">Gross profit</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingExpenses', window );">Operating expenses</a></td>
<td class="nump">5,511,355<span></span>
</td>
<td class="nump">6,127,419<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingIncomeLoss', window );">Loss from operations</a></td>
<td class="num">(5,511,355)<span></span>
</td>
<td class="num">(6,127,419)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_Assets', window );">Identifiable assets</a></td>
<td class="nump">7,054,081<span></span>
</td>
<td class="nump">2,730,690<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StatementBusinessSegmentsAxis=tgen_ProductsSegmentMember', window );">Products Segment</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SegmentReportingInformationLineItems', window );"><strong>Segment Reporting Information [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenue</a></td>
<td class="nump">4,443,996<span></span>
</td>
<td class="nump">8,859,946<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GrossProfit', window );">Gross profit</a></td>
<td class="nump">1,429,341<span></span>
</td>
<td class="nump">2,936,850<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingExpenses', window );">Operating expenses</a></td>
<td class="nump">1,947,426<span></span>
</td>
<td class="nump">1,429,400<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingIncomeLoss', window );">Loss from operations</a></td>
<td class="num">(518,085)<span></span>
</td>
<td class="nump">1,507,450<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_Assets', window );">Identifiable assets</a></td>
<td class="nump">9,487,422<span></span>
</td>
<td class="nump">8,990,275<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StatementBusinessSegmentsAxis=tgen_ServicesAndOtherSegmentMember', window );">Services and Other Segment</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SegmentReportingInformationLineItems', window );"><strong>Segment Reporting Information [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GrossProfit', window );">Gross profit</a></td>
<td class="nump">7,641,994<span></span>
</td>
<td class="nump">6,613,852<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingExpenses', window );">Operating expenses</a></td>
<td class="nump">6,625,965<span></span>
</td>
<td class="nump">6,992,221<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingIncomeLoss', window );">Loss from operations</a></td>
<td class="nump">1,016,029<span></span>
</td>
<td class="num">(378,369)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_Assets', window );">Identifiable assets</a></td>
<td class="nump">11,695,370<span></span>
</td>
<td class="nump">12,802,651<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_ConsolidationItemsAxis=us-gaap_OperatingSegmentsMember', window );">Operating Segments</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SegmentReportingInformationLineItems', window );"><strong>Segment Reporting Information [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenue</a></td>
<td class="nump">22,619,536<span></span>
</td>
<td class="nump">25,139,419<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CostOfGoodsAndServicesSold', window );">Cost of sales</a></td>
<td class="nump">12,749,363<span></span>
</td>
<td class="nump">14,937,801<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_ConsolidationItemsAxis=us-gaap_OperatingSegmentsMember', window );">Operating Segments | Energy Production</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SegmentReportingInformationLineItems', window );"><strong>Segment Reporting Information [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenue</a></td>
<td class="nump">2,100,670<span></span>
</td>
<td class="nump">1,756,419<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CostOfGoodsAndServicesSold', window );">Cost of sales</a></td>
<td class="nump">1,301,832<span></span>
</td>
<td class="nump">1,105,503<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_ConsolidationItemsAxis=us-gaap_OperatingSegmentsMember', window );">Operating Segments | Corporate, other and elimination</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SegmentReportingInformationLineItems', window );"><strong>Segment Reporting Information [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenue</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CostOfGoodsAndServicesSold', window );">Cost of sales</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_ConsolidationItemsAxis=us-gaap_OperatingSegmentsMember', window );">Operating Segments | Products Segment</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SegmentReportingInformationLineItems', window );"><strong>Segment Reporting Information [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenue</a></td>
<td class="nump">4,443,996<span></span>
</td>
<td class="nump">8,859,946<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CostOfGoodsAndServicesSold', window );">Cost of sales</a></td>
<td class="nump">3,014,655<span></span>
</td>
<td class="nump">5,923,096<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_ConsolidationItemsAxis=us-gaap_OperatingSegmentsMember', window );">Operating Segments | Services and Other Segment</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SegmentReportingInformationLineItems', window );"><strong>Segment Reporting Information [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenue</a></td>
<td class="nump">16,074,870<span></span>
</td>
<td class="nump">14,523,054<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CostOfGoodsAndServicesSold', window );">Cost of sales</a></td>
<td class="nump">$ 8,432,876<span></span>
</td>
<td class="nump">$ 7,909,202<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_Assets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of asset recognized for present right to economic benefit.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 48<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-48<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 49<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-49<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (bb)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481203/810-10-50-3<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 25<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481231/810-10-45-25<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 12: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 13: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479168/946-830-55-12<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(12))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-1<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(8))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-1<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(18))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 18: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 19: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 28: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481404/852-10-50-7<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-30<br><br>Reference 30: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(11))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478546/942-210-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_Assets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CostOfGoodsAndServicesSold">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(2)(d))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(2)(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 924<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 11.L)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479941/924-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CostOfGoodsAndServicesSold</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GrossProfit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Aggregate revenue less cost of goods and services sold or operating expenses directly attributable to the revenue generation activity.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 48<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-48<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-30<br><br>Reference 5: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 6: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 7: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 8: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 9: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 14: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 23: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 31<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-31<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GrossProfit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NumberOfOperatingSegments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of operating segments. An operating segment is a component of an enterprise: (a) that engages in business activities from which it may earn revenues and incur expenses (including revenues and expenses relating to transactions with other components of the same enterprise), (b) whose operating results are regularly reviewed by the enterprise's chief operating decision maker to make decisions about resources to be allocated to the segment and assess its performance, and (c) for which discrete financial information is available. An operating segment may engage in business activities for which it has yet to earn revenues, for example, start-up operations may be operating segments before earning revenues.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 49<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-49<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 18<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-18<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NumberOfOperatingSegments</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:integerItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingExpenses">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingExpenses</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingIncomeLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The net result for the period of deducting operating expenses from operating revenues.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-30<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 5: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 7: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 31<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-31<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingIncomeLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 41<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-41<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 924<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 11.L)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479941/924-10-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-5<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-30<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 42<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-42<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 40<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-40<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SegmentReportingInformationLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SegmentReportingInformationLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StatementBusinessSegmentsAxis=tgen_EnergyProductionMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StatementBusinessSegmentsAxis=tgen_EnergyProductionMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StatementBusinessSegmentsAxis=us-gaap_CorporateAndOtherMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StatementBusinessSegmentsAxis=us-gaap_CorporateAndOtherMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StatementBusinessSegmentsAxis=tgen_ProductsSegmentMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StatementBusinessSegmentsAxis=tgen_ProductsSegmentMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StatementBusinessSegmentsAxis=tgen_ServicesAndOtherSegmentMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StatementBusinessSegmentsAxis=tgen_ServicesAndOtherSegmentMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_ConsolidationItemsAxis=us-gaap_OperatingSegmentsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_ConsolidationItemsAxis=us-gaap_OperatingSegmentsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>93
<FILENAME>R81.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Income taxes - Reconciliation of Federal Statutory Income Tax Provision to Company's Actual Provision (Details) - USD ($)<br></strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_IncomeTaxDisclosureLineItems', window );"><strong>Income Tax Disclosure [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate', window );">Federal statutory income tax rate (percent)</a></td>
<td class="nump">21.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest', window );">Pre-tax book income</a></td>
<td class="num">$ (4,651,205)<span></span>
</td>
<td class="num">$ (4,490,665)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxReconciliationNondeductibleExpenseImpairmentLosses', window );">Goodwill impairment</a></td>
<td class="nump">45,632<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_EffectiveIncomeTaxRateReconciliationOperatingLossCarryforwardExpired', window );">Expired net operating losses</a></td>
<td class="nump">324,799<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxReconciliationPriorYearIncomeTaxes', window );">Deferred tax past year true-up's</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">980,342<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance', window );">Change in valuation allowance</a></td>
<td class="nump">921,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxExpenseBenefit', window );">Income tax provision</a></td>
<td class="nump">22,565<span></span>
</td>
<td class="nump">32,491<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeStatementLocationAxis=tgen_BenefitforIncomeTaxesMember', window );">Income Tax Provision</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_IncomeTaxDisclosureLineItems', window );"><strong>Income Tax Disclosure [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate', window );">Expected tax at 21%</a></td>
<td class="num">(976,753)<span></span>
</td>
<td class="num">(943,040)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxReconciliationNondeductibleExpenseAmortization', window );">Intangible amortization</a></td>
<td class="num">(37,003)<span></span>
</td>
<td class="num">(46,373)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxReconciliationNondeductibleExpenseOther', window );">Other</a></td>
<td class="nump">5,169<span></span>
</td>
<td class="nump">6,474<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_EffectiveIncomeTaxRateReconciliationStateandLocalIncomeTaxesAmountCurrent', window );">Current</a></td>
<td class="nump">22,565<span></span>
</td>
<td class="nump">32,491<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_EffectiveIncomeTaxRateReconciliationStateandLocalIncomeTaxesAmountDeferred', window );">Deferred</a></td>
<td class="num">(234,928)<span></span>
</td>
<td class="num">(264,759)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxReconciliationTaxCreditsResearch', window );">Federal research and development credits</a></td>
<td class="nump">0<span></span>
</td>
<td class="num">(84,592)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxReconciliationPriorYearIncomeTaxes', window );">Deferred tax past year true-up's</a></td>
<td class="num">(91,289)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance', window );">Change in valuation allowance</a></td>
<td class="nump">920,794<span></span>
</td>
<td class="num">(63,440)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxReconciliationNondeductibleExpenseResearchAndDevelopment', window );">Capitalized research and development expenses</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">334,120<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_IncomeTaxReconciliationUnbenefitedOperatingLosses', window );">Other</a></td>
<td class="nump">$ 43,579<span></span>
</td>
<td class="nump">$ 81,268<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_EffectiveIncomeTaxRateReconciliationOperatingLossCarryforwardExpired">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Effective Income Tax Rate Reconciliation, Operating Loss Carryforward, Expired</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_EffectiveIncomeTaxRateReconciliationOperatingLossCarryforwardExpired</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_EffectiveIncomeTaxRateReconciliationStateandLocalIncomeTaxesAmountCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Effective Income Tax Rate Reconciliation, State and Local Income Taxes, Amount, Current</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_EffectiveIncomeTaxRateReconciliationStateandLocalIncomeTaxesAmountCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_EffectiveIncomeTaxRateReconciliationStateandLocalIncomeTaxesAmountDeferred">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Effective Income Tax Rate Reconciliation, State and Local Income Taxes, Amount, Deferred</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_EffectiveIncomeTaxRateReconciliationStateandLocalIncomeTaxesAmountDeferred</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_IncomeTaxDisclosureLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>[Line Items] for Income Tax Disclosure [Table]</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_IncomeTaxDisclosureLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_IncomeTaxReconciliationUnbenefitedOperatingLosses">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Income Tax Reconciliation, Unbenefited Operating Losses</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_IncomeTaxReconciliationUnbenefitedOperatingLosses</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Percentage of domestic federal statutory tax rate applicable to pretax income (loss).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 231<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482663/740-10-55-231<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.1.Q1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479360/740-10-S99-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 48<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-48<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-30<br><br>Reference 5: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 6: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 7: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(11))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 9: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 31<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-31<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 235<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-05(b)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477314/942-235-S99-1<br><br>Reference 11: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(10))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 12: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(15))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478524/942-220-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 231<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482663/740-10-55-231<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-9<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.7)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479360/740-10-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-8<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-10<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (h)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(9))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Subparagraph (a)<br> -SubTopic 20<br> -Topic 740<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482659/740-20-45-2<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h))<br> -SubTopic 10<br> -Topic 235<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxExpenseBenefit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount 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 increase (decrease) in the valuation allowance for deferred tax assets.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 231<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482663/740-10-55-231<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12A<br> -Subparagraph (a)(6)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12A<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The amount of income tax expense or benefit for the period computed by applying the domestic federal statutory tax rates to pretax income from continuing operations.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 231<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482663/740-10-55-231<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxReconciliationNondeductibleExpenseAmortization">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount 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 nondeductible amortization.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12A<br> -Subparagraph (b)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12A<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxReconciliationNondeductibleExpenseAmortization</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxReconciliationNondeductibleExpenseImpairmentLosses">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount 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 nondeductible impairment loss.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 231<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482663/740-10-55-231<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12A<br> -Subparagraph (b)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12A<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxReconciliationNondeductibleExpenseImpairmentLosses</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxReconciliationNondeductibleExpenseOther">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount 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 other nondeductible expenses.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 231<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482663/740-10-55-231<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12A<br> -Subparagraph (b)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12A<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxReconciliationNondeductibleExpenseOther</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxReconciliationNondeductibleExpenseResearchAndDevelopment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount 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 nondeductible research and development expense.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12A<br> -Subparagraph (b)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12A<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxReconciliationNondeductibleExpenseResearchAndDevelopment</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxReconciliationPriorYearIncomeTaxes">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount 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 revisions of previously reported income tax expense (benefit).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Subparagraph (b)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxReconciliationPriorYearIncomeTaxes</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxReconciliationTaxCreditsResearch">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount 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 research tax credit.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 231<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482663/740-10-55-231<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12A<br> -Subparagraph (b)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12A<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxReconciliationTaxCreditsResearch</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeStatementLocationAxis=tgen_BenefitforIncomeTaxesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeStatementLocationAxis=tgen_BenefitforIncomeTaxesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>94
<FILENAME>R82.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Income taxes - Schedule of Deferred Tax Assets (Details) - USD ($)<br></strong></div></th>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxDisclosureAbstract', window );"><strong>Income Tax Disclosure [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsOperatingLossCarryforwards', window );">Net operating loss carryforwards</a></td>
<td class="nump">$ 12,025,000<span></span>
</td>
<td class="nump">$ 10,840,000<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsTaxCreditCarryforwards', window );">R&amp;D and ITC credit carryforwards</a></td>
<td class="nump">396,000<span></span>
</td>
<td class="nump">403,000<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_DeferredTaxAssetTaxDeferredExpenseReservesAndAccrualsAccruedLiabilitiesAndOther', window );">Accrued expenses and other</a></td>
<td class="nump">267,000<span></span>
</td>
<td class="nump">381,000<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsGoodwillAndIntangibleAssets', window );">Intangibles</a></td>
<td class="nump">370,000<span></span>
</td>
<td class="nump">499,000<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_DeferredTaxAssetLeases', window );">Leases</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">8,000<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts', window );">Accounts receivable</a></td>
<td class="nump">76,000<span></span>
</td>
<td class="nump">39,000<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefits', window );">Stock options</a></td>
<td class="nump">486,000<span></span>
</td>
<td class="nump">450,000<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsInventory', window );">Inventory</a></td>
<td class="nump">279,000<span></span>
</td>
<td class="nump">427,000<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsPropertyPlantAndEquipment', window );">Property, plant and equipment</a></td>
<td class="nump">578,000<span></span>
</td>
<td class="nump">650,000<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsOther', window );">Other</a></td>
<td class="nump">464,000<span></span>
</td>
<td class="nump">323,000<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsGross', window );">Deferred tax assets</a></td>
<td class="nump">14,941,000<span></span>
</td>
<td class="nump">14,020,000<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsValuationAllowance', window );">Valuation allowance</a></td>
<td class="num">(14,941,000)<span></span>
</td>
<td class="num">(14,020,000)<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredTaxLiabilities', window );">Deferred tax assets, net</a></td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_DeferredTaxAssetLeases">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Deferred Tax Asset, Leases</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_DeferredTaxAssetLeases</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_DeferredTaxAssetTaxDeferredExpenseReservesAndAccrualsAccruedLiabilitiesAndOther">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Deferred Tax Asset, Tax Deferred Expense, Reserves And Accruals Accrued Liabilities And Other</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_DeferredTaxAssetTaxDeferredExpenseReservesAndAccrualsAccruedLiabilitiesAndOther</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxAssetsGoodwillAndIntangibleAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from intangible assets including goodwill.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsGoodwillAndIntangibleAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxAssetsGross">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences and carryforwards.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsGross</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxAssetsInventory">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from inventory.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsInventory</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxAssetsOperatingLossCarryforwards">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount before allocation of valuation allowances of deferred tax asset attributable to deductible operating loss carryforwards.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsOperatingLossCarryforwards</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxAssetsOther">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, before allocation of valuation allowance, of deferred tax asset attributable to deductible temporary differences, classified as other.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsOther</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxAssetsPropertyPlantAndEquipment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from property, plant, and equipment.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsPropertyPlantAndEquipment</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxAssetsTaxCreditCarryforwards">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, before allocation of a valuation allowances, of deferred tax assets attributable to deductible tax credit carryforwards including, but not limited to, research, foreign, general business, alternative minimum tax, and other deductible tax credit carryforwards.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsTaxCreditCarryforwards</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefits">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from compensation and benefits costs.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefits</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, before allocation of valuation allowance, of deferred tax asset attributable to deductible temporary difference from allowance for credit loss on accounts receivable.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxAssetsValuationAllowance">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of deferred tax assets for which it is more likely than not that a tax benefit will not be realized.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsValuationAllowance</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxLiabilities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, after deferred tax asset, of deferred tax liability attributable to taxable differences without jurisdictional netting.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxLiabilities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>95
<FILENAME>R83.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Income taxes - Narrative (Details) - USD ($)<br></strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2017</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLossCarryforwardsLineItems', window );"><strong>Operating Loss Carryforwards [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_EffectiveIncomeTaxRateReconciliationOperatingLossCarryforwardExpired', window );">Expired net operating losses</a></td>
<td class="nump">$ 324,799<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsSubjectToExpiration', window );">NOLs which expire</a></td>
<td class="nump">19,240,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsNotSubjectToExpiration', window );">NOLs with indefinite carryforward</a></td>
<td class="nump">21,907,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance', window );">Change in valuation allowance</a></td>
<td class="nump">921,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxAuthorityAxis=us-gaap_InternalRevenueServiceIRSMember', window );">Internal Revenue Service (IRS)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLossCarryforwardsLineItems', window );"><strong>Operating Loss Carryforwards [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLossCarryforwards', window );">Operating loss carryforwards</a></td>
<td class="nump">41,147,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_OperatingLossCarryforwardsExpired', window );">Operating loss carryforwards, expired</a></td>
<td class="nump">623,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxAuthorityAxis=us-gaap_StateAndLocalJurisdictionMember', window );">State Jurisdiction</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLossCarryforwardsLineItems', window );"><strong>Operating Loss Carryforwards [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLossCarryforwards', window );">Operating loss carryforwards</a></td>
<td class="nump">32,285,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeStatementLocationAxis=tgen_BenefitforIncomeTaxesMember', window );">Income Tax Provision</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLossCarryforwardsLineItems', window );"><strong>Operating Loss Carryforwards [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance', window );">Change in valuation allowance</a></td>
<td class="nump">920,794<span></span>
</td>
<td class="num">$ (63,440)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_OwnershipAxis=tgen_AmericanDgEnergyMember', window );">American DG Energy</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLossCarryforwardsLineItems', window );"><strong>Operating Loss Carryforwards [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SubsidiaryOrEquityMethodInvesteeCumulativePercentageOwnershipAfterAllTransactions', window );">Ownership interest (percent)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">100.00%<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_AcquisitionAnnualNOLLimitationAmount', window );">Annual limitation of acquired NOL</a></td>
<td class="nump">$ 391,940<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_AcquisitionNetOperatingLossLimitationPeriod', window );">Period of limitation on acquired NOL</a></td>
<td class="text">20 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_AcquisitionAnnualNOLLimitationAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Acquisition, Annual NOL Limitation, Amount</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_AcquisitionAnnualNOLLimitationAmount</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_AcquisitionNetOperatingLossLimitationPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Acquisition, Net Operating Loss, Limitation Period</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_AcquisitionNetOperatingLossLimitationPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_EffectiveIncomeTaxRateReconciliationOperatingLossCarryforwardExpired">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Effective Income Tax Rate Reconciliation, Operating Loss Carryforward, Expired</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_EffectiveIncomeTaxRateReconciliationOperatingLossCarryforwardExpired</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_OperatingLossCarryforwardsExpired">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Operating Loss Carryforwards, Expired</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_OperatingLossCarryforwardsExpired</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsNotSubjectToExpiration">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount before allocation of valuation allowances of deferred tax asset attributable to deductible operating loss carryforwards that are not subject to expiration dates.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsNotSubjectToExpiration</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsSubjectToExpiration">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount before allocation of valuation allowances of deferred tax asset attributable to deductible operating loss carryforwards that are subject to expiration dates.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsSubjectToExpiration</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount 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 increase (decrease) in the valuation allowance for deferred tax assets.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 231<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482663/740-10-55-231<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12A<br> -Subparagraph (a)(6)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12A<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLossCarryforwards">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of operating loss carryforward, before tax effects, available to reduce future taxable income under enacted tax laws.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-3<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLossCarryforwards</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLossCarryforwardsLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-3<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLossCarryforwardsLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SubsidiaryOrEquityMethodInvesteeCumulativePercentageOwnershipAfterAllTransactions">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Percentage of subsidiary's or equity method investee's stock owned by parent immediately after all stock transactions.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SubsidiaryOrEquityMethodInvesteeCumulativePercentageOwnershipAfterAllTransactions</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxAuthorityAxis=us-gaap_InternalRevenueServiceIRSMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxAuthorityAxis=us-gaap_InternalRevenueServiceIRSMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxAuthorityAxis=us-gaap_StateAndLocalJurisdictionMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxAuthorityAxis=us-gaap_StateAndLocalJurisdictionMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeStatementLocationAxis=tgen_BenefitforIncomeTaxesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeStatementLocationAxis=tgen_BenefitforIncomeTaxesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_OwnershipAxis=tgen_AmericanDgEnergyMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_OwnershipAxis=tgen_AmericanDgEnergyMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>96
<FILENAME>R84.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Subsequent Events (Details) - Subsequent Event<br></strong></div></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="2"></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1">3 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Feb. 28, 2025</div></th>
<th class="th"><div>Feb. 18, 2025</div></th>
<th class="th">
<div>Feb. 07, 2025 </div>
<div>CAD ($)</div>
</th>
<th class="th">
<div>Feb. 07, 2025 </div>
<div>USD ($)</div>
</th>
<th class="th"><div>Jan. 14, 2025</div></th>
<th class="th">
<div>Jan. 13, 2025 </div>
<div>CAD ($)</div>
</th>
<th class="th">
<div>Mar. 31, 2025 </div>
<div>USD ($)</div>
</th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SubsequentEventLineItems', window );"><strong>Subsequent Event [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_LitigationSettlementFeeExpenseBenefit', window );">Litigation settlement fee expense, benefit</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 79,006<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_SalesAndMarketingAgreementTerm', window );">Sales and marketing agreement, term</a></td>
<td class="text">2 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SubsequentEventTypeAxis=us-gaap_SubsequentEventMember', window );">Average Closing Share Price | Director</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SubsequentEventLineItems', window );"><strong>Subsequent Event [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tgen_RelatedPartyTransactionPeriod', window );">Related party transaction, period</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">30 days<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">30 days<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SubsequentEventTypeAxis=us-gaap_SubsequentEventMember', window );">The Corporation Of The Town Of Milton, Milton Energy Generation Solutions Inc. And Milton Hydro Distribution Inc</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SubsequentEventLineItems', window );"><strong>Subsequent Event [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LossContingencyDamagesAwardedValue', window );">Loss contingency, damages awarded</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 400,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LossContingencyDamagesPaidValue', window );">Loss contingency, damages paid</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 100,000<span></span>
</td>
<td class="nump">$ 70,994<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_LitigationSettlementFeeExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Litigation Settlement Fee Expense, Benefit</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_LitigationSettlementFeeExpenseBenefit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_RelatedPartyTransactionPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Related Party Transaction, Period</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_RelatedPartyTransactionPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tgen_SalesAndMarketingAgreementTerm">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Sales And Marketing Agreement, Term</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tgen_SalesAndMarketingAgreementTerm</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tgen_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LossContingencyDamagesAwardedValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of damages awarded to the plaintiff in the legal matter.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 450<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483076/450-20-50-1<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 450<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483076/450-20-50-4<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 450<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483076/450-20-50-9<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LossContingencyDamagesAwardedValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LossContingencyDamagesPaidValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of damages paid to the plaintiff in the legal matter.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 450<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483076/450-20-50-1<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 450<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483076/450-20-50-4<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 450<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483076/450-20-50-9<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LossContingencyDamagesPaidValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SubsequentEventLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Detail information of subsequent event by type. User is expected to use existing line items from elsewhere in the taxonomy as the primary line items for this disclosure, which is further associated with dimension and member elements pertaining to a subsequent event.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 830<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481674/830-30-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 855<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483399/855-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SubsequentEventLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SubsequentEventTypeAxis=us-gaap_SubsequentEventMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SubsequentEventTypeAxis=us-gaap_SubsequentEventMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RelatedPartyTransactionAxis=tgen_AverageClosingSharePriceMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RelatedPartyTransactionAxis=tgen_AverageClosingSharePriceMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis=srt_DirectorMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RelatedPartyTransactionsByRelatedPartyAxis=srt_DirectorMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_LitigationCaseAxis=tgen_TheCorporationOfTheTownOfMiltonMiltonEnergyGenerationSolutionsInc.AndMiltonHydroDistributionIncMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_LitigationCaseAxis=tgen_TheCorporationOfTheTownOfMiltonMiltonEnergyGenerationSolutionsInc.AndMiltonHydroDistributionIncMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EXCEL
<SEQUENCE>97
<FILENAME>Financial_Report.xlsx
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
begin 644 Financial_Report.xlsx
M4$L#!!0    ( .!B<EI&QTU(E0   ,T    0    9&]C4')O<',O87!P+GAM
M;$W/30O", P&X+]2=K>9BAZD#D0]BIZ\SRYUA;8I;83Z[^T$/VYY><@;HBZ)
M(B:VF$7Q+N1M,S+'#4#6(_H^R\JABJ'D>ZXQW8&,L1H/I!\> \.B;=> A3$,
M.,SBM[#IU"Y&9W7/ED)WLCI1)L/B6#0ZL2<?J]P<"A#G>B4^BQ-+.9<K!?^+
M4\L54Y[FRF_\9 6_![H74$L#!!0    ( .!B<EJ/1&AJ]    "L"   1
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
MY$X*/-S^[PVPPL2.X>V+OP%02P,$%     @ X&)R6MKU#D?A!P  S2X  !@
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
MA[GNL2!,@-[?<ZZ.$W- V[63OU!+ P04    " #@8G):_8&N8+ '  !@(0
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
M _A\H;5Y?M$\9-__J&+R/U!+ P04    " #@8G):\J8K,)<"   _!P  &
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
M2N4GJTYBWE\)#88Z33OLD$A[B=0K\4:68YT4\[(1,.H-$D\JJ-:A[WP=C&J
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
M)]2\?*)#H.KY LXWWJ?=@@WL_]NY^AM02P,$%     @ X&)R6KFYT1(/*0
M_(0  !D   !X;"]W;W)K<VAE971S+W-H965T,3 N>&UL[3W9DMO&M;^"FBBQ
M5(6A2,YN2ZH:C6Q'*<E6259<J5OW 02:)"P08-# C)BOOV?M!01'(]L/]R$/
MMH8DNOOTZ;,OC6=W3?O)KHWIDL^;JK;/C]9=M_WVZ5.;K\TFLY-F:VKX9=FT
MFZR#C^WJJ=VV)BMHT*9Z.I].SY]NLK(^>O&,OGO7OGC6]%U5UN9=F]A^L\G:
MW4M3-7?/CV9'^L7[<K7N\(NG+YYMLY7Y8+J/VW<M?'KJ9BG*C:EMV=1):Y;/
MCZYGW[X\Q>?I@7^6YLX&?R>XDT73?,(/KXOG1U,$R%0F[W"&#/ZY-3>FJG B
M ./?,N>16Q('AG_K[#_0WF$OB\R:FZ;ZM2RZ]?.CRZ.D,,NLK[KWS=W?C>SG
M#.?+F\K2_Y,[?O;TY"C)>]LU&QD,$&S*FO_-/@L>@@&7TP,#YC)@3G#S0@3E
MJZS+7CQKF[NDQ:=A-OR#MDJC ;BRQD/YT+7P:PGCNA<?^#"29IG8<E67RS+/
MZ@Z0E3=]W97U*MDV59F7QCY[VL%Z..II+G._Y+GG!^:>S9.W3=VM;?)]79@B
MGN I .J@G2NT+^?WSOC*Y)/D9)8F\^G\])[Y3MSN3VB^DP/S7?MMOI-M)O]S
MO;!="]3ROV,[YOE.Q^=##OK6;K/</#\"%K&FO35'+_[VE]GY]+M[H#UUT)[>
M-_L?/*L'S_TAF'L,0>_:LL[+;05_PM,W36WAER)C)JN+Y&5F2_KI':*@[OB7
M7]8F699U!D.S*K'PK0'>[FRRSFY-LC"F3@!EVZPU15+6M*FV@*<-,$2W#C<)
M8^LB:PN;6!!:BUW2P=0_N*D#D#^X)U\V\$^:-&WRP_6'EQ."!O_"*6RR,K5I
MLZK:X3)FVP$((5+=?FF"'Z^OWZ5)UR0@F?HVW%3>U$6)FTU!7%D0"X0%D)\M
MH0"&(WKRS*Z3)0A#F\!F<1"@JP-4P/* @*:%Y2?)>[,TK8'M6UP*UTQ*:WN
M3#>,T .BX&\+0#1-5S>=X3EAA'MD%!TW34$GS,#"IJX_W$R27TV2%0UM'X=O
MP^-KS;_[LI4C UV0U$T-H'=M4U4X=UEW *^%'^5) A2F32YGTYA()LE'$ >M
M_I@F)FMKF,,B(%5C+>ZBZ]IRT1,HO)F#Z^&&%6])9A,@H0[QCH-RMR[\YI;!
M4P!D)1F</CP-/\*#FVU3P^9P)!QWLS$(C?D,RL\:IA<DB<TVJW>X?C3S*%W#
M+%5?P#1]J]3$2W<R%WTA@,((H!R#HY*[=9FODSO#G)$EX;;]2HH A*VQT0Q^
MW;LUC-L=-W<U0&G[A2V+$K@\3:XWID4.3U[]",+9M*M=\KH&V?KXZ/K5C]\?
M/4F37TS> %\D-W]_EWQHJEXH&)]B.LZ2WQH (KF%E8$/XCE_ G7\+U#':?+F
MS0U3V*L??_I7ZO>'ZR0 'E!CEIS-)M._!ENZMGI\;N=XK  HK%U5H !_@RD+
MDY=H'!#68. 6-#TBE)8BNMAD@ BD0UQL1*K@(M$NDFS5&CI /G-/9LQJ\$]1
MWI9%#R?0(Q571 V&46AWP,@;8)SF-P"%QC LMRA:%Z:[0S%'P" &2W@D7ETV
MR6L?H'@:6H#(( :A[>-6"P,_@X& C =62I$ T\(1ULVFS!,D@-:NRRW/O/\]
M"!<03%7>5T30(F.R#1(IK'P+Z_+7O:?A 7P".V[:9'# MNR <;['/__=PV]X
M=D#4;A4X]AVPY''7'",7(=:69?<4!0 )&#<)+)9U"*!RMISO.!@.32!V<V'H
ML?T&4.+<V79;E2QM'";OG=ZN$>M"%0'LC&&;@0#9F&[=%$W5 &G $KT=SB]X
M <$?GR> G-UF994M*L/ZXGXAZ.GFYYKX?I%51.1D%Z8'AX'89!EO1SA!YOS;
M7R[GLXOOK% !LH:CZS395D 02,>,#@1\"9,?=]EG08I-0'$BT>QX)]%.)\P,
M+)]B2<<BH3(KX#0\:G>&#GK'71EA#&Q#LUD  :I]. %AI2 3+\J.\/R9BEF>
M#\5NT9!V>)#T36 C,!+^=@([-,W*>EGUJ,5!\"T1!RGQJDA_U!Q Z"1'6 N
MYNQV0C>3Y*=#*D^HK@;S)[-DP>!NO*$1"T%P<] '8KN*Q&JV)9V.1SN??G=@
M&?IU]IT.^CKM!P=;"99D6 (V=6VSG 'T1I^I2N"%C(R>CY9(Z'O;E>!OP;'\
MPF8(*6F$&'X\H&L1)'11$7]#@]$;<&.6GNSO8UWBIP\=+8P(9'6F]HP%95*#
MFTH, .RXR3[!@3E(22."@;;9\@9)9F7+):HDG-Y;*!NG^(.SJ\IL45:LP$6^
MYR!->N8I/![8"*Y\: RO0H)43(I11*G0' .G-<#ZO0 @EH]-BKY%'/I!A%%
M#5+H==ZA)E1K%S!>(>RP[399MLT&AI%MHFA"NS:O8 _.^F0_H00V^!<H@]AE
MN#%MER'?TN^H+!RXGGY:-Z&PDS.H\YU7\GG?MH@^FB0T;$E<6Q-,DV=*HF@E
M)H;/L*ECO(T:^!,T=%'I>'*] 4NX[)+WI?T4^"AE#4*PWXCDA<,#=".B>K+V
M\W 26B+G65J<1?:'6 &/K:S(9R/1ZKP+I-C;K'(G[JQ-V*6!7T"MD+6/01O"
M,.H,&BF*@SAJD=6?W-!4Y",26KDA;M@!U+D19^$'4R!C@12&C0"HK]$Y(AUT
MT[2 ,]J+TR6/CWYX]?KFZ(GR(^A$'E:Z82@6.M&F8H< 1O4Y &-/WM-6X8\3
M 96A$_@>S<^FZ70Z398,**"-UC(%KP3B&P7S%I369Z)5>.#1:7IU=IJ>7)W1
MU(]F,,%5.KTZ3=7:+&_A.4(E$22J#62<MD297Y#2$X<&\&G[?#WT!.# %R !
M@?.8#D")H,B6B1JQ&'">4*V$Y !(P9,C1*$6 F4(5,N1(T,>@%?S,-L,E&K(
MZ\@QB!]D# MV+.)K'+/#;T_")<%WNF?-^5]5*(U0HC-6#JAQ]C;"!>S^"J=_
M8 78R(VR#_WQ?< ^OXJ'CBH:/8]UN5H#:50E/%-$?,Q:!WBI+5? Z.BD@!V%
M^LA+9? MD@V'Q-#71<,(C >0<'V;KS,Y[84YS,Z>UO;8-1=IN8RD3-F)38G>
MCPA/9H\FARG@)^(%X605D\B=$0=&RH2TSDX0;LU@'2OJJJ>)@=!*<\>^ QP6
M"G*O1VDW?P[]'\#6M5+#>T\-8"/_(P/PP"43 B#'1$,?UQ\^PI>S\^,9?.]%
M]FM_U*E*]3?,VX]_:;9@F)[,SY\DP9(! >*>2 L7JJE%I 4V!0H.=!I) 51H
ML;$*;?J.(EZH=_6\12Q657-'A$UZCV%2>6.=U@T<PC4HC@:MFBJ04\!@*YQ<
M&,B#G8H3CJ9JB\;SS@EPI0$ =IN!5>M"7SB+"G4VV7?LZ]8%<"^&'L3P7I"K
M2DSCD?"-AYJTFI"CF]VBY,TL$"UAM<:@QA8U,GT&+!@@ =;*RYZ\&$%'Y'9Y
MQ QPQHK0 /7T3H&'Z!^3+7*>!F74THG2+Q^06.5VL/O!VNWO7)]E)GJ"Z*2$
M. 4%MZ"!;M,HQ-FI^X+\'*?M N,E!7@Q0K6E$CQ(M':%%+_*4$+P[/=@A"0A
M"%H0'FC,@3/;HZW6W%*09V1 87*D!I81CV:GY^ET-M5]$!8.Z+.4/;]61EY-
MY^GIR?P!(T$B%+V+K]ZU&#PHP'LE8A7YBWM%3>%19)UOV1Y UP-6!N3?9_.D
M7T8O:+]'\ZNS] JVRO;,Z55Z=34?6C/H-=<@)G;)^^P.M1C(B:Q""[!I/Y$?
MW38@@R2<#9JAM&N >-4T!4<)<' IH>A8Z@%T #QY-+9+41^'82L).MV"\%@9
M>D1<80H@HK<+QUV5_R&R0T9A*Y:=$11J3M\X,'888]'(* I  IDBNSF')8JG
M\*E9@#MK,!+DQK',#(SL2'KV%D"D#=P9.&OXUP?=G'11>21L5_0@T@NS(8N<
M_NM*<$OI49H/CKC&'5#>2!P#]C/4F2JM;C!D,-(8O(P%Q0?:X5V+3DD'TO9=
M12DB6 ZMFBUI&O_KUOUJW*\<,L X*9\;3CU!NQZ^+%DT82P.^;(@R-4]Q*P9
MYD"/,;<D)Y<TMQK;<&CIK5GV%9@72^>KDE>K+@;8_W#\LF.TF'XUNNN&)<(]
MT./9;AM,IY %!%Q>MO0#2A>#P*#EVY']!?B#E=C7P6T@0>1EF_<;E+AL5B%=
M:0B28R=M2R$0HK\(?O:)T'0!"PYV2-28(P*(8,G0EED<"FZ-'<S!Y@]P"H#6
MLD,"1)AU3.NB'XQJ:I[=V6.('QQYC#,7.B4+5H^*TF^,N(Z%H1XC\AEFT4=V
MF*S:IM^J^ L(G75M7V/80B);89I+DCF$!AC,CA#!!M*&Y[?]1I>2\#D)R?$)
M'P/W5GT1Q3*9&>P3W!T9UH#L^HM'EH:HORN!E1<LUX&"6++O;Q;0*%.Q 0*;
MH: U,6?>@)GZ'PXK21Z)*%EL8K*S?)Q.P\<DP7P0DD(Y(A@=QV$N@]!UX"2#
MK>#WPTU@)'9L$RCO@=I7I(>N&1'!-X(:VR]^HU!6@Y9KVX$09K@DV81"@E)/
M:+%IH@ ?SBEXYL0?*DD?8TF=TD0I6+.L@6\+X-$*T 2BS>3K&B/HI='TJ7J9
M%+/,<O%0K,) \54&D>5Q-A!,"TY/[\LE%V$.)5,Y0 6BJS"H]#K##PZ?L$K?
M&/%$<=]^LJ-"U><A%5SQM;+;AD6&;E%.5<2CJ2CBB!GHSZ"1D*0HBKZ/&2*;
MIE5I5!B; R,R<?X$0C*YG"1'^\>/<+T)@HL-(*)E?OH1E#RRR1'XS/O+4<KM
MOO7.8+UKLRHQ ZU;@\7>&TX[T?I@9 +-6++W89G7GMKA2-YXX2; OAF*NU2(
M4J3#X&QPN7LU"$?H5<ZRL?!@-1)K#_+3O:3ED' MAQGHBE!+D&$  )"D50>)
M#T!V( ()32F@H0I9A8!DZE#[V:>.?*E!A1*2 E^%V:*96?M$N7\2U0BM1R#<
M$ZC^K^S^2MG]UCO[@=E+9 $:OXP(?5^+$[-SB<-8F"SP!&)S_J6:-C?D= OT
MKT=*;# %FC,5CE3;4)#$>9*48?#8#(@DE_*/O10%9D<<_.QJ.D9W,3)*RGIK
MS(/,QK&8[1HO0_L<P'?"/(9(K1DO R@0L2<2%&), X,#)=S:D$>#="6Q\AWG
M?%1E'<[]D+VE)ZQFE0?-?@6V[A5F((.!VCF:XX !R' 5RM(YCW2X957;F+W4
M>!N%^WCC8L]Q1"IF7V((*7<0I8['AVET%H:J%2BW8&HB+Z<ATH 7A94HFTA:
M/W"F5'0D+6>-KKM1@B&2),X'_[01!1L]U8IF"5#+J5A'ZRD)3TI/^RR;AGPE
M$H.E)DM#ELTVVTG:AF6+!8A-*VK%'$<0ZI@A*F@1*J7ST0XT"M#O*_-0[?O9
M*+4T#M[O7'MHDH2\4X_SI_-Q*4Q&U.%B5<"W)3AI0NVZ!0X"D\%$23/*.@!#
M@KAWN2E*(8I>%N4A!$B$H4;1D+,/'M>#\1'Q&V%C8S+."9$8&N8[N;9A'#7L
MT.]"8^"PZHF2\D#N%" +JM\HG<T./4=5;%,5^+M&5FFU J6+I33AK=&$K<OQ
MAQEZEP >25>.XW O'SU&_TS[0TJR+FP[G(3-"M)L*!NCW\? CJI8@@@+(59E
M4X?E Q2\!LG659)7\*K6A:R]B,3H<'P:/'6_;>I(D$MJ0K,R/O2<2MT'942I
M#(B#J$#K?:UB%[?<UUL,PN6=&G<DYC()ZZ1*_9I-1B43IL^#Q/EU0%P8==>X
M*%*#Y'4":1)D[86FZ?B5CN7 O+DSEMZ/;9JL^*V7\A]=+RX[ S[U%1[JC%G;
M8-!(#=DQQ<[S"/D2_:@;.7'NAO^CM'+\9 =HJ4,D'&)*!J.*C7A=V]C[[(7(
M?@X+;$111PY)9]C]PNE7 82 /ZQ%(;7.>; TJ#P1="]!B )*EJ#JX Q=B1PF
MR,B%PKH3)JDR]OG9H6B$\20)"M@/4QSE,@9((V(X&TV%IH56+"$T#9<$(64Q
M\$"D !-P)XL71(.US%Q_!]?C5LKYJ R@DM# 8K?-+!_0^%B6S;I %)3J*%%Q
MBY&J)9G#O$U7#S<>U2.C6$HU!W/=<RC=@-[[NE1/RI6%M<8>()'!N,=!W20'
M0[-DS/61B.@3#<;$KDUHZ'F[$_<5V4)AR1XIX2"S0RD)ZD(QQ7$41:<"D2T<
M1Y5J57/.12R@9NM4/-,$0Q6F Y\XY^H_BDZCSTME/40JKKC;6_$^8U50E/*U
M>I21Y\8)YB%*TP$1L".HWACI$RU0$(X?.H3(R>%\@16+H[JF<P)2U2D1! %/
M\?7P,"?)#[ <IXCNE' EM\%T%#EI= )[MO" /C03QW$/M?%&S>,]:'XU7#5Z
M@*(H.HR6"J4W*69VV.I0YVJX1N"5_M87*XTKNI,N:YU;-4JH(O5XQBF^*<P8
M%:=2&ZJ1ZV!"#O*)^UQA#.*N6S/IA\L*[4GI^CN/?$)YW\&\@68[#)PKRG6,
MA*PYL [0F\:@I1+5^*II& #X<W?K]J/8/DQ+0^(; ?\!@]'<B*)>) $6@9E7
M#KC<LU@VA&%?L,6E6>-1Z9>AM9=A*@TA 7205LVJG2VQ'Z=O0_4"YTVQD$'0
M;3R2]"#N#2$MVV$ "0U:@[#YK6&:557LA%-7:AF/BA$1>0#/([!3T_G5F=8A
MW(2VL"]$^1 4V?X<;U^XXNLE33I:4)<^#(_L!M^W6%$64M*C]8(/1B4.\^A\
M;(WA2/)L.CERP>@G([U+8AYS*2^7]%P<3T]3-8WA\Z6RK(45*C:<NWU+@DN(
M*>6-B0TM6/95L:XS:K][@";>D\-18(F,%;?G0;@9\\DE1W\CDXJ3&%PYKOY&
M6"73R !,?0<CJ$%@[(?TBW:.Y:ROIL.# *8:/5Q9PC).[9 #>DOX=Q+&^H\U
M"Q XI3>1*1\^K(&=0U$ /5H/L=3-VD%!]=!;V'&R=E&5*TU2&<0\9;.TJ21;
M!5CBF(:4<XB0#OE >(.BEA8Q'POB/,R$Z+8X1Q!$&3#\F@5FD6BV2$:\%'_Y
M _O+V#2CGDL8JAB3M^FA[JAPM*;TET%\^%!T)ON*LV)SX_[82\H@!>&58,U[
ML>+E)<+V<Q#]&$ >.LKWT4A &Z!?2Z)^\M;'O=LR*G*Y+;.858X?QBJIL%E?
M-PLD**+2QV_(9SEY AO?]CX3RI_(-Y-([[?)X_+)0-N*RB;AZX(H/@;G@[XI
M#);1(8^[D\; GPD5T!+(N6D?VR<HO[Q5Y../U _%01=<'J:7^;&D\YA##0%&
MV")24TT<(#FU 50>G1[^2=32#!BAJC'+<5W]0 $;V53C<8CA<Z"E3((:: 9)
M24Y)J64_,8@8+ [&^J96"IW&B6N2O.$EAX6HLZNH$!5WMNI+9LA>6F8_@OJ;
M<'WJ=)YJ"P]/J!T[CX^HM?9T+E^ >I0O?#,+IMD,AY)<) A,8LHH,G)JT=.#
M*!R'KRB=WBR/X4Q@N?<_?SQZHDEJ2B4!JEI,0S5<N$ASNGC?;I+ "(VL.(^6
MC!Z:&:'"F;,Z;++D^=4$YBDICDBYDVB%T@SG]4SKFG=XB MH1JSL5I##"@'>
M2]7$T;1,4(A28(/UM9SPB^+G3+0A&6/*+X;'5RBHN^ZW#!3M#*'3R1$?/R;+
M.6OY&./(3U!R8M)O PM^H/:\7[G1N6=0J)=N^#SW\2TP#'E;TMEA$"Q^3H]
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
M#+5SH/>54O:P< GZ"W+Y/U!+ P04    " #@8G):*CQLBRP%  !["P  &0
M 'AL+W=O<FMS:&5E=',O<VAE970Q,BYX;6RM5EUOVS84_2N$NA4KX/@K:1,T
MB0$G:;L":U>TW?HP[(&2KB6B%*F25!3WU^]<4E;<U0WV,"".1)$\]]QS/\B+
MWKK/OB8*XJ[1QE]F=0CM\]G,%S4UTD]M2P8S&^L:&3!TU<RWCF09-S5ZMIS/
MG\T:J4RVNHC?WKG5A>V"5H;>.>&[II%N>T7:]I?9(MM]>*^J.O"'V>JBE15]
MH/!'^\YA-!M12M60\<H:X6ASF:T7SZ].>'U<\*>BWN^]"_8DM_8S#UZ7E]F<
M"9&F(C""Q..6KDEK!@*-+P-F-IKDC?OO._27T7?XDDM/UU9_4F6H+[.S3)2T
MD9T.[VW_*PW^/&6\PFH?_XL^K3TYS431^6";83,8-,JDI[P;=-C;<#;_P8;E
ML&$9>2=#D>6-#')UX6PO'*\&&K]$5^-ND%.&@_(A.,PJ[ NK=?&E4UY%A>Q&
MK!MRJI!&W+P2+PRY:BM>FV(J?GEK _DG%[, F[QS5@SX5PE_^0/\Q5*\L2;4
M'G EE=\"S$!V9+S<,;Y:/HAX0^!SO)B(Y7QY\@#>\:C <<0[_@'>5>?QQ7MQ
M;9M<&<E2>/'7.O?!(6?^/N1S0CPYC,AU]-RWLJ#+#(7BR=U2MGK\:/%L?OX
MWY.1[\E#Z/\Q8H=8_Q^XXG<CWLBM6)QQ !:G$]&3*&S3:@I4"MLY%-H(-!'Y
M5C0D(2@@I4 Z%Y^/T$J.XANF7$5NPI.+^?QG?H::@!)\D*94IF+L!HQ\+2'E
M@RGZ^-'9<CD__WX^$]:);'WSZD5<LCA_,@$7)BW-5O2U*FJA#"QJ327(]"8^
M6G*2?0(1P>TMX(?ASEE1*F2(RCM>4Y'AU8-VL>> A I;X;<^4.,GS &,AB&/
M*)$?%[ ="_?=8 *M+Z!/CEMD&!H"5D!>J,$[T."TW[<X$;4-H@=U"%L3=O&R
MPEK-<@Y&.Q2C$]J:Z@CK&DR;F.W12@L@H%>==-($@GO!QKB,YC'."7]HZ;SU
M%DSANM2B"TJSUZR<_W?T4[3YW1J*#V1+7UNMMTET' VY5Z623L%^KT(=N4-Z
M*SA\F$>H0@V.<9A3(1L"\F&0+=OX2(5%=*;B$Z7,=%@2=P<+S9%;U: ZSC2/
MTI\(NFMC+,"N=;;LB@"@#;+*5$GS'"IN5$ &.,@.PQMGFZC0]XK"FB,(U!&R
M'R80R"%9, -]L,O3+OU2\XE<JUVV 0:G B<^D[;?EA\C*.\[#NU]B3#SZU0W
M'V*=#?%#8)%WL?0@&#+ [W"GXI6U9:]TM/33XGAZC--&ZWAP.E0S\$<G]PH<
MQAD5Y[F"##*D@I"YIIW-RJ8J-@4YPWG*:;TSR_6X.#WW(A^:\ 1*%+J+E:\X
M&[VG!FAE/-S1. J*$3BL=8<,1 /O7,PNWG^/*Y%0*!5^(KX4 U-8'U!>7!*<
M<*.#0Z(ZTC%*]PX./I%6S7!2Q,PN,>)F(/F&(>PM.=1=:AQEUVITHSB!AH($
M,Z2GXNU0 4FA07G'J6K45YA4>RQ3L>'P1"(J5A8RL$RH1!'DG6@[UUI/2)N/
M0-O(6^MB ':J1!'#*%MG#BS12N:Q<E&SJ :FEOIBTH YT!U<C+'<=8&Q:4Q&
M<,*2)G7-QKJ@OB:1D)@"8[#KN$Y+\@42A?TT@F\6XFPJLM=H=Z:*'JZ9<:JU
MWP9F'*!4IZA_,Z9K-CUTI,[V+D0QF->Q2Q:V,R'=C<:OX\URG2Y4]\O3M?2-
M1'*@@VG:8.M\>OHT$RY=]=(@V#9>KZ ;9(FO''URO #S&PL'AP$;&._;JW\
M4$L#!!0    ( .!B<EH72BCF>Q$  %$X   9    >&PO=V]R:W-H965T<R]S
M:&5E=#$S+GAM;.U;6W,CM['^*RAEG9*J1A+OI/96I97MQ.?8R9:]<1Y2>0!G
M0!+9X8 &,)*87W_Z F!FR"$M.\FII"HONR1GT.A[?]V WCX9^]EME/+B>5M6
M[MW%QOO=Z]M;EV_45KH;LU,5/%D9NY4>OMKUK=M9)0M:M"UO1X/!['8K=77Q
M_BW]]M&^?VMJ7^I*?;3"U=NMM/L/JC1/[RZ&%_&'[_5ZX_&'V_=O=W*M?E#^
M3[N/%K[=)BJ%WJK*:5,)JU;O+NZ'KS],\'UZX4>MGESKLT!)EL9\QB_?%.\N
M!LB0*E7ND8*$_Q[5@RI+) 1L_!1H7J0M<6'[<Z3^-<D.LBRE4P^F_+,N_.;=
MQ>)"%&HEZ])_;YY^KX(\4Z27F]+1O^(IO#NX$'GMO-F&Q<#!5E?\OWP.>GC)
M@E%8,"*^>2/B\DOIY?NWUCP)BV\#-?Q HM)J8$Y7:)0?O(6G&M;Y]_=JK9UX
M,)6WH" AJT)\KTKI52'NG0.GN,]_JK73J,*WMQYVQ'6W>:#^@:F/3E ?CL1W
M0'KCQ%=5H8HN@5M@-?$[BOQ^&)VE^*7*;\1XF(G18#0Y0V^<Y!\3O?$)>A]J
M![\X5,%VJ2N)<F;'HF>DF?\QNO+B1U7YVBK!7H&N]9?[I2/]_;5/1<S I)\!
M#+K7;B=S]>X"HLHI^Z@NWO_V-\/9X,T9\29)O,DYZO^P>?]YU,4?*_&=M/E&
M#*=DO7$FGI0 72H+[X-B#1 0<FV5@J#WXO+B/GZ^N(*H\!O!^WU5*;O>BQ]
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
MAS?M\,.JSKTC01 X;.YS(W%[T*P ^4JA9\<?[.#P/Q:N_@)02P,$%     @
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
MJ6U2M'G>.$=MX\"9M+;4WLM[44F-7IE<-S&$T8@4<ZET X!,17BW+,G$<*9
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
M1 D DGC!$7^^0..9!WQ _S'[[/]02P,$%     @ X&)R6E3S\3]( P  I <
M !D   !X;"]W;W)K<VAE971S+W-H965T,C$N>&ULC57;;MLP#/T5PAN&#<AB
M6TG;M$L"]++;PX!BW=:'80^*S,1J9<F3Y*;Y^U&RXW1 &O0ED2SRG$.*I*9K
M8^]=B>CAL5+:S9+2^_HL39THL>)N:&K4=+(TMN*>MG:5NMHB+Z)3I5*69<=I
MQ:5.YM/X[=K.IZ;Q2FJ\MN":JN)V<X'*K&=)GFP_?)>KTH</Z7Q:\Q7>H/]9
M7UO:I3U*(2O43AH-%I>SY#P_NQ@'^VCP2^+:/5E#B&1AS'W8?"UF218$H4+A
M P*GOP>\1*4"$,GXVV$F/65P?+K>HG^*L5,L"^[PTJA;6?AREDP2*'#)&^6_
MF_47[.(Y"GC"*!=_8=W:,I: :)PW5>=,"BJIVW_^V.7AB<,D>\:!=0XLZFZ)
MHLHK[OE\:LT:;+ FM+"(H49O$B=UN)0;;^E4DI^?7UM3-,+#FEO+M=],4T^H
MX2P5'<)%B\">0<@9?#/:EPX^Z@*+_P%2DM-K8EM-%^P@XA6*(8SR ;",C0_@
MC?H81Q%O] S>YX:'V! =_#Y?.&^I%/[L"[2%&>^'">UQYFHN<)90_3NT#YC,
MW[S*C[,/!T2.>Y'C0^@ONHB#"/OU;6%O.UBX1>@.@6M YR65-H)9@FDLX&-M
M7&,1O.F5@%!<5BX6?P'420OC2ZI-:U%[ BF@E%2G5@JNH.[X'%>4[H)*,EKL
ML(SS#J2.[L40?I1(Y7Q'WG38B>@P'' 2XHPB=TF,G+CQ_0:Y[>&&(1SN'#H'
MGI!X@7\;+GHDB\)8*LH=OY)\(54@J]%*4P31:A,U\N*.^BWB]!ERH%$0.LVK
M5NL>(!GC44W@D6'."-O0DE))LXN20!F+VH0P5<WU1NH5I4%38)+R0Y8+KK@6
M%&KH8C>$RY+K%0;4&$1/N56U1ANE+8VBF>K.=I?;60R 6@BK!=IM&S%X#?GH
M9##)LITUY?E!QNE*PQT:+2GE,=UL<CP8G>9P&2^+<ME+V%X<O&43-LA/\W<O
M(!]!/F:#[&741R3R='*8^N0XV+R$>ASB9J-(OJ])TR>3LT*[BN^#H^MIM&^'
M:/^U?X+.V\F[,V_?KV_<KJ1VH'!)KMGPY"@!V[X)[<:;.LYA:A^:ZG%9TC.*
M-AC0^=(8O]T$@OYAGO\#4$L#!!0    ( .!B<EH0XY@&B H   XA   9
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
MP70<,7XJ E 96;*?ZA+WQE-'N<DN7E5:H0! C_2!/THH\6CACCA".@&TNS!
M!9'1@20_\=+%,?&=$%MXK&';<L=XGC?IX7S3.,2'(5\"DSZ->,)>=6+FUAN[
M&S9ADV3>W1O,^@7%;ET!CT9X"'EIU](]D!#I&YE!Q/1%"6@1V2%-H2QKI[#7
MM2Z1.!"NE&Z>FQJ"M>%-##E+U[Q<(1,,'JNA8(H-6#1 _T U!CPD;_3,YV*K
MC5E(SE*!#T J XE+[A>/J:@L!M96HBDURU0! DE 79%SMU-I<&F7&*2^3$4'
M O=1U#4G2WF)'!>"Y<) D*ZYDW#) 4ZA&7H0&.%Y+?;6 #KY#A"C#5RWHQL>
M9%8G3EE34*+-W'(ML"/#_7S#94XZ0@O'EK6M/3AQ2/)3 I\(]A;&*3WC((YF
M03R9>?2&7(EG?<P.V?M:HQ3(82<X)(3C\L(* >C:N(VTQ< [3-3P$#R3Q(?N
M4\3$UP-ZC_>#UVC8G[F&0'.")(=0>01F_ERH[,$DJ$K5N44V,'L4!5$4=3#.
M@6L'Y]#WK=.K6N,5P1#?@G*F9U5O&Q=99-9.GK:O'4(WZ :)@SQ)@K:Q\* X
M=X9M$+[9+QXKB>("#/K06&I5, FF$<NEBR ?[[KKHB%0^NU0W.")O?_?L*IG
M]3\7J_8^^9\"U1,H.(4$U* UV0X9M4^HQBH0MA#"8%TH\NBBU4J+E><7)^,G
MN=#+ V@ESJ)P.NW8 :BUB4<&,WO[4Z9QBB52$6;BK,Z)T?WH[SYL7Z;7\-MZ
M'?/(<[J.I]_2E7P._9*P6P%I!JK/9AW5$5S.XA!:X)XY4J$M5(\N'JGE$BAY
M/&HAZ]\PE]TJ9#\:[EG]UTK7WEJGZA9B54+#!MCK,!*/Q* JV\1!YO$!Q/9,
MC?3%H]"I!+QY::2?+'4=2MW^RQUAX"R'$GTKC1P^ ZBJ/%=;\Z8_-GWTK'YI
MK?_!,X4"@S,?D&PO;MN@^[@?98)#?: 43:!;CL$;9PRR+*;>,D[>PFT<A<,A
M_@]'<S8)IY%/'GB23*%QB-E??6HT&>SRE A-6^DR]LJ[XC4MB!M.9PR280S;
MWF%PY-1P9VBHI9!(]=4\CJ!7P6VG1$O"\>AY#4<01-,Q!-+DB(;#<.X4C$=/
M% R&HUDPF8T:+3"DCQ&/8=B8!T".R"1C^(?31PP[?W<%A[+O$=LK0=T_9MIQ
M,2?Q.)BC%5&@,4F13!/HV.;80=1H2=Z8!]-*-_@Y/B<(X'E:Y]S-_ <LFS3P
MQ<M2CO(%= *AI^X:IYS#K/LYA88 <V9?AC Y"I6)G,!7N/E'["M-6V+Z)=V#
M)Y1_0V\Y+72EV9'3>'""DA6\Y"O1S%H%?Q MJG$ D,)3I"KO&U9<Z(X+05%'
M3I95C3W7AT;_C<+ZFF,.8GJU5LI\I^&+'\"@!O;=Y2#NTG=E%7=UO*H7N4SS
M'59W3&%Z54H/JRV1UOA0+81#&H#7@KC6IL$9(P&473DIA%VK[-"T?4(]@1O$
M!FR6*FN:3CHIP]Z(^B9HL+#9Q2J6*>I*VE.B$@+0&)PLUQ)<!AZ&30V*82O
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
MR)9H+76GO::<5JR%'(VVN'5@F:K&7;)W806"J,T24AP*%/(I_%EPLVO9ZS_
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
MUYR?&.I%VTA9_U*7X;@<)B<7>I9R.6:YW=A'"TJY[2>EOT!BKM AS$!!F%"
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
M"D)M)T$4[!PW?%VA<] \:]@:;@'OFH6V%AU82EZ#-%Q)HF$U"2ZCBUGJXGW
M3PY;L[<G3LE2J7MG7)63('0)@8 "'0.SRP9F((0CLFG\[CF#X4H'W-_OV+]Z
M[5;+DAF8*?&+EUA-@O. E+!BK< ;M?T&O9Z1XRN4,/Y+MEUL:F\L6H.J[L'6
MKKGL5O;0UV$/$(U? <0]('X)2%\!)#T@\4*[S+RL.4.69UIMB7;1ELUM?&T\
MVJKATOW%6]3VE%L<Y@OV2#:&+$#[%R$+('-N"J%,JX&<D+O;.3EZ?YQ1M)<Y
M""UZXFE''+]"',7D6DFL#/DB2RB?$U";Y9!JO$MU&K_).(?BE"311Q*'<7H@
MH=G?PY,WTDF&RB6>+_F7RAVJ5T>7'J9SW7IA&E; )+#M:$!O(,@_O(O&X>=#
M6O\3V3/EZ: \?8L]_V&'RY4L5 WDZ+LRYIA<(FJ^;)$M!1!49,$T2#Q4A(YY
MY)G=A-GD)^G9V/Z1\XQN]@4>"AQ].H_"I\ N>;KW^&O0:S\3#"E4*[%[7(.W
M&SM3.W9\>[[PVW%TZ;N0/M%TL^R:Z367A@A86<KP],RFI;OYT!FH&M]B2X6V
M8?VVLB,5M NPYRNE<&>X"X8AG?\!4$L#!!0    ( .!B<EHL=6B^0P(  (H&
M   9    >&PO=V]R:W-H965T<R]S:&5E=#,P+GAM;)V56V^;,!2 _XK%I#VU
MX9;+E@%2TFY:'CI%:;<].W  J\9FM@GMOZ]M",NFA$IY =N<\_D[1ARBEHMG
M60(H]%)1)F.G5*I>NJY,2ZBPG/ :F'Z2<U%AI:>B<&4M &<VJ:)NX'ESM\*$
M.4EDU[8BB7BC*&&P%4@V587%ZQHH;V/'=XX+.U*4RBRX253C AY!_:RW0L_<
M@9*1"I@DG"$!>>RL_.5Z8>)MP"\"K3P9(U/)GO-G,]EDL>,9(:"0*D/ ^G:
M.Z#4@+3&GY[I#%N:Q-/QD?[-UJYKV6,)=YS^)IDJ8^>3@S+(<4/5CK??H:]G
M9G@II])>4=O%AI\=E#92\:I/U@858=T=O_3G<)*@.><3@CXAL-[=1M;R'BN<
M1(*W2)AH33,#6ZK-UG*$F9?RJ(1^2G2>2C;Z>#,0Z$G@C+ "K83 K !][$I&
MKM([F#@W[6GKCA9<H(7H@3-52O2599#]F^]JLT$O..JM@U'@/:03%/HW*/""
MZ0@O',H-+2^\P#M7Y@W:OZ(-R\B!9 VFYZKNH-/S4//=+&6-4X@=_6%($ =P
MDH\?_+GW941Y.BA/Q^C)KJ& ?&\_N_5/M=$JX[7Z_Y [W7%@CJF$$;'9(#8;
MY?S@[/8*N7'H>W+S06Y^U:D]@=!?$;[@-LY\SVTQN"VN/KAQOW'N13_WI#]4
M( K;!25*><-4URJ&U:'1KKK^\C>\Z](/6!2$240AUZG>9*%?I^@Z7S=1O+;=
M9L^5[EUV6.J?!0@3H)_GG*OCQ&PP_'Z2-U!+ P04    " #@8G):/*4S.!$"
M  #=!   &0   'AL+W=O<FMS:&5E=',O<VAE970S,2YX;6RE5-N.TS 0_17+
M2#RA.DDOH))$:G=!K,1*U2Z7!\2#&T\3:WT)MK-9_A[;24-!W0J)E]ACSSES
MCN-QWFOS8!L AYZD4+; C7/MFA!;-2"IG>D6E-\Y:".I\Z&IB6T-4!9!4I L
M259$4JYPF<>UG2ESW3G!%>P,LIV4U/S<@M!]@5-\7+CC=>/" BGSEM9P#^YS
MNS,^(A,+XQ*4Y5HA X<";]+U=A'R8\(7#KT]F:/@9*_U0PAN6(&3( @$5"XP
M4#\\PA4($8B\C!\C)YY*!N#I_,C^/GKW7O;4PI467SES38'?8,3@0#OA[G3_
M 48_R\!7:6'C%_5#[G*.4=59I^4(]@HD5\-(G\9S. &DJV< V0C(HNZA4%1Y
M31TM<Z-[9$*V9PN3:#6BO3BNPD^Y=\;O<H]SY8T_7@8&?3*4<56CG1:\XF 1
M50SMC*Z =09L3IPO%B"D&HFW W'V#'&:H5NM7&/1.\6 _4E O,I):G:4NLTN
M,EY#-4/S]!7*DFQQ@6\^69]'OOG_64??/GH@NG$@[?=SYS!469RO$IIJ;5M:
M08%]UU@PCX#+ER_25?+V@H?%Y&%QB?V?/6R8;MW??V&0?[F ,QV<TTE.KIP$
M4\?&LJC2G7+#[9M6I][=#%?V=_K0^+?4U%Q9).#@H<GL]1(C,S33$#C=Q@N\
MU\ZW0YPV_OT!$Q+\_D%K=PQ"@>E%*W\!4$L#!!0    ( .!B<EIQT?D_Y0H
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
MN?;5#=]&4B\36ZRJ8EDLLJH%9"WJKFJ+:I5LZ[)8%,8F3]_+3\^^>]["UKC
M\X5L\YJWF1W89CI+?JZK=FV3'ZK<Y/$"SP%F!_A, 7\].[KB&[,8)Z?3-)E-
M9F='UCMUB#BE]4X/K'?E3ZSG3/[[:F[;!@CG?X9.S.N=#:^'W/2-W68+\_T)
ML(LUS:TY>?6G_YA>3+X] NV9@_;LV.JOWC=%M2BV)0 )-W==5Q9@SC,F]"I/
M7F>VH(_>X]Y52Y\,'>)?L$WRZ]HDRZ+*X-&L3"S\U0 ?MS999[<FF1M3)8"2
M;=:8/"DJHK4FAV\;H/UV'=(>/%OE69/;Q(* FN^2%I9^ZY8.[NS&??-U#?^D
M2=TD;Z]N7H\)&OP)E[#)RE2FR<IRA]N8;0L@A+3NSDL+_'AU]3Y-VCH!*=0U
MX:$6=947>-@41),%"4!8 %G9$ K@<43/(K/K9 F"SR9P6'P(T-4"*F![0$#=
MP/;CY(-9FL; \2UNA7LFA;4=0*8'1N@!4?"S!2#JNJWJUO":\(3[RB ZKNN<
MF)J!A4-=W5R/D]]-DN4U'1\?WX;7UYA_=$4C5P9R/ZGJ"D!OF[HL<>VB:@%>
M"Q_*-PE06#9Y.9W$1#).?@-V;_3#-#%94\$:%@$I:VOQ%&W;%/..0.'#'-P/
M#ZQX2S*;  FUB'=\:.'VA<_<-G@+@*PD@]N';\.'\,7-MJ[@</@D7'>],0B-
M^02*SAJF%R2)S3:K=KA_M/(@7<,J99?#,EVCU,1;M[(6_4$ A2> <@P^E=RM
MB\4ZN3/,&5D2'MOOI A V&H;K>#WO5O#<[M1?5<!E+:;VR(O0+"GR=7&-"C4
MDS<_@O US6J7O*M =CX]N7KSXP\GS]+D5[.H@2^2Z[^\3V[JLA,*QF\Q'6?)
M'S4 D=S"SL '\9I_!<W[=]"\:?+33]=,86]^_.O?4W\^W"<!\( :L^1\.I[\
M9W"D*ZO7YTZ.UPJ PMYE";KN#U@R-XL"#0'"&CRX!:6."*6MB"XV&2 "Z1 W
M&Y JN$ETBB1;-88ND._<DQFS&OR3%[=%WL$-=$C%)5&#813:'3#R!ABG_@-
MH6<8EEO4IG/3WJ&8(V 0@P5\)=Y=#LE['Z!X>C0'D4$,0L?'H^8&/@9; !D/
M#)(\ ::%*ZSJ3;%(D  :NRZVO/+^WT&X@& J%UU)!"TR)ML@D<+.M[ O_[GS
M--R#3V#'0YL,+M@6+3#.#_CC/SKX#.\.B-KM M>^ Y8<M?4(N0BQMBS:YR@
M2,"X16"SK$4 E;/E?H?!<&@"L;L0AAXZ;P EKIUMMV7!TL9A\NCR=HU8%ZH(
M8&<,VPP$R,:TZSJORQI( [;H;']]P0L(_O@^ >3L-BO*;%X:UA?'A:"GFU\J
MXOMY5A*1DPF8'GP,Q";+>#O ";+FG_[CY6SZXELK5("LX>@Z3;8E$ 32,:,#
M 5_"XJ,V^R1(L0DH3B2:'9\D.NF8F8'E4RSI6"249@6<AE?M[M!![[@K(XR!
M[6<V<R! M?_&(*P49.)%.1'>/U,QR_.^V,UKT@X/DKX)' 2>A)^=P XMYJ):
MEAUJ<1!\2\1!2KPJTA\U!Q ZR1'6 J YVYW0S?B(17CN+,+SHZ;:;Y;NY ?;
M%N"K&#MD[#UN!:)N-M38,( /#Z@_1!UZB'BDO@WG;:HAXTNXZK>JP-]N6MH8
M&9\UC)H8%N1[!5XBT21PR";["#ATD)*2 IMILV6N(C&2+9>H)7!Y;S1LG"Z&
M[QM1TV61S8N2=:J(W 4P>,=DCF0!!\&=#SW#NY!L$RT_B"B58T/@- :XL1,
MQ!BQ2=XUB$/_$&$44 -$ _9>B\I)#5# >(FPP[&;9-G4&WB,S 5%TS$RNW!D
M=G&42#Z810E8<"8E&_\%T/;?0<+?ZVY\M<63:].T&7(Z?8[JQ6'3NQF-6U 8
MT)G@BYTW"Q9=T^#MTB*A*4P"WII@&88+MT"[,C%,8G457^N@2W ,^R\<]E\<
M11 8UZCH/#]>@_5=M,F'PGX<0O?GKQ9X644%8KS;B.X 6@?J1+KJR%]9A(O0
MD1>\2H.K"+[QEC994Y04:"#EX/PC9/#;K'0,XNQEP+J!3T QDK^"(2:Z<=1Z
M]*2H/A) \ZSZZ!Y-1<(C7Q8;$AX[@'IAQ-UY:W*40Z!'X"  ZCMT[TB+7M<-
MW"&=Q6G#IR=OW[R[/GFFX@NT.C]6N,?* D2?V -B20%&]7L QI[&HJ/"#Z<"
M*D,G\#V9G4_2R622+!E00!OM97+>"100JI8MJ-U/Q-KPA2=GZ>7Y67IZ>4Y+
M/YG" I?IY/(L57NYN(7O$2J)05#QH9QI"M1:.:EM<<D G[9;K/N^#%SXW(#I
M="MV&JA!5'&R4"TV#ZX3*L:0'  I>'.$*-2CH,Z!BSC,9<B'\88*K#8%LR 4
MC<C!B!]D5 N6..)K&+/]OYZ&6X+W=V3/V7^J#!^@1&=N'3!$V%\*-[#[.YQ]
MP0ZGQ\3(2R=&7AYG?&5 ^N$'SX!#,N0SET(Z(^Y'BP<=N76Q6@.=E@5\)X^$
M"EL,P-A-L0*I@SX?F*5H2WB-"JY:LN$((H8.T,X$6PS$?]<LUIF0WMP<EBV>
M\/=DQT)4R3(2>44K)CHZDZ)9F%?K!2P!'Q%CBEA1'8*B(A('D2% %L-.;M^:
MWCY63(V.%@:J+\P=NV) .:CEO U$I_DZS#B,K2-4=NFH[/(H:5PI<7]PQ#U$
M7X]>!#V?_\H 2^!H"U.0NZD!K:N;W^"/TXO1%/[NU=@[3W&I:KJ?6-X]_;7>
M@KMQ.KMXEHR3JP&F1-22(9>KL2=B/C!+49AB*("48HEI![;"ZJZE."::;DIV
MHBK*LKXC9B?;A&%2&6R=X1:X^6M0IC4:QF4@NT'HK'!Q$2H>[%1"*^B -.@2
M[9Q24U($8+<9^"HNH(FKJ*)C1VS'$8PJ!XF& 25QI^84@"#>]4CXLX>:-+UP
MA5O=HC;*+/ .8;7"4-46K2;Z';!@@!+9<EIVY)L*.B)GVB.FAS,V#@P0<>>,
MFA#]0_)6[M.@W%XZ]7+_!35F6=)]QZ?O[=U\YOZL1]"_1]<SQ"DH_3D]Z Z-
MBHU=]7MTRC!MYQ@%R\$W%:HME.!!L#8KI/A5AH**5S^"$1+((.]!AJ'!/4Y^
MZ=">KF\I=#?P0&X62 TLJIY,SR[2R72BYR L'-#Q*?OSC3QY.9FE9Z>S!SP)
M$B'O7-3\KL&04%[?T66I&L"SHL+R*+(N8M <0-<#=@;D'[,#T_O1"Q;!D]GE
M>7H)1V4;[^PRO;R<]2R\(Z)[.O%IP<E1N8OQE I$S6XPU_? 9Y,/V1TJ<Y!3
M68E6>=U\I.A,4X,,E"0)*,C"K@%CJ[K..?:$#Q>2X(BE+F 'D$=.N6U3M)'"
M8*B$,F]!>*T,?44"+!26K@R&P;*R^">1/3(J>Q;L3Z-0=6K7@;'#R)W&VU$
M$\B4+UAPL"M_#K_5<UN7!N.+[CF6V8'C$TGOS@*(=( [ [0&__I0KI-N*@^%
M[?,.5$IN-N0ET7]ML2BV]%5:#TBLPA-0ME&<-?9%-1Y06#U@R."DL7@;"_K_
MJ/:?!IGEZ3W)0W1^6] 8[TO**0/(:"!N450.DM71]88SJD<W2?RG6_>I<9]R
M.@G3!$Q@B(,Q.H7PQX)E.(:B48#EA&(-Q6!2&+/](P112"RI;S6TY^ZOLV;9
ME6 .+EU<B")(ZI^"\PAT*E>#%N[O1J^G9M%Y!'HDPFV-V42R6$$<%@U]@&+8
M(##H-K5D+\-%PT[L*.,QD'(71;/H-JB:V Q&!M (/)D-6=-0QH,8)8*?'6HT
M-<'BAA,2VRP0 <19Y*7)*@X%M\;VUD#T'R.TF2>TV3WR!@ZQ(CE\14L/$M<7
MK1%#YFL*ID>+ %Z]\[<"9_^IKE:CGP 3^3$X'[UB>7#%&&I?6S ]GO5_K21R
M358>1W8&8?V,=< .W\_X8T9FP=;00/*?K'MG E%T%7#@Z5+I:2'9Z+WP+$:&
M.6/L_&[XJF5[5WU,RA%Y[O @LU05>:_^)@IV -\Q?0P1)7! W3B:8@O:_]J#
M&+-2H/D7F63!417>%64I@:\=Q[O50#D<]R8+3#6B2BL/FGT$ME+)+DL6*89\
M# X4?)O<$ <,0(:[4,K<F5+](VO*&I,IZJ^2N\P'%Z.?72D355"0F)3LJRA#
MO#[,ZK&,TX@.!0I-1>1%*9UL@2Z?%\L2DZ74OL6/ BV,H7]R[!J*F*/--D0P
M1))X0W!OMA8M$GVK,9Q?#5#+F2%'ZRF)<,J6^0R#ADS$A<#,]](T>$_@IDD,
MEHU7"Q ;]A- 88TB"/69/BIH$RIM\F8Z:CY4ID6 KO D8RSI& ;O,_?NZ]V0
M=ZIA_G3&$?EW1!W.R0*^+4!I"K7K$3B( M"0:2@A1&!(,'A<H)G2)WP(2N.C
MR<4$2(0A 9P]SCYX70_&1\1OA(T-^$$4X"4QU,_U<*IU&#5L">Y"'1];(<$!
M>"_R6UD>DF<7%.-0*H\M03;'P:S-\7,-"=!N.4H72S'_6Z/)*MTX*I=QR:]>
M+N0P3>WEXH;HGVF_3TG6Q1OZB]0 &)X1M"7*QNCS(;"CI'I@FA-B538!?B7J
M I*M+24N][.+!KA8BQ>1&-:(;X.7[K9(/8$@E]">1C5]S"25-#2E-Z@J@;U_
MH'7P2$7LXI&[:HO>XZ+52 N)N4S\@52I7U-5J&3"U*%/&I+V4^+"<)$Z]$@-
M$A<-I$F0L12:INM7.I8+6U7%/WWV=X_<78Z>*#[_HY-J!-TOKH(!/@5+VF:L
M$(AU$9DU&O$:HAI2[+R.D"_1#V@GI*"C"?FIS\A/CR?4?Q0M/F@Z/>S1Q/U0
M6*$^,D,TRQS)IIB1P$YD3U6/CO1WV%S1*R1R0=NE9R>,D\#T;)$\L$H")4,
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
ML+>L?9X][Z\9Z>6W:@UJ&HH>O<%=+]^+%@X"IN9B&S@Z[XYM;K8M:H&$+*-
M:X'"/,9)GB&:9CC/X!]3FN 0FH[B*(J J.R(3I:G&&AK>];G^J[NO^%=#?SM
M[+ABJN2H&UUTEB<1IEGX^2#/EYT_(1]QJC8ACG."XR@]B#G$141Q <1^?2K]
MN=HTB75(KX&9_>91X.8U\MEO6E<;(>5GF)DHRJ!C<EB=Y0 :IUYX5D"CAIE?
MAHGOL 2][S1Z[[$!5PROIQ!M?\T,#T4'DFCOQMP!Q] 74 SHQ#>'#Q*E.8X2
M?W3 JPJG47&ZADD68_")TCC&&013$ H32E$>)SA*3X0BM9J?.V[J4R<!(3G.
M8$Z+ M#CZ'0HVW'*,TR@'S[N /AUF/L9*-"QNVRP\WZ!N9DWKS2+FM.M?<IL
MI=N'X*1]_[RHMZ_(.V;F LYSR6=@2BZR)$"F?9FU'TXOF]?05#L8TF:Y@,<L
M-UX!]F=:N_[#.]@^C\?_ U!+ P04    " #@8G):\X4"](T"  ![!0  &0
M 'AL+W=O<FMS:&5E=',O<VAE970S-RYX;6R%E,MNVS 017]EH!9%"RC6VX_4
M%A W#9I%@"!IFT71!2V-+2(4J9)TE/Q]AY*MN(#C;JPA.7-XA^;EO%7ZT52(
M%IYK(<W"JZQMSH/ %!76S(Q4@Y)6UDK7S-)0;P+3:&1E5U2+( [#<5 S+KU\
MWLW=ZGRNME9PB;<:S+:NF7Y9HE#MPHN\_<0=WU36303YO&$;O$?[H[G5- H&
M2LEKE(8K"1K7"^\B.E^F+K]+^,FQ-0<QN$Y62CVZP76Y\$(G" 46UA$8?9[P
M"PKA0"3CSX[I#5NZPL-X3[_J>J=>5LS@%R4>>&FKA3?UH,0UVPI[I]ION.LG
M<[Q""=/]0MOG)K$'Q=985>^*24'-9?]ES[MS."B8AF\4Q+N"N-/=;]2IO&26
MY7.M6M NFV@NZ%KMJDD<E^Y/N;>:5CG5V?Q:/J&T2K_ Q^]L)=!\F@>6N&XU
M*':,9<^(WV!$,=PH:2L#7V6)Y;^ @ 0-JN*]JF5\DGB)Q0B2R(<XC-,3O&3H
M,NEXR7^[O.2F$,IL-<*OBY6QFJ[%[V,M]\#T.-!9Y=PTK,"%1UXPJ)_0RS^\
MB\;AYQ-RTT%N>HJ>W_<. ;6&0?DQC2<IQS6^G@2S0,>,]0KU<-3 9.F"! I%
MOC,62R?"5@AK)<C 7&Y&?6:7=<=:NHP6-6?"^"#I$9GZ69SYT\F,HFF8^&&6
MP@,9\XS+LT:K HV!61+ZD_$,)C.7'<,5EYRN< D;I<H=)YI,_"2;P"R+_&F:
MP'N8^>,D]<,PHS@*_2Q+_#2:P;'S#@X,4:/>=+8WU-16VMX;P^SPLESTAGI-
M[Y^E&Z8W7!H0N*;2<#3)/-"]U?N!54UGKY6R9-8NK.AU1.T2:'VME-T/W ;#
M>YO_!5!+ P04    " #@8G):OJYYC-H$  #!"@  &0   'AL+W=O<FMS:&5E
M=',O<VAE970S."YX;6R-5EMOVS84_BL';E$D %N+%$6):6+ 29,MP%H$;;H]
M#'N@)=H6*HD>2<?)?OT.*5MQ%]?=@VWR?.=^,\\WQGYS2ZT]/+9-YRY&2^]7
M9^.Q*Y>Z5>Z=6>D.D;FQK?)XM8NQ6UFMJBC4-F.6)&+<JKH;3<XC[<Y.SLW:
M-W6G[RRX==LJ^W2I&[.Y&-'1CO"Y7BQ]((PGYRNUT%^T_[JZLW@;#UJJNM6=
MJTT'5L\O1E-Z=ID%_LCP>ZTW;N\,(9*9,=_"Y;:Z&"7!(=WHT@<-"G\>])5N
MFJ (W?A[JW,TF R"^^>=]IL8.\8R4TY?F>:/NO++BU$Q@DK/U;KQG\WF5[V-
M)SI8FL;%;]CTO"(=0;EVWK1;8?2@K;O^5SUN\[ G4"0_$&!; 1;][@U%+S\H
MKR;GUFS !F[4%@XQU"B-SM5=*,H7;Q&M4<Y/;CNOND4]:S0HY[1WH+H*FEK-
MZJ;VM79@_%);\$O5P<*8:E,W#9S<*Y1PI^=CCSX$3>-R:^^RM\=^8(\R^&@Z
MOW1PW56Z^E[!&)T?(F"[""[948T?=/D.4DJ )8P?T9<.&4FCOO3G&9G&C!#X
MA,-Q<OU8-NNJ[A;PRS8-I_#G=.:\Q<[ZZU F>CO\L)TP;6=NI4I],<)Q<MH^
MZ-'DS2LJDO='HN!#%/R8]LD7G-YJC3&8.=S47>WUV]^P_2MX$=XASX_J/NSY
MSQM)><!:Z7:&[;2K5V3"0PJEP4%W/OB+#0=ST^"^P&R?'1#Z+R6%E]:O#"J;
MEN6Z73?*8^#3UEA?_Z/B,@@5_3G'G375NO10:J3/ZS(B#EY#GN>$BPQ/)WDB
M29%EIW@6.1$T^1X664%$+@),:4'R0L(=&NO0PZ(HB$3^DZS@A,OT%-($#S1_
M1K@4I$AR1"0C-$DQ\@?<HRMTUNMRV9G&+)Z \80D";)3E,/#*60L$IZ!G/6
MB QP;U6%RQT7/S"T( 6\>54PRM[OKH>IMQVLK"FU<_#YC6I7[S\@DA*9"C3!
M*4DE/P7*&,DXVT.2E(A"(B(2PG@.-^K!V+! 0M'C^.R*EH9,8.).TARSFJ(,
M)X*)?;H@-- +DB+]*BY(;(1!T6M@A+&,4&P*3#^3F &&U:'H2T82681"D!SS
M(3(9."A-2"YIX!""DD($#HY9%TB.)42%$B-(8A$Q-IH26LC(E6;X26G4@Q4K
ML$:LY^*I0#_D?F/N9N$)OG;SEREXAH.\",JB+VB?R@S#E4$SQ^QB8E[R)%1B
MT-%Z)B5)N( C:R0;UDCVO]?(M?-U&P?E9NW75G\_+]>/^$YP^M V.6KB\#:9
M+A96+] 8S'M;:M^6>8C_2!HZ_>AACGL-GK2R#FH'>O#2&YB%=;#=)>X,/IGN
M[9!OJ_NIKX<*A:5Q!+PW7C5AW82NH$*2/.-AV$.R62@(Q_D.LY-@9V)=L-<Y
M3@-V;I$"PP'.61[ ',$\C@;%_46E1!!KEV8!+("EA.4%8CEA21&'AA=1JX0,
M%XAXAC@C4G*XQS]HK>8>DT(IR7(*,LE)SC.0V!0I%:$GN""9D+'[,XKC7&2Q
MAQ*<4HYQ'.J5\=ZS H=L$1]/#CMVW?G^A3%0A_?9M'^6/+/WC[N/RBYJ7)V-
MGJ-H\B['GK#]@ZF_>+.*CY29\3C1\;C$-Z:V@0'QN3%^=PD&AE?KY%]02P,$
M%     @ X&)R6MM+%L0\ P  ^@8  !D   !X;"]W;W)K<VAE971S+W-H965T
M,SDN>&ULA55M;]LV$/XK!ZT8DD&+).K%=F8;2-(4&] ,1K-N'X9]H*631902
M59**X_WZ'BE;2X#4^R+>D?<\?(Y'GI9[I;^8!M'"<RL[LPH::_OK*#)E@RTW
M5ZK'CE9JI5MNR=6[R/0:>>5!K8Q8'!=1RT47K)=^;J/72S58*3K<:#!#VW)]
MN$6I]JL@"4X3G\2NL6XB6B][OL-'M)_[C28OFE@JT6)GA.I 8[T*;I+KV\S%
M^X _!>[-"QM<)ENEOCCGMVH5Q$X02BRM8^ T/.$=2NF(2,;7(V<P;>F +^T3
M^P>?.^6RY0;OE/Q+5+99!?, *JSY(.TGM?\5C_GDCJ]4TO@O[,?8C'8L!V-5
M>P23WXIN'/GS\1Q> .;Q=P#L"&!>][B15_F>6[Y>:K4'[:*)S1D^58\F<:)S
M17FTFE8%X>QZHZF^VAY"Z"7O+/"N OPZB)X.WL+%'WPKT5PN(TM[.414'GEO
M1U[V'=Z$P8/J;&/@OJNP>DT0D<A)*3LIO65G&=]C>05I$@*+67:&+YTR3SU?
M^K^9;Z;,[Z?,_[[9&JOISOSS5NXC<_8VLWM'UZ;G):X">B@&]1,&ZQ]_2(KX
MES.ZLTEW=HY]_3@^'U UG$WA+=WGF<_?!6Z!2H#M%O54!A]"1@JEHG=J+%9.
MEVT0:B7IP8MN=PWWQ@IZ/[3VV6 ]R!'J8?<=ZMT!S(&@K8$DAI\AR>& 7!MX
M!RR<)W'(4O;*?N!E0]+I#%XKS D\.V*3,%_,PSR=DS7+,O(*^##H3MA!H\?5
MXMG9!D[;,9:%\V(.+&'AHDCA3K7]8"E;HVJ[YP1+:8-3=+(@044^C1^1>D.C
M9 6B[;5Z0B?)P$^PB(MPEBX@*VB<+R G+PU9QLC*V"S,,@<VAKAY60[M(/U1
M54AWIQ1\[%VDE[=*6_'O.'&1AHM%'K*XN(2++&2%EWX)OU,;[\^6\9T[D'0>
MQFGA[:1@83Z;D5 G@K*E^N%4L&$LF!0UN@5.$1:4!NFR!3J<]JT;';WH1RT5
MV'==0W=DZ.S8FJ;9J;'?C/WLO_#QK_# ]4YTAC:L"1I?S?( ]-AI1\>JWG>W
MK;+4*[W9T,\)M0N@]5HI>W+<!M/O;OT-4$L#!!0    ( .!B<EI!!8B.#@,
M  4'   9    >&PO=V]R:W-H965T<R]S:&5E=#0P+GAM;(55VV[;.!#]E8&Z
M*!) &]UE)[4-V,E>\E @:-KN0]$'6AI+W%*B2E)U_?<[I"RMNW6\@&$-R3F'
M9\B9X6(OU1==(QKXWHA6+[W:F.XN"'118\/TC>RPI96=5 TS-%15H#N%K'2@
M1@1Q&.9!PWCKK19N[DFM%K(W@K?XI$#W3</488-"[I=>Y(T3[WA5&SL1K!8=
MJ_ 9S8?N2=$HF%A*WF"KN6Q!X6[IK:.[36K]G<-'CGM]8H.-9"OE%SMX+)=>
M: 6AP,)8!D:?;WB/0E@BDO'UR.E-6UK@J3VR_^YBIUBV3..]%'_QTM1+;^Y!
MB3O6"_-.[O_$8SR9Y2NDT.X?]H-OEGA0]-K(Y@@F!0UOAR_[?CR'$\ \? $0
M'P&QTSULY%0^,,-6"R7WH*PWL5G#A>K0)(ZW]E*>C:)53CBS^D/*<L^%@*OW
M;"M07R\"0[1V,2B.%)N!(GZ!(HKAK6Q-K>&WML3R1X* ]$RBXE'4)K[(^(#%
M#221#W$8IQ?XDBG(Q/$E_Q<D:TMX; UK*T[!PEIK-!H>N"Z$U+U"^+3>:J,H
M53Z?.X=AE_3\+K9\[G3'"EQZ5!\:U3?T5J]?17GXYD(,Z11#>HE]]4SE6/8D
M6NY@C.><QHLLYS7>UW0@J(&W8&J$@BEUX&T%K)%]:^R&U7B VP-58B>5L<D"
M&BNJ3P-EKZR_!1^0*0UH$P'H&K'9HIJNTIT_&0GLF0;Z[:2@KJ#OX$G)LB_H
M+IY)$B_0YA*JZC NV )^+PT3L&&"M04",S_QQ_ +I*$_GX5DO'XUCZ/X#5FQ
MG^29'\]S9Z=A[D=9#H]-Q[AR\D?7E[[KXFO/-7<BQKDDF?EQ/O]I?$%><BIO
M]/^OO%F:^"F=U 5Y5W%$V-OL^L0ZE?@KL/)OZAP_@*^BV:V?Y<GUF9D+FM-3
MS5$V\V=AYG1&Z<R_O8T&_6E.1#F<R_+@I#4U=*.N 6LH;&8-76J:G7K\>FAM
M_[H/#\1;IBK>:A"X(VAX,\L\4$/3'09&=J[1;:6AMNG,FMXI5-:!UG=2FG%@
M-YA>OM4_4$L#!!0    ( .!B<EK@6I-SD0(   T&   9    >&PO=V]R:W-H
M965T<R]S:&5E=#0Q+GAM;(U546^;,!#^*R<V3:T4%3!IDF8)4I-NW1XJ1>VV
M/DQ[<. 2K!J;V::T_WZV(223TJ@OX#M_]]UWV'?,&JF>=(%HX*7D0L^#PIAJ
M&H8Z*["D^D)6*.S.1JJ2&FNJ;:@KA33W024/212-PI(R$:0S[UNI="9KPYG
ME0)=ER55KPODLID'<;!SW+-M89PC3&<5W>(#FI_52EDK[%ER5J+03 I0N)D'
MU_%T,71X#_C%L-$':W"5K*5\<L;W?!Y$3A!RS(QCH/;UC$ODW!%9&7\[SJ!/
MZ0(/USOVK[YV6\N::EQ*_LAR4\R#20 Y;FC-S;ULOF%7SZ7CRR37_@E-BTW&
M 62U-K+L@JV"DHGV35^Z[W 0,(G>""!= /&ZVT1>Y0TU-)TIV8!R:,OF%KY4
M'VW%,>$.Y<$HN\MLG$E72N9U9J"A2E%A7N'L!UUSU.>ST%AZ!PJSCFK14I$W
MJ&("=U*80L,7D6/^/T%H=?7BR$[<@IQDO,'L I)X "0BPQ-\25]LXOF2-_AN
M:^J*1-3P^WJMC;)WXL^Q0EN:X7$:UR=37=$,YX%M!(WJ&8/TTX=X%'T^(7+8
MBQR>8D\?;-_E-4>0&]B=SN/N=.[;=,<TGV0]KGE94+&U'X,)D+7:WX$.  TJ
M!*IA([EM7CW=Z^@0 [!'A.4:U>Z8"'R$.!D/)E&T1U=*/C/?QG:*0"V8T: E
MSX%,1H/D*H:EU-9E"^XE,)'52F$.9V1"!O%5?/Z.Y G$0S*(WI?ZTHJ\FIQ.
M/1XYS'M2#UW=)/')CUV"\*!%2U1;/X@T9+(6INW6WMO/NNNVQ??P=E#>4;5E
M0@/'C0V-+L:7 :AV^+2&D95O^+4T=GSX96'G-2H'L/L;*<W.< GZ/T#Z#U!+
M P04    " #@8G):R>.*@"(%  #?#@  &0   'AL+W=O<FMS:&5E=',O<VAE
M970T,BYX;6S-5VUOVS80_BN$^X(-H&V)I"@I30PDZ8(5:+ @Z58,PS[0,FT3
ME42/I./DW^](R8KM*%Z#?>D7FY3X/'?'>^XHGFZT^6:74CKT4)6U/1LLG5N=
MC,>V6,I*V)%>R1K>S+6IA(.I68SMRD@Q"Z"J'),HXN-*J'HP.0W/;LSD5*]=
MJ6IY8Y!=5Y4PCQ>RU)NS03S8/KA5BZ7S#\:3TY58R#OI?E_=&)B-.Y:9JF1M
ME:Z1D?.SP7E\<L']^K#@#R4W=F>,?"13K;_YR:?9V2#R#LE2%LXS"/B[EY>R
M+#T1N/%/RSGH3'K@[GC+?A5BAUBFPLI+77Y5,[<\&V0#-)-SL2[=K=[\*MMX
M$L]7Z-*&7[1IUC(Z0,7:.EVU8/"@4G7S+Q[:?=@!9-$+ -("2/"[,12\_"B<
MF)P:O4'&KP8V/PBA!C0XIVJ?E#MGX*T"G)M\EA"213]]$=-2VI]/QPY(_:MQ
MT1)<- 3D!8*8H&M=NZ5%O]0S.=LG&(,WG4MDZ](%.<KX418C1&.,2$38$3[:
MA4@#'WV![[PH]+IVJEZ@&UVJ0D&\?YU/K3,@B;_[(F[X6#^?+Y,3NQ*%/!M
M'5AI[N5@\OY-S*,/1[QEG;?L&/OD;KU:E1)D[T2)/M5-V7G]WLI2.#E#3J,F
M:7V>OX);[7";)VXH=R/"9I6--& 5<DN)'J4P%DF?9 0IDM54FBY-2-0S/Z!H
M(RP2'E5"O=N3GJ6'3RBZ%':)5D+-@C%1^719<+ HU]Z:JH,#%?BS-L%]I.>'
MCJ)2B:DJE?/I?8M2DF(69W[$*,Y8CD*_&>KY< V+A;423.BI@[[5F) /Q5+4
M"QE\.$X>8YY$.,^9'[,,1SE%7T/]R]E0W ,4:,!3X'ZB<-)4:/A\?]DH1G^&
MO64CWHZ>D<V4#2)&@)5]+.DH0>\0'S'X?3'-/K*YJD5=R+[L_D#)W?/R8/>S
M#/*9P.#]FXS$Y,/K,GN,F>0)CC)/#6<:CK/TN[-ZL*ML1-MZ2491._K/G!YP
MQ!% W_D_R.F1QI)TC27Y_N*_$&6P=1<._ITVT]=4CO+VM\,]8]/66/.5\0/U
MG=\.;?8IR9=[2B-,DVTWB7)^".V$](CAU#;&R_@M8AZ6$:\GZ!(Y?69Q%U;J
M>C$,<HHQ96 SRU%"*.8\0E^TW\>7FM)CXV-*<)S&WD<8)="27I^$_]4<U.L3
M<+5OKV_[AZC2#ORXETM5E*%,&4EPPNE.F3X' FZJ50G&",<92;MF ?"$8)I'
M._"KWIZPE\HLP9QQCXYPPJ*7(4]II. FH0F*DQRP:9O$_O[C4\CB"&=9O./7
MD:KG7=7SHU5_M7;05M$U]*QJ735?#NA25Y5R7AB]'Q%'&?OKO353M6::X(HG
M,V@-ZC&HUO6P\.&7I?_>W%&T5]&!^D!,<!(\E]%&&KFGM*>B:K]FM\EII\W&
M ]9W]H01''&?R9@0S+C7 ><,)X3[)1PE-,,D3U$<TW#.<)!+S(A_F2(&: 9%
MMGV9)!S3." S1.'X\%+K7D:0^#0@H903S$ ,S!=TCO(<QQ%#7Y80BYB#7!"/
M0=-Y)]-VVKC>;.=*/#9["0%0D"/W%E+X9_ D 6(*9CY+"SNBJM7:A<,/J*5U
M4 04,_A>R3GT%8HHCS!)MY+<[QX[,@010K=+2*\0QSN7CDJ:1;A:612.M.;^
MT3WM;F_GS:7E:7ES];L69J%J"W'. 1J-4CAQ3'.=:B9.K\(59JH=7(C"< DW
M4&G\ G@_U]IM)]Y =Z>=_ M02P,$%     @ X&)R6BQ;X-T4!   40D  !D
M  !X;"]W;W)K<VAE971S+W-H965T-#,N>&UL?59A<YLX$/TK.S3I)3/$!@$&
MI[9GG#2]ZTQ[S21I^^'F/LBPQDP 44F.XW_?E<#$N7,\XS&2T+Y]J]VG9;(1
M\E&M$#4\5V6MILY*Z^9R.%3I"BNN!J+!FMXLA:RXIJG,AZJ1R#-K5)5#YGFC
M8<6+VIE-[-JMG$W$6I=%C;<2U+JJN-Q>82DV4\=W=@MW1;[29F$XFS0\QWO4
MWYM;2;-ACY(5%=:J$#5(7$Z=N7]Y%9G]=L./ C=J;PPFDH40CV;R.9LZGB&$
M):;:('!Z/.$UEJ4!(AJ_.DRG=VD,]\<[]$\V=HIEP15>B_)GD>G5U$D<R'#)
MUZ6^$YN_L(O'$DQ%J>P_;-J]\=B!=*VTJ#IC8E 5=?ODS]TY[!DDWAL&K#-@
MEG?KR++\R#6?3:38@#2["<T,;*C6FL@5M4G*O9;TMB [/;O7(GU<B3)#J?X
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
M5* J6MO@29T"+W[5'"ZP"?N>5 ^YGM/5*3WOT F24IJOBM9VCAKG2.K\I%;
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
MW\]WMXXF$E"+[,1&D^P38_Y1OWR:GPI=TXN;[/"D]OR*7EQE9R3="B8_:OK
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
MU6,*K5\&J7N@5E-HZ1J>TQ5._!"=LO7<+@A=[$ U69'4(TBO1Y8BVU0P4J=
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
M9_U5%WV0L! 2%D'"8DA8 @23PL4YAHMCHL]/ D47&\;,8V,#$A9"PB)(6'R
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
MW^W[P$XM@"LTLU1M ?!9+0!V:@%<H9F]:/T(X.)7@+ZTHX!&78DZ&69RU 8
M.S< N*_K76L]&F(RU:*/78D^MFSJVUIZ*LPDJF4?C\O^=>YM"Q%7C?WZBF7;
M#U=6DDYUWQ6:6;+6?7Q6W<=.==\5FMD+K?O8@>YCB^X'.,*],7HRSF2I51\[
M5WUL$W.B[#SIDK8% AP,[:T3K?K$E>H3BY@K8T50AZLM+@"(#&Q;$JWY9%SS
M[_-5LP^P>-H'N$G80Y(FTKHK. [XTEG@"LTL7_L <E8?0)SZ %=H9B^T#R#/
M]@'IZ "P:3RD,.@ZU6<$FE1;9P+<'PJPG0J D8]1=T/ &@E@I";F &]M#LBS
MS<'3'$OXR-W![Y^I0*B_A6&)\Z,(D.[M=]HZ3%2=Y/J-%>LD+[V4KU0BN @5
M0G$X''6XD&);GR]Z$%**K'ZZX6J14%0!ZOV5$/+IHCJRU!Q1F_\'4$L#!!0
M   ( .!B<EK&(>"0O@0  -(:   9    >&PO=V]R:W-H965T<R]S:&5E=#4Y
M+GAM;,V976_;-A2&_PJA#4,+))%(?7>V 3=9T )M$23K=C'L@K9IFZ@D>B0=
M)_OUHV1%LB6::E0+V(TMV3JOWG-(ZCR21CO&OXDU(1(\I4DFQM9:RLT[VQ;S
M-4FQN&(;DJE_EHRG6*I=OK+%AA.\*(+2Q$:.$]@IIIDU&16_W?')B&UE0C-R
MQX'8IBGFS^])PG9C"UHO/]S3U5KF/]B3T0:OR .17S=W7.W9E<J"IB03E&6
MD^78FL)WURC. XHC_J!D)PZV09[*C+%O^<['Q=AR<D<D(7.92V#U]4BN29+D
M2LK'/Z6H59TS#SS<?E&_+9)7R<RP(-<L^9,NY'IL1198D"7>)O*>[3Z0,B$_
MUYNS1!2?8%<>ZUA@OA62I66P<I#2;/^-G\I"' 1 [T0 *@/0]P:X98!;)+IW
M5J1U@R6>C#C; 9X?K=3RC:(V1;3*AF;Y,#Y(KOZE*DY./F829RLZ2PC 0A I
M ,X6(*%X1A,J*1& R37A0*YQ!E:,+78T2< E>%#S:;%546P)IJL5)RLL";C=
MRBTG8)HR+NF_N!BH-S=$8IJ(MRKJZ\,->//SVY$ME?7<@#TO;;[?VT0G;-Z0
M^15PX05 #O(TX=??'^X>A]NJ8%754%4U5.BY)_1N:48EN?RD9N "')1P6I3P
M GPA\N*X"K\]J84GR 6X9XE26X'/6)6*RF?PUW0F)%?3^6]=6?8^/+V/?(V_
M$QL\)V-++6)!^".Q)K_\! /G5UV1SB1V5#*W*IEK4I_\SB1.=!GNP_PB++_H
M/$Z0#UT8Q2/[\="\YCC/#9#K5,<=^?(J7]X/#"68JM7PJ5P-S^<<6.^< WLF
ML:,"^E4!?>/ JB7EZQ+<1P5'XQ6%<= 85J-X3^M!93WHLA[HK =MZS$*4=BP
M;A3O:3VLK(==UD.=]5!C/8:NW[!N%.]I/:JL1UW6(YWUJ&5=G="+FA/&*-[3
M>EQ9C[NLQSKK<=NZI^KN-:P;Q7M:AT[=Z1WS%5CU<8*7DG!M_W5:.<0P=F&S
M_.:3]$WB %=@OS92QAW-?"=P/;\Y".83]$V@)@=H[+*3+RR[G+.L: R*@Q.%
M30M J[XCM+F=E0+.I79<@)H#H/L_82=H)))7E^U,:L=EJS$%&IOXR39;AAU?
M-N.P/>V'8 180P+LI 1MJX5M3(!!A+R6_2$X =:@ #M)0=MN81L58!#&;NNJ
M.00KP!H68"<M:%LNU.""B\*HZ7X(7( U+\!.8-!V7=@F!C]L\8)9O*_YFAB@
M&1DZNJZ&'* ?PF8.0Y #JLD!=9##J::+VM#@>X$?-._=S/I]_=?0@,S0</W*
M?FN6>_5=]Q# @0X>5?S(LXKA;G#1>1]=# $MJ(869'YZ<:K[EF&'"R",'0\U
MY_\0[(!J=D"=[*!MODC##JKU1F[3_A#L@&IV0)WLH&V^2,,.+H1QZ^HS!#N@
MFAU0)SMHFR_2L(,;(J?9?<WR?>W7[( ZV4';?5&;'?3VAX '5,,#,L.#N?^B
M-D+$3AAZS><EYI/T3:*&"-0!$2<;<-QZ*@I]!=!1*X&S$H1]\,(A?]OS&?,5
MS01(R%+).U>A,L3W+U#V.Y)MBG<0,R8E2XO--<$+PO,#U/]+QN3+3OY:HWJ-
M-?D/4$L#!!0    ( .!B<EKPS*>#)08  'TM   9    >&PO=V]R:W-H965T
M<R]S:&5E=#8P+GAM;+6:;6_;-A#'OPKA#4,+M)5)ZL'.' -KW*(%VB%HT.U%
ML1>L3=M")=&EJ#@9]N%'R8IHVO+9"J@WB1YX?]T=C_1/%"=;(7_D:\X5>DB3
M++\>K)7:7'E>/E_SE.5OQ(9G^LY2R)0I?2I77KZ1G"TJHS3QR' 8>BF+L\%T
M4EV[E=.)*%029_Q6HKQ(4R8?W_)$;*\'>/!TX4N\6JOR@C>=;-B*WW'U=7,K
M]9G7J"SBE&=Y+#(D^?)Z\ >^FOE1:5"U^"OFVWSO&)6A?!?B1WGR<7$]&)8>
M\83/52G!]+][?L.3I%32?ORL10?-,TO#_>,G]?=5\#J8[RSG-R+Y.UZH]?5@
M-$ +OF1%HKZ([0=>!Q24>G.1Y-5?M*W;#@=H7N1*I+6Q]B"-L]U_]E G8L\
MTQ,&I#8@AP;^"0-:&]!+#?S:P*\RLPNERL.,*3:=2+%%LFRMU<J#*IF5M0X_
MSLI^OU-2WXVUG9K>2EU"4CV^0IN$90JQ;('XSR+>Z+Y5Z#6ZV]4#$DOTU+1J
M\ZYI\V+&%8N3_*5N_?5NAE[\^G+B*>U:^0!O7KMQLW.#G'!CQN=O$,6O$!D2
MO\5\=KDYM<T]G9 F*Z3)"JGTZ-FLW#99,1%_^Z2;HX^*I_D_;:'NM/UV[7(@
M7^4;-N?7 SU2<R[O^6#ZVR\X'/[>%K@C,2L-M$D#A=2G5H\W5?$*K:3(\[;(
M=W)!)5?../?3(**4^&3BW>\'U=+.)Y'O!TT[RU^_\=<'_?W$\_Q*3R7S(BT2
MIOA"SP Z+?.8[>88'05+A53QO]6%M@AV#PCW/'M-Q^. #,.#$%H:^B3T1^&H
M/8:@B2$ 8_A3S_4;:%"V>1T<Y1-'=#2DATX'1TYC')(@BMI]#AN?0]#GSW$6
MIT7:YAEHV'4L.!*S8HR:&*,>IX3(91H<B5EI&#5I&(%=_37GRR)!2;SD>KY_
MY$RV3@2P"#UI. ,-GQG;N(EM#)<Q>SA5QJ!AU_YS)&;%B(?F!W_88R'7XHXR
MX4K-3L4>^V 7Q7Q&!0>GRQDV?6Z !F,PB ?3=QF7JT>4/^9EA[;&YA167*G9
MX1I<P;3/T@9AJ',J'*G9J3 DA&$4ZHQNM=X^0Y 1UCA]R&[XF'P.&]H^&_+!
M,/K8U8K^0P!7P%*=.\N1FAVXP2<<]EFW3AG+E9J="D-9&*27BZ=D6 4/@2FY
M#WS"AI\PS#['17Z:.F"ISCW;!UMA U=XW&>1.R4P5VKVXH)!, )RS:5%?D8%
MX@[8]+D!&K B,!)]9O.UOB0/UHI:@W1$2'7<?? 6V5LVZG7=R.W"41\L1@R+
M$<=K1^1X40@'XU% 1P< 4C>T5C'*M:-QV X@Q$ 3@:'I1-G") )K=NXU1VIV
M!@R"D:#/ G8*9:[4[%08*"/PHM:EDS2L LW1?9 6,:1%8$8"BOTTD<":G7NX
M#Q0C!L7(J,]B=PIGKM3L5!@X(_#2UZ7%#JM$0+'W05S4$!>%6>E](;-8%9)7
MG?P^?BB/VS]A.%W@<J5FAVTXC.(>*YPZ13-7:G8J#)I1>"FL^[<L<KP@0JSO
M.W5<Y'@]!)-Q2-MIA.Y]?(,)ZL(Q>48%^ &"+9_;(X:V*$Q;-R+=%(I+E(NE
MVC+)6Z-S2E>NU.R(#5W1/NF*.J4K5VIV*@Q=49B+N@_'\/CU8$Q&87 X',/C
MMP.[G>VQX24*\])1N<*O!;!:Y][J@Y2H(27:)RE1IZ3D2LU.A2$EZH24SJ@
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
M/U/.:5H>[DD0$58$B/M;2OGK23% \[_#^E]02P,$%     @ X&)R6LUY"R^
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
MDJ3R^%)#.X<^R\#7VWNZIP]>'<P3+=B<)W_'"[F^[4PZ9,&6=)/(#WP;L/J
MAB4OXDFA'\FV;MOKD&A32)[6P2J#-,ZJ__2E?B->!=CVB0"[#K#/#>C7 ?US
M P9UP.#<@&$=,/PJP!J<"!C5 :-S>QC7 >-S R9UP.3<@&D=,-4Z5.=/GWR'
M2CJ[$7Q+1-E:T<H-;9".5N<\SDK9'Z50K\8J3L[F/$UCJ>R5!:'9@D0\DW&V
M8ED4LX+\ZC!)XZ3X[:8K56=E2#>JP7X%MD^ +9N\4ZQU0=QLP19-0%=E>4C5
MWJ=Z;QN)'GNZ(KWQ&V+W["'Y].B07W]N2VQ^"69^=PKCF#%_T.R*6/WO8EPS
MYD_^?$7L"F,;,-YWLMDDZJ"F&M-K.UGF<(=%5Z1OZ?"!X:T-SL?T#9CP?(S=
MCFD(U#^XWM?<_@GN6UX49-X0_)^WJ@T))4N+?UL2O:^ @W9@>2.Z+G(:L=N.
MNM,43#RSSNR7GZQ1[_<V+Y$P!PESD3 /"?.1L  )"T&PALF#@\D#$WWVP$3,
M%X0O2<&>F:!9Q,@3R]@R5L.XF@&1SVRG[A*9FJZ40SMA:9[P'5/";]1@+(A<
M,Y(G-&M3WMCSI<HC80X2YB)AGOELJ5MAJF^%;8(C\PB0L! $:P@^/ @^-+YE
M\S558S2),SU>"S4M>CR(?E^)3AZ4P&](7ET*JJ7R/F)M1AN[NM1H),Q!PEPD
MS#.?GC[9,2I:?49F$2!A(0C6\'ET\'D$\IF]R/JC9&5VF]#&OBX5&@ESD# 7
M"?/,Y\?20K?YC$PB0,)"$*SA\_C@\QCD<\9EK';6PW0Y-XG*5DE"RR\[VNPV
M]GRIW4B8@X2Y2)AG/ELCP_P#F4: A(4@6,/OR<'O"<CO+QN:Q,N=^DA))!-I
MG&FO][[GZE%-MSF)#L"H K:9;\SI4O.1, <)<Y$PSWP>^P;SD6D$2%@(@C7,
MGQ[,G_X0\^E2[3Q/>V-"EVJ/A#E(F(N$>>:3:$T,WB/S")"P$ 1K>&_UCM^$
M]XQOVL<U4\Z+G(M*Y/=+4N[ZR+=Z^UV<2*ZTK_X3-V-BM2.^NB3J]H\\V90;
M!0FSZ(K<98M]VV"W$)PX<2%%_*3;E$W:+@5SBI=>"U": Z6Y4)H'I?E06@"E
MA2A:\R)Y52ZRT-^AUT24TTB: Z6Y4)H'I?E06@"EA2A:TVG[Z+1M'/BUT\?"
MY^X-6="4KI3:!=^LUK)5:B/R8JF1- =*<VO:4-/*WTX\SZR>_KOI/C=\17;K
M0VD!E!:B:$U?CV5,RUA;FGVHF/K+%*JLC>*<2K;86]NJ*[20":4Y4)H+I7E0
MF@^E!5!:6-,:E_FP<94W;3V6*BUS]>M'3ZO)?^1Q\U2P+YNR\ND^J\?6*P):
MYX32'"C-A=(\*,V'T@(H+431FM?-L0)J#>$S;6BE$TISH#072O.@-!]*"Z"T
M$$5K.GVL@EKF,MOIF3;=4O'-SP1KJZ'E3BC-J6FO[YJ#EKFQ"^W5@])\*"V
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
MG?(+&:VSPX(>(BFC('OYR-T%%VF!Y/UE%,G=15I!><C6[']02P,$%     @
MX&)R6C%3%4\D P  G0@  !D   !X;"]W;W)K<VAE971S+W-H965T-C@N>&UL
MK5;;;MLX$/V5@;8H4J")KK:3K"T@<;;8 BT:-&C[4.P#+8TMHA2IDI2=_/T.
M*45U7,5H@;Y()#5S9L[AD*/Y3NEOID*T<%\+:19!96US&8:FJ+!FYDPU*.G+
M6NF:69KJ36@:C:ST3K4(DRB:AC7C,LCG?NU6YW/56L$EWFHP;5TS_7"-0NT6
M01P\+GSDF\JZA3"?-VR#=V@_-;>:9N& 4O(:I>%*@L;U(KB*+Y<S9^\-/G/<
MF;TQ."8KI;ZYR=MR$40N(1186(? Z+7%)0KA@"B-[SUF,(1TCOOC1_0WGCMQ
M63&#2R6^\-)6B^ \@!+7K!7VH]K]BSV?B<,KE##^";O>-@J@:(U5=>],&=1<
M=F]VW^NPYY"DSS@DO4-RZ) ]XY#V#JDGVF7F:=TPR_*Y5CO0SIK0W,!KX[V)
M#9=N%^^LIJ^<_&S^#DD# Z=PUS:-0-H?RP2\E5U].*%I!!\:U#23&^CM3V[0
M,B[,*_+\='<#)R]>S4-+^3C4L.AC7W>QDV=BQPF\5])6!OZ1)99/ 4(B,K!)
M'ME<)T<1;[ X@S1^#4F49",)+7_=/3V23CJ(FWJ\]+BX7Z]6QFHJV/_&-.H@
MLG$(=X@O3<,*7 1T2@WJ+0;YR[_B:?3W&+\_!/:$;3:PS8ZAYTMF*F@8+WW)
ML%JUTAK@LA M[2X-P%8(-6G2:E]HH-:@ALH23BP0G*VXX):C&1.KRV#B,W 7
MU#:?);,L/I^'VWT91LRR]#R[&,R>$)P,!"='"?HK[E2M3UM*E!F#1$^MZ!S(
MCA[>%Q63&_3\?Y/8Y*>,X^DDNKC(#IB-V&7GT44ZSFPZ,)L>9?;%WW98GK(M
M94T,:(.(UH_L+>J:COH!J5$FQR-E\(!,&XBA=D<?IE"RAS&<Y:_AS#H<,PKT
M1(O9H,7L][0HN2E<+0-1QQ$1X(06"JKGT2NP"Q9'>SL6G46SR<&^CIM-LX-]
M#?=N^AKUQC=  SZ_[IH<5KL>>TT]UO>B@W7JO5>^Y80_8+K&_9[I#9>&R*T)
M,CJ;4;'IKAEV$ZL:WT]6RE)W\L.*_A]0.P/ZOE;*/DY<@.&/)/\?4$L#!!0
M   ( .!B<EJ? ,FR%0,  '$(   9    >&PO=V]R:W-H965T<R]S:&5E=#8Y
M+GAM;*U6;6_3,!#^*U9 :$AL>6FS=J.-M'5,3&+2Q 1\0'QPDVMCS;&#[;3;
MO^=L9Z$M60027Y*S<_?</>?S769;J1YT"6#(8\6%G@>E,?5Y&.J\A(KJ$UF#
MP"\KJ2IJ<*G6H:X5T,(953Q,HN@TK"@3039S>W<JF\G&<";@3A'=5!553Y?
MY78>Q,'SQF>V+HW="+-93==P#^9+?:=P%78H!:M :"8%4;":!Q?Q^6)B]9W"
M5P9;O2,3RV0IY8-=W!3S(+(! 8?<6 2*KPTL@',+A&'\;#&#SJ4UW)6?T:\=
M=^2RI!H6DG]CA2GGP30@!:QHP\UGN?T(+9_4XN62:_<D6Z\[.0M(WF@CJ]88
M(ZB8\&_ZV.9AQR!)7S!(6H/DP" >OV P:@U&CJB/S-&ZHH9F,R6W1%EM1+."
MRXVS1C9,V%.\-PJ_,K0SV2? '&AR3.Z;NN: YV,H)S?"UX=--$KDF@DJ<B"M
M]M$5&,JX?HMV7^ZOR-'KM[/08#06,\Q;SY?><_*"YS@AMU*84I,/HH!B'R!$
M&AV7Y)G+93*(> 7Y"1G%[T@2)>.>@!9_;SX:"&?4I7;D\$;#J?U^L=1&8;G^
MZ,N1AQCW0]@K?*YKFL,\P#NJ06T@R-Z\BD^C]WW\_A/8'MMQQW8\A)XMJ"Y)
M35GA"H96LA%&$R9RWN#IHD!,":3"G#3*E1F1*[)JZXK;5!'.Z))Q9ACHOE1Y
M_ZGS;YO3)IM.I^-T%FYV<_"G5M1I[!%+.V+I(#'7V([EZKC!$*G6@+3D$NM?
M>%KPF)=4K,'Q_B="Z1^A)F=I-#UDU*,61?%TTD_KM*-U.DCKFVMP4!S3#2CL
MU]B2;=-G8MT&;T!5>+_W&/72&/8S)D] E28C4OG;'D])09_ZD!;#2*E'&JC5
M2<=]\F_<"Z9S6[!$40-_1=H[.-LMLY/XX."\3ASM*T7C@X,+=[IW!6KMAIHF
M+B#?_+I=/S<O<6ZZ^7*PC_/TPHV1\#>,'\:W5*V9T,AGA9#1R02K2?D!YQ=&
MUFY&+*7!B>/$$O\)0%D%_+Z2TCPOK(/N+R/[!5!+ P04    " #@8G):NK/
M5YL#   H#P  &0   'AL+W=O<FMS:&5E=',O<VAE970W,"YX;6RMEVMOVS84
MAO\*H0U#"[21J+LRV\"2H%B!#0OJM?M,R\<V44K42#IN__U(2I&MB[7$]9=8
MEW->/>?H%4\X.W#Q5>X %/I6L%+.G9U2U:WKRGP'!9$WO()2W]EP41"E3\76
ME94 LK9)!7-]SXO=@M#26<SLM4>QF/&]8K2$1X'DOBB(^'X'C!_F#G:>+WRB
MVYTR%]S%K");6(+Z7#T*?>:V*FM:0"DI+Y& S=SY#=_>X]@DV(@O% [RY!B9
M4E:<?S4G']=SQS-$P"!71H+HGR>X!\:,DN;XMQ%UVF>:Q-/C9_4/MGA=S(I(
MN.?L'[I6N[F3.F@-&[)GZA,__ Y-09'1RSF3]B\ZU+&Q#L[W4O&B2=8$!2WK
M7_*M:<1) @[/)/A-@O_2A*!)"&RA-9DMZX$HLI@)?D#"1&LU<V![8[-U-;0T
MKW&IA+Y+=9Y:_ &Z!Q*]1\M]53'0+T@1ANX((V4.:&F=]+&L[6+:_N8!%*%,
MOM4IGY</Z,W/;V>NTB!&SLV;A][5#_7///0!\AL4X'?(]_QP)/W^Y>E!-]W5
MY;<]\-L>^%8O.*/W5P5"5U=N$;/=&"NH5@C'%<RW=BLKDL/<T1^3!/$$SN*7
MGW#L_3I6WI7$.L4&;;'!E/K"?JB(;]!> B)2@C)OG[^@!;5N9'7-ZO"TP$G@
M!5$Z<Y].JQO&)6'@97$;UN$.6^YPDKOWDA"C9$495=_?Z<]$".W;,>9:,SYA
MT2A!ZO>0AV%^F&9!,(X<M<C1I<B,E]OW"D0Q!AT-:' 0XB3->M3#N,@/XM@;
MIXY;ZGB2^F]N5@!^CGT,.!X")XF/$]P#'L;IL"@[T^:D!4XN</2&EG8).^_G
M9.@-W;_,ZT$/P_2(Q&DR#IVVT.DD](=3/,17C&[M BLG[9P.6-(H#N,>\3 J
M]*+PC"VR%CB[%+@$V_Z&&U5<F!MC_-F +/!USZ-> <,P'&5Q>*;EV#O..N\%
MUNXX8]K8C5ZGE=A+T[ZQ1^*F3()/IC.>)/X".YJS<?].I[YV)EU+K5OH<03C
M'Y_!^*I#^%IJW8*/8QA?,H?_?]5J9#N6]*,H#OJ6',9-6O(XA_'T(+[CE($8
M19M,?/7[N9):M\SC[,;1CQMR<OZ_NN KJ74+/HY]/#WW+S9D//A_SX]3/^G[
M<1C6GTCNR3;&["'_)&)+2ZF?O=$YWDVBDT6]+:M/%*_LSF;%E=XGV<.=WLJ"
M, 'Z_H9S]7QB-DOMYGCQ'U!+ P04    " #@8G):L-4CI7<$  "B&   &0
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
M$5K"U^KFOT5?=SJ$#KRQ EW!UV+C2DPL$*N)<SD:W?17NT ME:@ '6R!#FP
M+9?+;P9JK$!7H#;%@L'!W7&=2\_;WAZ%Z'!+=&@D^BZ&)078D01!T#"C,2^9
MX,@I.@-J(4P!NJG]WJC:%5,M=J7T.W>PU^\LE:A0&FTIC8R4?BW3*72A?(:6
MY32)P^0%<49@T6K6@QAFZU+,FG$&77(),0Q\7N4)S+*)6$ KGL X+)-ZXOVZ
M64AT;(UUZ<JV%AONL/7WP%HJ3@$[WH(=&\%^HF$^IYF.@C%C5PHVQ0)+8@JP
MJRVPJU=>RJ]L<K<I%E@24[B[C@R,G2YKCPZ=6:$KNT9M=^BZ>. XSM[XM56J
MRF7',+A&+C]MEF"8'0MA$YI0N4!G,!O6"ZUV"3'K=J;E'M"Z<!U'@^LPH:-?
M0UTL&> 3UX=-VS>!2;4DP$(:YQ%,^O6O6AC& CK#P(==9Q^#I0)58M*1N,;
M>_)13/Q9_ \ JCI-,U6%NU,:A&I:5%;-1J,VV$4UPE?C_;!7DPX&HW?EM_0=
MZ1%<LTGX1)[1E&9T!L$JHQ ?  :>MU,1\44&PZV-CE5'T*CI!TL#QI1$92+#
M?-<<YRLK6Y@7"IDR6]%"?(;Z<PA=^:8/(2(6N *1+%)FHLWU+.?HA0JM;=]K
M@VC5!31J2M<9C?WAP9 \3.</7.B++3AEC.^:@_Q#G(<HSM&ZVA,#*&1%&9G3
MS;0%LUJ3K'7RLNH&CC0&0\4)*Y"'TGKWR!VCB+QH-V!L54SE+EV#:[8-370+
MO2R( 2$8+2T]J_&^5;7 EIH*4+H#=_S*T:YKU69850MLJ:GPI=-PC0'U20&O
M5;/0J!T/> _3#49*.G7W6(;XV!SBUUT&%MB8U=VLG@%U+3<K=6WYD7JY3CWG
M:?>8OR6KRD>&^OC$4+_>;=ONJIUO^DCGW39S@9TQNJ=L8-HJ4X4HO0(V>X7_
M85/87(/.5&VJ!8V:>H_&+2$.EGX"F_W$_[ S;*Y!9ZI6GW(T:LKF\*7; E5:
M$VRV)O5\**+M.)N;)D.KGN-(I7S#7/A?/)O TK5@LVOYF<0,K4A2TMV=@+@H
MRG:G89;LC$[C('Q8&O=G0(TA\?TA'K1T&&DTL#DV_[.Q$!<;"U$-1PC/.44S
M+9W-PG%T\%FU&(V:.@EYPWU,NE1^RP,7+%T![NH*X..'.(O3,M4VW:H_L*H6
MV%)344I_@%_;'V"K_L"J6F!+384O_0$V^X.35P>K)L&J6G"DB?AH\.Q)<^&9
M(W']L"?/;</>+-?Y3(5-M<"6FHI2^A#/?>WS+%9]B56UP)::"E_Z%\_L7TX=
M]F:9S@BMFI C3=2&F"JNG:-79F,BA_T=]#]Q9. Q(=I=5+-09V!V3U']%\>H
M/&E$//^U![Q5"V-5+;"EIL*7ML;K=.A*2\^JBVG43 ^=C$G4=DKSXIG-BWZD
MPM?J\"MJ,&B;;]6<6%4+;*FI4*79\4:O/7*MVB.K:H$M-16^M$>>^7354WV.
M&.QVF*<I0*^?BC9%1>+$'YJ5U8D_L4M!LI!J"5OU0(W:[M#UQM[X<)?"5K$J
M/&EO/'/L+\]T-,>Q&17O38B@AZQ(G)!I0D\F:-4">9KG)*XS=H?C?8*'";'O
MC=V6W59?>AG_5"]3G;2O)\CWF3@M&J_HR?.FN93.IY>M6AQ;:BIA:7'\U[8X
MOE6+8U4ML*6FPI<6QS?'_Y;F3?_P%)8WUAQ)>] DQ%<#S=DU<[V_E8OT,K[9
MRW1X/GI$R?!$\\&<M7-7LNI<^CMO5J64S:LWU KH)F7&Z_>4ME?KM^ >W.N@
M>EEL[_J=>WU7O1/6ES+UJW4?")O'$&XG= :2SN4(0EU6OZU6?^'YLGI_:YIS
MGJ?5QP4E$64B ?P^RW.^^2(*V+XS./D74$L#!!0    ( .!B<EJ.5E^?^04
M %PA   9    >&PO=V]R:W-H965T<R]S:&5E=#<T+GAM;,V:76_;-A2&_PKA
M#5L*M)9(6;*<.08<I]L*M&B0K.W%L M&HFVADNB2=)P ^_$C)5G?861!!G9C
M2S1Y>)[#KY>DYP?*OO,M(0(\16',KT9;(7:7AL&]+8DP'],=B>4O:\HB+.0K
MVQA\QPCVDT)1:"#3=(P(!_%H,4_2;MEB3O<B#&)RRP#?1Q%FS]<DI(>K$1P=
M$^Z"S5:H!&,QW^$-N2?BR^Z6R3<CM^('$8EY0&/ R/IJM(27*VNB"B0YO@;D
MP$O/0*$\4/I=O7SPKT:F\HB$Q!/*!)9?CV1%PE!9DG[\R(R.\CI5P?+ST?KO
M";R$><"<K&CX+?#%]FKDCH!/UG@?BCMZ^)-D0+:RY]&0)Y_@D.4U1\#;<T&C
MK+#T( KB]!L_98$H%4#V"P505@!U+6!E!:P$-/4LP;K! B_FC!X 4[FE-?60
MQ"8I+6F"6#7CO6#RUT"6$XM[0;WO6QKZA/%? ?FQ#\0S> >29/!YEX1ZJ4*M
MTB]NB,!!R-_('%_N;\#%SV_FAI!>*%N&E]5XG=:(7J@1(O")QF++P?O8)W[5
M@"'=SQG0D>$::2W>$&\,+/@6(!--6AQ:=2]N:=RQ\I!:B3WK!7OOGPCS D[
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
M1$X0"LRM8V#T6.,8A7!$).-WQQELCW3 W?&&_<I[)R]S9G"LQ ]>V-4P^!Q
M@0M6"SM5S3?L_)PXOEP)XW^AZ6JC /+:6%5V8%)0<MD^V6.7PPZ@G[X B#M
M_%9 T@$2;[15YFU-F&790*L&M*LF-C?PV7@TN>'2_8LSJVF7$\YF5XQKN&>B
M1KA!9FJ-!I@L8,)-+E0[_P0SNCQ%+1#4 L8K)I>TRB5\QS4*B.'"&+0&CB9H
M&1?F(R$NC>44LD?\>P9= TM%3QN]W1W3@RGFM=9<+JGJ;C:!H_<?!Z$EOTYU
MF'?>1JVW^ 5O$\R/(>GW(([B= ]\_'9X\AP>4LK;J.-MU+'G2PY&W=LDUIDN
M@"[TD^41,YPRN)-J;E"OV9R"OY95;5V-DCD7G+EWH =C)O):^ G\G"HA@.YV
MPW3Q:U]:K;QTOSS7+LY-Q7(<!M0/W,$89!_>]4^CK_NR^T]DSY),MDDFK[%G
M(UQR*5U4<R:8S'&?VY;BQ%.X7K;.OB1G*=V#]:Z-0U7/]*5;?>FK^BYE<4!<
M^B9QAZI:<>'.V^\Z[PW3%(\!@0O"1<=G1*#;;M9.K*I\0Y@K2^W%#U?T 4#M
M"FA_H93=3%R/V7Y2LK]02P,$%     @ X&)R6C^-G6D[ P  &0T  !D   !X
M;"]W;W)K<VAE971S+W-H965T-S@N>&ULS5==:]LP%/TK%P_&!EG\D31INR20
MIALKM*6DK'L8>U#L&T?4ECQ)3EK8CY\D.VXR')> !WV)+5GGZ)Z3>^7KT8:+
M1[E"5/"4)DR.G952V;GKRG"%*9%=GB'33Y9<I$3IH8A=F0DDD06EB1MXWL!-
M"67.9&3G[L1DQ'.54(9W F2>ID0\7V#"-V/'=[83<QJOE)EP)Z.,Q'B/ZGMV
M)_3(K5@BFB*3E#,0N!P[4_]\YEN 7?% <2-W[L%(67#^: 97T=CQ3$288*@,
M!=&7-<XP20R3CN-W2>I4>QK@[OV6_:L5K\4LB,093W[02*W&SJD#$2Y)GJ@Y
MWWS#4M")X0MY(NTO;,JUG@-A+A5/2[".(*6LN)*GTH@=@-\_  A*0/ O8'
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
M[ZY0R_P?EU,WV-R-78;O1;Z*)NIJH.,S5]FS&HQ^^H'ZY!>7 WH"J[F![]W
M,?31'^OEH\J\=.;I[))%E2/RW7WU'_*S76]P_0JW3#C/(W8Y?#[<%WKE[]R7
MV.]+H/MZ4,\J62L7\<U"<4 <P*=2,+_!WV$H*).<RKUAC9N_Y^:CW&[2O"@]
MGD<+E;L8^I9K*01<,K_I88>A-@M"0MT,@SW# &7X6Y;FN;?*TEGL_.T#Z[HR
M# @-FOQL.TJ 4)^&;G[AGE^(\ONTOU?55RV*N=N-H<,[G'#P28.FR]"G AAQ
MTY1[FA*E^:'TXBQ+E[O@2A,G46E=_PT7C),P:!!U&7+*? INHI08*2$HU;NI
M#O-X%D>/"^5%>:X*)],M2BWJ*9$ 0C:H.BPA""3XT!(]]$#V*,KU?:*RIV_>
M?99.UU5!X62*8IR:HOM"J^\8S([AC&*U!>_+%3VAU5UA9)NB<G@T-6V7']YW
M@0Q#%C;O3]O.%T12O^7N-()*<47MEINH0SZU!E'>I&G;^5JL6A(3-?)(<7WL
MFIJV,(?7YX%D8/&T[43( VASI]%*BHMEU\1D2R&$0K"P*>H.0P:^))2U,#6:
M27'1O$DS'9U1H5Y[:3'715643#VUB'7E'[5F*13RY-#L":WN "/*-#QGED(E
M_V17](16=X41?HHK_]$L92MYLRA!3>J=F5%YP%6^6VX"6[J%H)0)T:#H,/3+
M2K6M0 8C\8!+?-?TM(6I540M7!V6.%FCSH!*7M<4M46I*1,1NLJC3:JV(02,
M^&U9'XQX BZ>VY(I]\;M?1T.<6H<]H56W[ 18^!G3$G04P>[=<4Y^F$PB@_?
MW1&#0^0Y9U(VQ=-A&(9"2MXB\V!D'G"9/Y8PP=7J@F3<"AY'(: [YU"T!8_1
M=\#UO6/R=/2\D@<<+%\Z#/6..&DC:G08\.ZX<_*T^]XW@H8DM'*GHT$6)."M
M/C4Z";A.=DV=MA9*'FJG0I.I;1A*22 0;J;,2"?#I7.L S*>J+RJZCY5]1V2
M1'&PDP>$/:'5MV[$F-%SCDI[;<3[0JN[PD@]PZ7^6)IB#HWW=8DAF_V2PU#W
M=2P4+9,<=C#7QC6^6YIBCO;7!R']9NR[#*4$@)81(S/:S/!&N6N:8G8+3(G^
M1:$Y<G(8OF%!R/R6"H\9[62X=G9,4\R61TI]*5C0+.Y=EA 2\$6;6XV2,EQ)
MS>^_>S[DI(J"G!R5/:'5MVR4F07G3%"]]N!]H=5=8;2?X=J/5'G,5O&6!Q\N
M2_3)!S."SW#!/_KL@]D*WO+PPV6)/OW@1NQYUSYY;)Z%=1H[X\"GWDQ]H=7=
M8(2?GU/X>:_"WQ=:W15&^#DN_$A<<4>[3@GQK:3O,*2!\%NCBAO-Y[CF'XTJ
M;JLX982&K%E NPPI$8*TC$?YP8/FKG/Q@YCZGIDI?IV3[ZMS=.7<5!9<G#/$
MT++E9%?TA%9WA2E<.%ZX8"%F-_56<&$F=4:FKN#')OK'PLKNX2U>F$F=EQ%Y
MWO7Q]T$H=9GMX;@GWR_GF+%S4TIP><[00>N4DUW1$UK]K(NI5P1>KV"G7>P9
MO7NVYS!$9WO"E!$"'^8?#2-AS^:U.''?&N([#(4$1F0;1Z/O M=W9TB=-O/!
MKW#J'=476MT?IJ(0YSP>)WI]AM 76MT5IG 1>.&"!9=C-.&3@(=6[>>RY.4)
M(\%;;MV#DV[X<.)X>-D'V4+.( RL%& ;!I)((,VAU/#@T.I2=T756=[<FZ3K
MI-B<%-U_NCDO?$TO;JICM8W/W]&+=]7IV:&!V1Q"_AAE3W&2>PLUTY#D;:!9
M99MSO9LW1;JJCL8^ID61+JN7<Q5-558:Z.]G:5KLWI07V)^N'OT/4$L#!!0
M   ( .!B<EJS'",$X00  "(3   9    >&PO=V]R:W-H965T<R]S:&5E=#@Q
M+GAM;+58:V_;-A3]*X3W: K,D4@];&6V@<1NMP K%B3K]F'8!T:F;:*2J)*4
MG?37CY1DR98HHBG2+[8>]QZ=0UW>0W%V8/R3V!$BP5.:9&(^VDF97SF.B'<D
MQ>*2Y213=S:,IUBJ4[YU1,X)7I=):>(@UPV=%--LM)B5U^[X8L8*F=",W'$@
MBC3%_/F&).PP'\'1\<(]W>ZDON L9CG>D@<B/^9W7)TY#<J:IB03E&6 D\U\
M= VOE@CIA#+B;TH.XN08:"F/C'W2)[?K^<C5C$A"8JDAL/K;DR5)$HVD>'RN
M04?-,W7BZ?$1_7TI7HEYQ((L6?(/7<O=?#0=@379X"*1]^SP.ZD%!1HO9HDH
M?\&ACG5'("Z$9&F=K!BD-*O^\5,]$"<),!Q(0'4"ZB;X PE>G>"50BMFI:P5
MEG@QX^P N(Y6:/J@')LR6ZFAF7Z-#Y*KNU3ER<5M%K.4 (F?B !C<$]BEL4T
MH;@<9+8![\F:<)R !XEE(1E_!G7*7_@)W'&VI^4;E0PL69KC[/F- ->Q+%1*
M>_=B122FB7BK'O'Q804N?GP[<Z2BKTDX<4WUIJ**!JA"!#ZP3.X$>)>MR?H<
MP%&Z&_'H*/X&61%7)+X$'OP%(!?Y!D++KT_W+'2\YEUX)9YG?Q=Z8%=4Q D3
M!2?@WS]4&+B5)!7_F0:MPO3-F+H+7(D<QV0^4M-<$+XGH\7//\#0_=4D^)7
MSN3[C7S?AKXX5IIH*HTVQ0DXE@1<Y(3'))/&XJG HQ)<-Z_]PKU$<.;L3_59
M&7RCOJ#1%UCUW7$RUE)T3ZNEF714(,&)CK$?!A"Y04>+*="/W#!L \]XA@W/
MT,KS-\;6!YHD@*KY3+GJV=+$LP()3Q[O!Z&'.B3[4:Z9W:1A-[&R>_>44T[6
M(%,6I\Q,U07-MD#-%4&$B>:D1\!#_B2*.CS[80,\IPW/J97GBFP(UT3U*\^Q
MD."98 XD+\BXR-\8N5H17SJ5ISU%T=3U?&26%36R(JNLY0YG6Z+*%^QQ4E0N
M@1.U&,!9;"SGJ$\#0==U.^-O?>HW3DSHMB;H6E6U+@CRHVD9#<KMJ4$H"+LS
MTQ"FBBZ"YJ&')UX-OX;FF?,::5IA7EI(KX5V+AJUHM%W<,4:]+6&X)70SH>@
M71= J^_JGJ=6O74OP1(@^)-1L]<KNW$T"2>!UZU/4Z#ON?Y SX.MA4.[A]]F
M4O4'^I@0@%/&)?U2M@@C6[]/PINX;H^L(<X/O8DWP+6U8VCWXS_ECG CLZ#W
MQ "&7<<P1(7^Q!]@U9HOM+OOLE"N879<V#=38_?IA]FZ3VN\T.Z\1T<S4NO[
MYQAY?H2F77*F0#5N031 K_5;:#?<X_)13T#,XQW V5I]T.W5EVJNUS @5MRI
M-!HO[)MEUZ ,(>.I'T0#?@I;0X5V1_V6A0+LN^HX@FC:J]'O8:NHM55DM]47
M+Q90WS@CY$XBOZ/+$#<./7^H?Z'689'=89<XIQ(G](MZ'X.%1%0[S@:6FS6^
MK9(,(9[GJP7^ /G6*9'5AH8;6IUW^JG@>\&D6RV&L"E$X;3#RSG9;4@)WY:;
M, +$K,AD]>W=7*TV>F[@U;+<#^E<OX97U^6VA]/"5+M''S#?TDR A&P4I'LY
M49QXM2%3G4B6EWL:CTQ*EI:'.X)5 ] !ZOZ&,7D\T0]HML46_P-02P,$%
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
M@FV:@YE5M="66I=K8S:@9;<!^^R&-P[\W0$\WO/HGT8#W]\UZN;^O3?_QDM
MLYFXS(B@$68@_!U\9D0LGWN3MNH@K*J%MM2Z !L3 8_H(J!5&V%5+;2EUGVQ
MVA@)] ,CL=5/HTSH2H]-[7>)5.!$HXX(4[T>URQW*$JK:F&E%K1?=M5EH,NG
M<1#([" N&5OC%*0THZHL6WP!</1]7;QOO+V[Z84$]]\O!C#8+4HS<]L'IW\,
M]X :]X#,[N%>5S@>YWC:L-B/89EED0>>"19]Z[R9.?1@?E;-@]O:GM'%?UEL
M<^FU*U\S5>Y\U%?+K;0K>!X6.TX[UR_A^66QL>0V,N7^W!<LEI1)D)*%EO1.
MQ_J!$^665WFB^*K8!'KD2O&L.$P(CHG(;]#?+SA7+R=Y _7&X_1_4$L#!!0
M   ( .!B<EIBM)I.F 0  -L>   9    >&PO=V]R:W-H965T<R]S:&5E=#@T
M+GAM;*V9:V_B1A2&_\K(K:I=*8TO7),"$HEOJ39J%';;#U4_#/@ UMH>=F:
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
M[?+7Y=?.R=U[Q3G<5PS/?P%02P,$%     @ X&)R6O<P)@8G @  ,C   !,
M  !;0V]N=&5N=%]4>7!E<UTN>&ULS=M-;MLP$ 7@JQC:!A;-?[6(LVF[;;/H
M!5AI' N61()D4N?VI>0D0(O42. "?1L+-LEY(P[P[7S]_3%06AW'84K;:I]S
M^,A8:O<TNE3[0%-9V?DXNER^QCL67'MP=\3$9F-8ZZ=,4U[GN49U<_V9=NY^
MR*LOQ_)SZOVTK2(-J5I].FV<L[:5"V'H6Y?+.GN8NC]2UD\)=3FY[$G[/J2K
MLJ%BKR;,*W\/>#KW[8%B[#M:W;J8O[JQ[&+'@:7\.%"JSY=XI4>_V_4M=;Z]
M'\N1.H5(KDM[HCP.]:GHU?GD7&Z83I_\XORES+G LO,V^I#*Q"*]/^YY)//I
M=2B%*.;^_"N^));2%[\?S=/NJ'MC=KG>GSX>EGDDMCPNO^/?9_Q2_YU]") ^
M)$@?"J0/#=*' >G#@O31@/3Q :0/OD%I!$54CD(J1S&5HZ#*453E**QR%%<Y
M"JP<15:!(JM D56@R"I09!4HL@H4606*K )%5H$BJT"15:+(*E%DE2BR2A19
M)8JL$D56B2*K1)%5HL@J4615*+(J%%D5BJP*15:%(JM"D56AR*I09%4HLBH4
M636*K!I%5HTBJT:15:/(JE%DU2BR:A19-8JL&D56@R*K09'5H,AJ4&0U*+(:
M%%D-BJP&15:#(JM!D=6BR&I19+4HLEH462V*K!9%5HLBJT61U:+(:E%D;5!D
M;5!D;5!D;5!D;?ZGK#^\/_SC^.59CZZ?GO/9\E>!FU]02P$"% ,4    " #@
M8G):1L=-2)4   #-    $               @ $     9&]C4')O<',O87!P
M+GAM;%!+ 0(4 Q0    ( .!B<EJ/1&AJ]    "L"   1              "
M <,   !D;V-0<F]P<R]C;W)E+GAM;%!+ 0(4 Q0    ( .!B<EJ97)PC$ 8
M )PG   3              "  >8!  !X;"]T:&5M92]T:&5M93$N>&UL4$L!
M A0#%     @ X&)R6MKU#D?A!P  S2X  !@              ("!)P@  'AL
M+W=O<FMS:&5E=',O<VAE970Q+GAM;%!+ 0(4 Q0    ( .!B<EHB('2200(
M ,$%   8              " @3X0  !X;"]W;W)K<VAE971S+W-H965T,BYX
M;6Q02P$"% ,4    " #@8G):_8&N8+ '  !@(0  &               @(&U
M$@  >&PO=V]R:W-H965T<R]S:&5E=#,N>&UL4$L! A0#%     @ X&)R6O*F
M*S"7 @  /P<  !@              ("!FQH  'AL+W=O<FMS:&5E=',O<VAE
M970T+GAM;%!+ 0(4 Q0    ( .!B<EJTLO8@B@8  )8<   8
M  " @6@=  !X;"]W;W)K<VAE971S+W-H965T-2YX;6Q02P$"% ,4    " #@
M8G):5_O@QDH%  !='@  &               @($H)   >&PO=V]R:W-H965T
M<R]S:&5E=#8N>&UL4$L! A0#%     @ X&)R6JK(O8$S @  -@4  !@
M         ("!J"D  'AL+W=O<FMS:&5E=',O<VAE970W+GAM;%!+ 0(4 Q0
M   ( .!B<EK7>(LET0@  ,HF   8              " @1$L  !X;"]W;W)K
M<VAE971S+W-H965T."YX;6Q02P$"% ,4    " #@8G): H/9D 8&  #Y#
M&               @($8-0  >&PO=V]R:W-H965T<R]S:&5E=#DN>&UL4$L!
M A0#%     @ X&)R6KFYT1(/*0  _(0  !D              ("!5#L  'AL
M+W=O<FMS:&5E=',O<VAE970Q,"YX;6Q02P$"% ,4    " #@8G):9EF>'2(#
M   L!P  &0              @(&:9   >&PO=V]R:W-H965T<R]S:&5E=#$Q
M+GAM;%!+ 0(4 Q0    ( .!B<EHJ/&R++ 4  'L+   9              "
M@?-G  !X;"]W;W)K<VAE971S+W-H965T,3(N>&UL4$L! A0#%     @ X&)R
M6A=**.9[$0  43@  !D              ("!5FT  'AL+W=O<FMS:&5E=',O
M<VAE970Q,RYX;6Q02P$"% ,4    " #@8G): 0W=SH %  "E#@  &0
M        @($(?P  >&PO=V]R:W-H965T<R]S:&5E=#$T+GAM;%!+ 0(4 Q0
M   ( .!B<EJN!M4O@ (  '8%   9              " @;^$  !X;"]W;W)K
M<VAE971S+W-H965T,34N>&UL4$L! A0#%     @ X&)R6H++&MP%!P  9!
M !D              ("!=H<  'AL+W=O<FMS:&5E=',O<VAE970Q-BYX;6Q0
M2P$"% ,4    " #@8G):Z- C=RD$  "H"0  &0              @(&RC@
M>&PO=V]R:W-H965T<R]S:&5E=#$W+GAM;%!+ 0(4 Q0    ( .!B<EH\^S%?
MW@,  -<)   9              " @1*3  !X;"]W;W)K<VAE971S+W-H965T
M,3@N>&UL4$L! A0#%     @ X&)R6A 95<5A!@  31$  !D
M ("!)Y<  'AL+W=O<FMS:&5E=',O<VAE970Q.2YX;6Q02P$"% ,4    " #@
M8G):-X@;E*,)  #8%@  &0              @(&_G0  >&PO=V]R:W-H965T
M<R]S:&5E=#(P+GAM;%!+ 0(4 Q0    ( .!B<EI4\_$_2 ,  *0'   9
M          " @9FG  !X;"]W;W)K<VAE971S+W-H965T,C$N>&UL4$L! A0#
M%     @ X&)R6A#CF :("@  #B$  !D              ("!&*L  'AL+W=O
M<FMS:&5E=',O<VAE970R,BYX;6Q02P$"% ,4    " #@8G)::6)(?^0)  !!
M'   &0              @('7M0  >&PO=V]R:W-H965T<R]S:&5E=#(S+GAM
M;%!+ 0(4 Q0    ( .!B<EIX#(UZX@<  (88   9              " @?*_
M  !X;"]W;W)K<VAE971S+W-H965T,C0N>&UL4$L! A0#%     @ X&)R6D-U
M<-"D P  ! @  !D              ("!"\@  'AL+W=O<FMS:&5E=',O<VAE
M970R-2YX;6Q02P$"% ,4    " #@8G):9.8@WRL&  "[#0  &0
M    @('FRP  >&PO=V]R:W-H965T<R]S:&5E=#(V+GAM;%!+ 0(4 Q0    (
M .!B<EI+2C'4'@H   D8   9              " @4C2  !X;"]W;W)K<VAE
M971S+W-H965T,C<N>&UL4$L! A0#%     @ X&)R6D;=Y K]!@  1A$  !D
M             ("!G=P  'AL+W=O<FMS:&5E=',O<VAE970R."YX;6Q02P$"
M% ,4    " #@8G):8JC"O%,"  "P!0  &0              @('1XP  >&PO
M=V]R:W-H965T<R]S:&5E=#(Y+GAM;%!+ 0(4 Q0    ( .!B<EHL=6B^0P(
M (H&   9              " @5OF  !X;"]W;W)K<VAE971S+W-H965T,S N
M>&UL4$L! A0#%     @ X&)R6CRE,S@1 @  W00  !D              ("!
MU>@  'AL+W=O<FMS:&5E=',O<VAE970S,2YX;6Q02P$"% ,4    " #@8G):
M<='Y/^4*  !*+   &0              @($=ZP  >&PO=V]R:W-H965T<R]S
M:&5E=#,R+GAM;%!+ 0(4 Q0    ( .!B<EI,,6&DSRD  #*3   9
M      " @3GV  !X;"]W;W)K<VAE971S+W-H965T,S,N>&UL4$L! A0#%
M  @ X&)R6LY+SU,> P  M 8  !D              ("!/R ! 'AL+W=O<FMS
M:&5E=',O<VAE970S-"YX;6Q02P$"% ,4    " #@8G):"+N'1#<#   ]!P
M&0              @(&4(P$ >&PO=V]R:W-H965T<R]S:&5E=#,U+GAM;%!+
M 0(4 Q0    ( .!B<EH^;;1RC 0  "H+   9              " @0(G 0!X
M;"]W;W)K<VAE971S+W-H965T,S8N>&UL4$L! A0#%     @ X&)R6O.% O2-
M @  >P4  !D              ("!Q2L! 'AL+W=O<FMS:&5E=',O<VAE970S
M-RYX;6Q02P$"% ,4    " #@8G):OJYYC-H$  #!"@  &0
M@(&)+@$ >&PO=V]R:W-H965T<R]S:&5E=#,X+GAM;%!+ 0(4 Q0    ( .!B
M<EK;2Q;$/ ,  /H&   9              " @9HS 0!X;"]W;W)K<VAE971S
M+W-H965T,SDN>&UL4$L! A0#%     @ X&)R6D$%B(X. P  !0<  !D
M         ("!#3<! 'AL+W=O<FMS:&5E=',O<VAE970T,"YX;6Q02P$"% ,4
M    " #@8G):X%J3<Y$"   -!@  &0              @(%2.@$ >&PO=V]R
M:W-H965T<R]S:&5E=#0Q+GAM;%!+ 0(4 Q0    ( .!B<EK)XXJ (@4  -\.
M   9              " @1H] 0!X;"]W;W)K<VAE971S+W-H965T-#(N>&UL
M4$L! A0#%     @ X&)R6BQ;X-T4!   40D  !D              ("!<T(!
M 'AL+W=O<FMS:&5E=',O<VAE970T,RYX;6Q02P$"% ,4    " #@8G):CM$G
M8R $  !V#0  &0              @(&^1@$ >&PO=V]R:W-H965T<R]S:&5E
M=#0T+GAM;%!+ 0(4 Q0    ( .!B<EH$K$_^+@0  /T(   9
M  " @15+ 0!X;"]W;W)K<VAE971S+W-H965T-#4N>&UL4$L! A0#%     @
MX&)R6L!V',OU!   )0L  !D              ("!>D\! 'AL+W=O<FMS:&5E
M=',O<VAE970T-BYX;6Q02P$"% ,4    " #@8G):S(JH[%\%   #(   &0
M            @(&F5 $ >&PO=V]R:W-H965T<R]S:&5E=#0W+GAM;%!+ 0(4
M Q0    ( .!B<EJ;RJ%9TP4  $\;   9              " @3Q: 0!X;"]W
M;W)K<VAE971S+W-H965T-#@N>&UL4$L! A0#%     @ X&)R6J?GM[C_ @
M;@D  !D              ("!1F ! 'AL+W=O<FMS:&5E=',O<VAE970T.2YX
M;6Q02P$"% ,4    " #@8G):UXBG2U,"   6!P  &0              @(%\
M8P$ >&PO=V]R:W-H965T<R]S:&5E=#4P+GAM;%!+ 0(4 Q0    ( .!B<EJT
MD3K7-P4  *@B   9              " @09F 0!X;"]W;W)K<VAE971S+W-H
M965T-3$N>&UL4$L! A0#%     @ X&)R6B1]>"GE P  WPT  !D
M     ("!=&L! 'AL+W=O<FMS:&5E=',O<VAE970U,BYX;6Q02P$"% ,4
M" #@8G):^90"K!0#  !$#@  &0              @(&0;P$ >&PO=V]R:W-H
M965T<R]S:&5E=#4S+GAM;%!+ 0(4 Q0    ( .!B<EIZH_YAF0H  /1;   9
M              " @=MR 0!X;"]W;W)K<VAE971S+W-H965T-30N>&UL4$L!
M A0#%     @ X&)R6F)'&8&7 P  "@T  !D              ("!JWT! 'AL
M+W=O<FMS:&5E=',O<VAE970U-2YX;6Q02P$"% ,4    " #@8G):5Q@<8I "
M  #C!@  &0              @(%Y@0$ >&PO=V]R:W-H965T<R]S:&5E=#4V
M+GAM;%!+ 0(4 Q0    ( .!B<EJE$,N3WP,  !,3   9              "
M@4"$ 0!X;"]W;W)K<VAE971S+W-H965T-3<N>&UL4$L! A0#%     @ X&)R
M6CQ4*!WL!0  KB8  !D              ("!5H@! 'AL+W=O<FMS:&5E=',O
M<VAE970U."YX;6Q02P$"% ,4    " #@8G):QB'@D+X$  #2&@  &0
M        @(%YC@$ >&PO=V]R:W-H965T<R]S:&5E=#4Y+GAM;%!+ 0(4 Q0
M   ( .!B<EKPS*>#)08  'TM   9              " @6Z3 0!X;"]W;W)K
M<VAE971S+W-H965T-C N>&UL4$L! A0#%     @ X&)R6LD37%0@ P  _@D
M !D              ("!RID! 'AL+W=O<FMS:&5E=',O<VAE970V,2YX;6Q0
M2P$"% ,4    " #@8G):RK1%EFH$  "#&   &0              @($AG0$
M>&PO=V]R:W-H965T<R]S:&5E=#8R+GAM;%!+ 0(4 Q0    ( .!B<EK->0LO
M@ (   0(   9              " @<*A 0!X;"]W;W)K<VAE971S+W-H965T
M-C,N>&UL4$L! A0#%     @ X&)R6B.4V2HO"   DG$  !D
M ("!>:0! 'AL+W=O<FMS:&5E=',O<VAE970V-"YX;6Q02P$"% ,4    " #@
M8G):&320(6\&  #$.0  &0              @('?K $ >&PO=V]R:W-H965T
M<R]S:&5E=#8U+GAM;%!+ 0(4 Q0    ( .!B<EH[:/;[$0,  ,()   9
M          " @86S 0!X;"]W;W)K<VAE971S+W-H965T-C8N>&UL4$L! A0#
M%     @ X&)R6MVUQ_^;!P  <$L  !D              ("!S;8! 'AL+W=O
M<FMS:&5E=',O<VAE970V-RYX;6Q02P$"% ,4    " #@8G):,5,53R0#  "=
M"   &0              @(&?O@$ >&PO=V]R:W-H965T<R]S:&5E=#8X+GAM
M;%!+ 0(4 Q0    ( .!B<EJ? ,FR%0,  '$(   9              " @?K!
M 0!X;"]W;W)K<VAE971S+W-H965T-CDN>&UL4$L! A0#%     @ X&)R6KJS
MP%>; P  * \  !D              ("!1L4! 'AL+W=O<FMS:&5E=',O<VAE
M970W,"YX;6Q02P$"% ,4    " #@8G):L-4CI7<$  "B&   &0
M    @($8R0$ >&PO=V]R:W-H965T<R]S:&5E=#<Q+GAM;%!+ 0(4 Q0    (
M .!B<EK%V;Z<N0(  *$)   9              " @<;- 0!X;"]W;W)K<VAE
M971S+W-H965T-S(N>&UL4$L! A0#%     @ X&)R6N-VIM,%"   /S@  !D
M             ("!MM ! 'AL+W=O<FMS:&5E=',O<VAE970W,RYX;6Q02P$"
M% ,4    " #@8G):CE9?G_D%  !<(0  &0              @('RV $ >&PO
M=V]R:W-H965T<R]S:&5E=#<T+GAM;%!+ 0(4 Q0    ( .!B<EJ>!6GN" ,
M )H(   9              " @2+? 0!X;"]W;W)K<VAE971S+W-H965T-S4N
M>&UL4$L! A0#%     @ X&)R6F>7R8MH!P  ?D(  !D              ("!
M8>(! 'AL+W=O<FMS:&5E=',O<VAE970W-BYX;6Q02P$"% ,4    " #@8G):
M0=W/:(X"  !>!@  &0              @($ Z@$ >&PO=V]R:W-H965T<R]S
M:&5E=#<W+GAM;%!+ 0(4 Q0    ( .!B<EH_C9UI.P,  !D-   9
M      " @<7L 0!X;"]W;W)K<VAE971S+W-H965T-S@N>&UL4$L! A0#%
M  @ X&)R6J"Y<@K\ @  70H  !D              ("!-_ ! 'AL+W=O<FMS
M:&5E=',O<VAE970W.2YX;6Q02P$"% ,4    " #@8G):DL%)F4T'  !I+0
M&0              @(%J\P$ >&PO=V]R:W-H965T<R]S:&5E=#@P+GAM;%!+
M 0(4 Q0    ( .!B<EJS'",$X00  "(3   9              " @>[Z 0!X
M;"]W;W)K<VAE971S+W-H965T.#$N>&UL4$L! A0#%     @ X&)R6KS;6<"T
M P  U0P  !D              ("!!@ " 'AL+W=O<FMS:&5E=',O<VAE970X
M,BYX;6Q02P$"% ,4    " #@8G):UT@'I]8$  "$'   &0
M@('Q P( >&PO=V]R:W-H965T<R]S:&5E=#@S+GAM;%!+ 0(4 Q0    ( .!B
M<EIBM)I.F 0  -L>   9              " @?X( @!X;"]W;W)K<VAE971S
M+W-H965T.#0N>&UL4$L! A0#%     @ X&)R6O?IG%4O P  [A(   T
M         ( !S0T" 'AL+W-T>6QE<RYX;6Q02P$"% ,4    " #@8G):EXJ[
M',     3 @  "P              @ $G$0( 7W)E;',O+G)E;'-02P$"% ,4
M    " #@8G):F,-"3F@&   $-P  #P              @ $0$@( >&PO=V]R
M:V)O;VLN>&UL4$L! A0#%     @ X&)R6I,QO/V  @  DS$  !H
M     ( !I1@" 'AL+U]R96QS+W=O<FMB;V]K+GAM;"YR96QS4$L! A0#%
M  @ X&)R6O<P)@8G @  ,C   !,              ( !71L" %M#;VYT96YT
A7U1Y<&5S72YX;6Q02P4&     %P 7  [&0  M1T"

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>98
<FILENAME>Show.js
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
// 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)}}}
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>99
<FILENAME>report.css
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
/* 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;
}
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>101
<FILENAME>FilingSummary.xml
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<XML>
<?xml version='1.0' encoding='utf-8'?>
<FilingSummary>
  <Version>3.25.1</Version>
  <ProcessingTime/>
  <ReportFormat>html</ReportFormat>
  <ContextCount>232</ContextCount>
  <ElementCount>471</ElementCount>
  <EntityCount>1</EntityCount>
  <FootnotesReported>true</FootnotesReported>
  <SegmentCount>76</SegmentCount>
  <ScenarioCount>0</ScenarioCount>
  <TuplesReported>false</TuplesReported>
  <UnitCount>16</UnitCount>
  <MyReports>
    <Report instance="tgen-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R1.htm</HtmlFileName>
      <LongName>0000001 - Document - Cover</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.tecogen.com/role/Cover</Role>
      <ShortName>Cover</ShortName>
      <MenuCategory>Cover</MenuCategory>
      <Position>1</Position>
    </Report>
    <Report instance="tgen-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R2.htm</HtmlFileName>
      <LongName>0000002 - Document - Audit Information</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.tecogen.com/role/AuditInformation</Role>
      <ShortName>Audit Information</ShortName>
      <MenuCategory>Cover</MenuCategory>
      <Position>2</Position>
    </Report>
    <Report instance="tgen-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R3.htm</HtmlFileName>
      <LongName>9952151 - Statement - Consolidated Balance Sheets</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.tecogen.com/role/ConsolidatedBalanceSheets</Role>
      <ShortName>Consolidated Balance Sheets</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>3</Position>
    </Report>
    <Report instance="tgen-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R4.htm</HtmlFileName>
      <LongName>9952152 - Statement - Consolidated Balance Sheets (Parenthetical)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.tecogen.com/role/ConsolidatedBalanceSheetsParenthetical</Role>
      <ShortName>Consolidated Balance Sheets (Parenthetical)</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>4</Position>
    </Report>
    <Report instance="tgen-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R5.htm</HtmlFileName>
      <LongName>9952153 - Statement - Consolidated Statements of Operations</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.tecogen.com/role/ConsolidatedStatementsofOperations</Role>
      <ShortName>Consolidated Statements of Operations</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>5</Position>
    </Report>
    <Report instance="tgen-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R6.htm</HtmlFileName>
      <LongName>9952154 - Statement - Consolidated Statements of Stockholders' Equity</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.tecogen.com/role/ConsolidatedStatementsofStockholdersEquity</Role>
      <ShortName>Consolidated Statements of Stockholders' Equity</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>6</Position>
    </Report>
    <Report instance="tgen-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R7.htm</HtmlFileName>
      <LongName>9952155 - Statement - Consolidated Statements of Stockholders' Equity Parenthetical</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.tecogen.com/role/ConsolidatedStatementsofStockholdersEquityParenthetical</Role>
      <ShortName>Consolidated Statements of Stockholders' Equity Parenthetical</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>7</Position>
    </Report>
    <Report instance="tgen-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R8.htm</HtmlFileName>
      <LongName>9952156 - Statement - Consolidated Statements of Cash Flows</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.tecogen.com/role/ConsolidatedStatementsofCashFlows</Role>
      <ShortName>Consolidated Statements of Cash Flows</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>8</Position>
    </Report>
    <Report instance="tgen-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R9.htm</HtmlFileName>
      <LongName>9952157 - Disclosure - Nature of business and operations</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.tecogen.com/role/Natureofbusinessandoperations</Role>
      <ShortName>Nature of business and operations</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>9</Position>
    </Report>
    <Report instance="tgen-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R10.htm</HtmlFileName>
      <LongName>9952158 - Disclosure - Summary of significant accounting policies</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.tecogen.com/role/Summaryofsignificantaccountingpolicies</Role>
      <ShortName>Summary of significant accounting policies</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>10</Position>
    </Report>
    <Report instance="tgen-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R11.htm</HtmlFileName>
      <LongName>9952159 - Disclosure - Loss per common share</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.tecogen.com/role/Losspercommonshare</Role>
      <ShortName>Loss per common share</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>11</Position>
    </Report>
    <Report instance="tgen-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R12.htm</HtmlFileName>
      <LongName>9952160 - Disclosure - Acquisition of American DG Energy Inc. (Notes)</LongName>
      <ReportType>Notes</ReportType>
      <Role>http://www.tecogen.com/role/AcquisitionofAmericanDGEnergyIncNotes</Role>
      <ShortName>Acquisition of American DG Energy Inc. (Notes)</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>12</Position>
    </Report>
    <Report instance="tgen-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R13.htm</HtmlFileName>
      <LongName>9952161 - Disclosure - Aegis Contract and Related Asset Acquisition</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.tecogen.com/role/AegisContractandRelatedAssetAcquisition</Role>
      <ShortName>Aegis Contract and Related Asset Acquisition</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>13</Position>
    </Report>
    <Report instance="tgen-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R14.htm</HtmlFileName>
      <LongName>9952162 - Disclosure - Sale of Energy Producing Assets and Goodwill Impairment</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.tecogen.com/role/SaleofEnergyProducingAssetsandGoodwillImpairment</Role>
      <ShortName>Sale of Energy Producing Assets and Goodwill Impairment</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>14</Position>
    </Report>
    <Report instance="tgen-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R15.htm</HtmlFileName>
      <LongName>9952163 - Disclosure - Inventory</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.tecogen.com/role/Inventory</Role>
      <ShortName>Inventory</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>15</Position>
    </Report>
    <Report instance="tgen-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R16.htm</HtmlFileName>
      <LongName>9952164 - Disclosure - Intangible assets and liabilities other than goodwill</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.tecogen.com/role/Intangibleassetsandliabilitiesotherthangoodwill</Role>
      <ShortName>Intangible assets and liabilities other than goodwill</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>16</Position>
    </Report>
    <Report instance="tgen-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R17.htm</HtmlFileName>
      <LongName>9952165 - Disclosure - Property, plant and equipment</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.tecogen.com/role/Propertyplantandequipment</Role>
      <ShortName>Property, plant and equipment</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>17</Position>
    </Report>
    <Report instance="tgen-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R18.htm</HtmlFileName>
      <LongName>9952166 - Disclosure - Goodwill (Notes)</LongName>
      <ReportType>Notes</ReportType>
      <Role>http://www.tecogen.com/role/GoodwillNotes</Role>
      <ShortName>Goodwill (Notes)</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>18</Position>
    </Report>
    <Report instance="tgen-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R19.htm</HtmlFileName>
      <LongName>9952167 - Disclosure - Related Party Notes</LongName>
      <ReportType>Notes</ReportType>
      <Role>http://www.tecogen.com/role/RelatedPartyNotes</Role>
      <ShortName>Related Party Notes</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>19</Position>
    </Report>
    <Report instance="tgen-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R20.htm</HtmlFileName>
      <LongName>9952168 - Disclosure - Commitments and contingencies</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.tecogen.com/role/Commitmentsandcontingencies</Role>
      <ShortName>Commitments and contingencies</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>20</Position>
    </Report>
    <Report instance="tgen-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R21.htm</HtmlFileName>
      <LongName>9952169 - Disclosure - Product warranty</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.tecogen.com/role/Productwarranty</Role>
      <ShortName>Product warranty</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>21</Position>
    </Report>
    <Report instance="tgen-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R22.htm</HtmlFileName>
      <LongName>9952170 - Disclosure - Leases</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.tecogen.com/role/Leases</Role>
      <ShortName>Leases</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>22</Position>
    </Report>
    <Report instance="tgen-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R23.htm</HtmlFileName>
      <LongName>9952171 - Disclosure - Stockholders' equity</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.tecogen.com/role/Stockholdersequity</Role>
      <ShortName>Stockholders' equity</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>23</Position>
    </Report>
    <Report instance="tgen-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R24.htm</HtmlFileName>
      <LongName>9952172 - Disclosure - Fair Value Measurements (Notes)</LongName>
      <ReportType>Notes</ReportType>
      <Role>http://www.tecogen.com/role/FairValueMeasurementsNotes</Role>
      <ShortName>Fair Value Measurements (Notes)</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>24</Position>
    </Report>
    <Report instance="tgen-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R25.htm</HtmlFileName>
      <LongName>9952173 - Disclosure - Retirement plans</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.tecogen.com/role/Retirementplans</Role>
      <ShortName>Retirement plans</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>25</Position>
    </Report>
    <Report instance="tgen-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R26.htm</HtmlFileName>
      <LongName>9952174 - Disclosure - Segments (Notes)</LongName>
      <ReportType>Notes</ReportType>
      <Role>http://www.tecogen.com/role/SegmentsNotes</Role>
      <ShortName>Segments (Notes)</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>26</Position>
    </Report>
    <Report instance="tgen-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R27.htm</HtmlFileName>
      <LongName>9952175 - Disclosure - Income taxes</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.tecogen.com/role/Incometaxes</Role>
      <ShortName>Income taxes</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>27</Position>
    </Report>
    <Report instance="tgen-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R28.htm</HtmlFileName>
      <LongName>9952176 - Disclosure - Subsequent Events</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.tecogen.com/role/SubsequentEvents</Role>
      <ShortName>Subsequent Events</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>28</Position>
    </Report>
    <Report instance="tgen-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R29.htm</HtmlFileName>
      <LongName>995410 - Disclosure - Pay vs Performance Disclosure</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://xbrl.sec.gov/ecd/role/PvpDisclosure</Role>
      <ShortName>Pay vs Performance Disclosure</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>29</Position>
    </Report>
    <Report instance="tgen-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R30.htm</HtmlFileName>
      <LongName>995445 - Disclosure - Insider Trading Arrangements</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements</Role>
      <ShortName>Insider Trading Arrangements</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>30</Position>
    </Report>
    <Report instance="tgen-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R31.htm</HtmlFileName>
      <LongName>995447 - Disclosure - Insider Trading Policies and Procedures</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://xbrl.sec.gov/ecd/role/InsiderTradingPoliciesProc</Role>
      <ShortName>Insider Trading Policies and Procedures</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>31</Position>
    </Report>
    <Report instance="tgen-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R32.htm</HtmlFileName>
      <LongName>995550 - Disclosure - Cybersecurity Risk Management and Strategy Disclosure</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://xbrl.sec.gov/cyd/role/CybersecurityRiskManagementAndStrategyDisclosure</Role>
      <ShortName>Cybersecurity Risk Management and Strategy Disclosure</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>32</Position>
    </Report>
    <Report instance="tgen-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R33.htm</HtmlFileName>
      <LongName>9955511 - Disclosure - Summary of significant accounting policies (Policies)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesPolicies</Role>
      <ShortName>Summary of significant accounting policies (Policies)</ShortName>
      <MenuCategory>Policies</MenuCategory>
      <Position>33</Position>
    </Report>
    <Report instance="tgen-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R34.htm</HtmlFileName>
      <LongName>9955512 - Disclosure - Summary of significant accounting policies Summary of Significant Accounting Policies (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesSummaryofSignificantAccountingPoliciesTables</Role>
      <ShortName>Summary of significant accounting policies Summary of Significant Accounting Policies (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <Position>34</Position>
    </Report>
    <Report instance="tgen-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R35.htm</HtmlFileName>
      <LongName>9955513 - Disclosure - Loss per common share (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.tecogen.com/role/LosspercommonshareTables</Role>
      <ShortName>Loss per common share (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.tecogen.com/role/Losspercommonshare</ParentRole>
      <Position>35</Position>
    </Report>
    <Report instance="tgen-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R36.htm</HtmlFileName>
      <LongName>9955514 - Disclosure - Aegis Contract and Related Asset Acquisition (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.tecogen.com/role/AegisContractandRelatedAssetAcquisitionTables</Role>
      <ShortName>Aegis Contract and Related Asset Acquisition (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.tecogen.com/role/AegisContractandRelatedAssetAcquisition</ParentRole>
      <Position>36</Position>
    </Report>
    <Report instance="tgen-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R37.htm</HtmlFileName>
      <LongName>9955515 - Disclosure - Inventory (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.tecogen.com/role/InventoryTables</Role>
      <ShortName>Inventory (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.tecogen.com/role/Inventory</ParentRole>
      <Position>37</Position>
    </Report>
    <Report instance="tgen-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R38.htm</HtmlFileName>
      <LongName>9955516 - Disclosure - Intangible assets and liabilities other than goodwill (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.tecogen.com/role/IntangibleassetsandliabilitiesotherthangoodwillTables</Role>
      <ShortName>Intangible assets and liabilities other than goodwill (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.tecogen.com/role/Intangibleassetsandliabilitiesotherthangoodwill</ParentRole>
      <Position>38</Position>
    </Report>
    <Report instance="tgen-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R39.htm</HtmlFileName>
      <LongName>9955517 - Disclosure - Property, plant and equipment (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.tecogen.com/role/PropertyplantandequipmentTables</Role>
      <ShortName>Property, plant and equipment (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.tecogen.com/role/Propertyplantandequipment</ParentRole>
      <Position>39</Position>
    </Report>
    <Report instance="tgen-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R40.htm</HtmlFileName>
      <LongName>9955518 - Disclosure - Goodwill (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.tecogen.com/role/GoodwillTables</Role>
      <ShortName>Goodwill (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.tecogen.com/role/GoodwillNotes</ParentRole>
      <Position>40</Position>
    </Report>
    <Report instance="tgen-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R41.htm</HtmlFileName>
      <LongName>9955519 - Disclosure - Product warranty (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.tecogen.com/role/ProductwarrantyTables</Role>
      <ShortName>Product warranty (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.tecogen.com/role/Productwarranty</ParentRole>
      <Position>41</Position>
    </Report>
    <Report instance="tgen-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R42.htm</HtmlFileName>
      <LongName>9955520 - Disclosure - Leases (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.tecogen.com/role/LeasesTables</Role>
      <ShortName>Leases (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.tecogen.com/role/Leases</ParentRole>
      <Position>42</Position>
    </Report>
    <Report instance="tgen-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R43.htm</HtmlFileName>
      <LongName>9955521 - Disclosure - Stockholders' equity (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.tecogen.com/role/StockholdersequityTables</Role>
      <ShortName>Stockholders' equity (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.tecogen.com/role/Stockholdersequity</ParentRole>
      <Position>43</Position>
    </Report>
    <Report instance="tgen-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R44.htm</HtmlFileName>
      <LongName>9955522 - Disclosure - Fair Value Measurements (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.tecogen.com/role/FairValueMeasurementsTables</Role>
      <ShortName>Fair Value Measurements (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.tecogen.com/role/FairValueMeasurementsNotes</ParentRole>
      <Position>44</Position>
    </Report>
    <Report instance="tgen-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R45.htm</HtmlFileName>
      <LongName>9955523 - Disclosure - Segments (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.tecogen.com/role/SegmentsTables</Role>
      <ShortName>Segments (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.tecogen.com/role/SegmentsNotes</ParentRole>
      <Position>45</Position>
    </Report>
    <Report instance="tgen-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R46.htm</HtmlFileName>
      <LongName>9955524 - Disclosure - Income taxes (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.tecogen.com/role/IncometaxesTables</Role>
      <ShortName>Income taxes (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.tecogen.com/role/Incometaxes</ParentRole>
      <Position>46</Position>
    </Report>
    <Report instance="tgen-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R47.htm</HtmlFileName>
      <LongName>9955525 - Disclosure - Nature of business and operations (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.tecogen.com/role/NatureofbusinessandoperationsDetails</Role>
      <ShortName>Nature of business and operations (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.tecogen.com/role/Natureofbusinessandoperations</ParentRole>
      <Position>47</Position>
    </Report>
    <Report instance="tgen-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R48.htm</HtmlFileName>
      <LongName>9955526 - Disclosure - Summary of significant accounting policies - Additional Information (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesAdditionalInformationDetails</Role>
      <ShortName>Summary of significant accounting policies - Additional Information (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>48</Position>
    </Report>
    <Report instance="tgen-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R49.htm</HtmlFileName>
      <LongName>9955527 - Disclosure - Summary of significant accounting policies - Concentration of Credit Risk (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesConcentrationofCreditRiskDetails</Role>
      <ShortName>Summary of significant accounting policies - Concentration of Credit Risk (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>49</Position>
    </Report>
    <Report instance="tgen-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R50.htm</HtmlFileName>
      <LongName>9955528 - Disclosure - Summary of significant accounting policies - Property, Plant and Equipment (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesPropertyPlantandEquipmentDetails</Role>
      <ShortName>Summary of significant accounting policies - Property, Plant and Equipment (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>50</Position>
    </Report>
    <Report instance="tgen-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R51.htm</HtmlFileName>
      <LongName>9955529 - Disclosure - Summary of significant accounting policies - Revenue (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesRevenueDetails</Role>
      <ShortName>Summary of significant accounting policies - Revenue (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesSummaryofSignificantAccountingPoliciesTables</ParentRole>
      <Position>51</Position>
    </Report>
    <Report instance="tgen-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R52.htm</HtmlFileName>
      <LongName>9955530 - Disclosure - Loss per common share - Schedule of Loss Per Common Share, Basic and Diluted (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.tecogen.com/role/LosspercommonshareScheduleofLossPerCommonShareBasicandDilutedDetails</Role>
      <ShortName>Loss per common share - Schedule of Loss Per Common Share, Basic and Diluted (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>52</Position>
    </Report>
    <Report instance="tgen-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R53.htm</HtmlFileName>
      <LongName>9955531 - Disclosure - Acquisition of American DG Energy Inc. (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.tecogen.com/role/AcquisitionofAmericanDGEnergyIncDetails</Role>
      <ShortName>Acquisition of American DG Energy Inc. (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.tecogen.com/role/AcquisitionofAmericanDGEnergyIncNotes</ParentRole>
      <Position>53</Position>
    </Report>
    <Report instance="tgen-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R54.htm</HtmlFileName>
      <LongName>9955532 - Disclosure - Aegis Contract and Related Asset Acquisition (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.tecogen.com/role/AegisContractandRelatedAssetAcquisitionDetails</Role>
      <ShortName>Aegis Contract and Related Asset Acquisition (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.tecogen.com/role/AegisContractandRelatedAssetAcquisitionTables</ParentRole>
      <Position>54</Position>
    </Report>
    <Report instance="tgen-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R55.htm</HtmlFileName>
      <LongName>9955533 - Disclosure - Sale of ADG Assets (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.tecogen.com/role/SaleofADGAssetsDetails</Role>
      <ShortName>Sale of ADG Assets (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>55</Position>
    </Report>
    <Report instance="tgen-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R56.htm</HtmlFileName>
      <LongName>9955534 - Disclosure - Inventory - Summary of Inventory (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.tecogen.com/role/InventorySummaryofInventoryDetails</Role>
      <ShortName>Inventory - Summary of Inventory (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>56</Position>
    </Report>
    <Report instance="tgen-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R57.htm</HtmlFileName>
      <LongName>9955535 - Disclosure - Intangible assets and liabilities other than goodwill - Narrative (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.tecogen.com/role/IntangibleassetsandliabilitiesotherthangoodwillNarrativeDetails</Role>
      <ShortName>Intangible assets and liabilities other than goodwill - Narrative (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.tecogen.com/role/IntangibleassetsandliabilitiesotherthangoodwillTables</ParentRole>
      <Position>57</Position>
    </Report>
    <Report instance="tgen-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R58.htm</HtmlFileName>
      <LongName>9955536 - Disclosure - Intangible assets other than goodwill - Schedule of Intangible Assets (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.tecogen.com/role/IntangibleassetsotherthangoodwillScheduleofIntangibleAssetsDetails</Role>
      <ShortName>Intangible assets other than goodwill - Schedule of Intangible Assets (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>58</Position>
    </Report>
    <Report instance="tgen-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R59.htm</HtmlFileName>
      <LongName>9955537 - Disclosure - Intangible assets and liabilities other than goodwill - Schedule of Aggregate Future Amortization (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.tecogen.com/role/IntangibleassetsandliabilitiesotherthangoodwillScheduleofAggregateFutureAmortizationDetails</Role>
      <ShortName>Intangible assets and liabilities other than goodwill - Schedule of Aggregate Future Amortization (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>59</Position>
    </Report>
    <Report instance="tgen-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R60.htm</HtmlFileName>
      <LongName>9955538 - Disclosure - Property, plant and equipment - Summary of Property and Equipment (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.tecogen.com/role/PropertyplantandequipmentSummaryofPropertyandEquipmentDetails</Role>
      <ShortName>Property, plant and equipment - Summary of Property and Equipment (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>60</Position>
    </Report>
    <Report instance="tgen-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R61.htm</HtmlFileName>
      <LongName>9955539 - Disclosure - Property, plant and equipment - Narrative (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.tecogen.com/role/PropertyplantandequipmentNarrativeDetails</Role>
      <ShortName>Property, plant and equipment - Narrative (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>61</Position>
    </Report>
    <Report instance="tgen-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R62.htm</HtmlFileName>
      <LongName>9955540 - Disclosure - Goodwill - Schedule of Goodwill (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.tecogen.com/role/GoodwillScheduleofGoodwillDetails</Role>
      <ShortName>Goodwill - Schedule of Goodwill (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>62</Position>
    </Report>
    <Report instance="tgen-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R63.htm</HtmlFileName>
      <LongName>9955541 - Disclosure - Goodwill - Narrative (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.tecogen.com/role/GoodwillNarrativeDetails</Role>
      <ShortName>Goodwill - Narrative (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>63</Position>
    </Report>
    <Report instance="tgen-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R64.htm</HtmlFileName>
      <LongName>9955542 - Disclosure - Related Party Notes (Details)</LongName>
      <ReportType>Notes</ReportType>
      <Role>http://www.tecogen.com/role/RelatedPartyNotesDetails</Role>
      <ShortName>Related Party Notes (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.tecogen.com/role/RelatedPartyNotes</ParentRole>
      <Position>64</Position>
    </Report>
    <Report instance="tgen-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R65.htm</HtmlFileName>
      <LongName>9955543 - Disclosure - Commitments and contingencies (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.tecogen.com/role/CommitmentsandcontingenciesDetails</Role>
      <ShortName>Commitments and contingencies (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.tecogen.com/role/Commitmentsandcontingencies</ParentRole>
      <Position>65</Position>
    </Report>
    <Report instance="tgen-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R66.htm</HtmlFileName>
      <LongName>9955544 - Disclosure - Product warranty - Schedule of Product Warranty Reserve (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.tecogen.com/role/ProductwarrantyScheduleofProductWarrantyReserveDetails</Role>
      <ShortName>Product warranty - Schedule of Product Warranty Reserve (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>66</Position>
    </Report>
    <Report instance="tgen-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R67.htm</HtmlFileName>
      <LongName>9955545 - Disclosure - Leases - Narrative (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.tecogen.com/role/LeasesNarrativeDetails</Role>
      <ShortName>Leases - Narrative (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>67</Position>
    </Report>
    <Report instance="tgen-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R68.htm</HtmlFileName>
      <LongName>9955546 - Disclosure - Leases - Supplemental Information for Operating Leases (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.tecogen.com/role/LeasesSupplementalInformationforOperatingLeasesDetails</Role>
      <ShortName>Leases - Supplemental Information for Operating Leases (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>68</Position>
    </Report>
    <Report instance="tgen-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R69.htm</HtmlFileName>
      <LongName>9955547 - Disclosure - Leases - Supplemental Information for Finance Leases (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.tecogen.com/role/LeasesSupplementalInformationforFinanceLeasesDetails</Role>
      <ShortName>Leases - Supplemental Information for Finance Leases (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>69</Position>
    </Report>
    <Report instance="tgen-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R70.htm</HtmlFileName>
      <LongName>9955548 - Disclosure - Leases - Supplemental Balance Sheet Information (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.tecogen.com/role/LeasesSupplementalBalanceSheetInformationDetails</Role>
      <ShortName>Leases - Supplemental Balance Sheet Information (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>70</Position>
    </Report>
    <Report instance="tgen-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R71.htm</HtmlFileName>
      <LongName>9955549 - Disclosure - Leases - Future Minimum Lease Commitments (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.tecogen.com/role/LeasesFutureMinimumLeaseCommitmentsDetails</Role>
      <ShortName>Leases - Future Minimum Lease Commitments (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>71</Position>
    </Report>
    <Report instance="tgen-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R72.htm</HtmlFileName>
      <LongName>9955550 - Disclosure - Stockholders' equity - Common Stock and Receivable from Shareholder (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.tecogen.com/role/StockholdersequityCommonStockandReceivablefromShareholderDetails</Role>
      <ShortName>Stockholders' equity - Common Stock and Receivable from Shareholder (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>72</Position>
    </Report>
    <Report instance="tgen-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R73.htm</HtmlFileName>
      <LongName>9955551 - Disclosure - Stockholders' equity - Stock-Based Compensation (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.tecogen.com/role/StockholdersequityStockBasedCompensationDetails</Role>
      <ShortName>Stockholders' equity - Stock-Based Compensation (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>73</Position>
    </Report>
    <Report instance="tgen-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R74.htm</HtmlFileName>
      <LongName>9955552 - Disclosure - Stockholders' equity - Stock Option Activity (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.tecogen.com/role/StockholdersequityStockOptionActivityDetails</Role>
      <ShortName>Stockholders' equity - Stock Option Activity (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>74</Position>
    </Report>
    <Report instance="tgen-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R75.htm</HtmlFileName>
      <LongName>9955553 - Disclosure - Stockholders' equity - Weighted Average Assumptions (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.tecogen.com/role/StockholdersequityWeightedAverageAssumptionsDetails</Role>
      <ShortName>Stockholders' equity - Weighted Average Assumptions (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>75</Position>
    </Report>
    <Report instance="tgen-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R76.htm</HtmlFileName>
      <LongName>9955554 - Disclosure - Fair Value Measurements - Schedule of Asset Reported in Consolidated Balance Sheet Measured at Fair Value on Recurring Basis (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.tecogen.com/role/FairValueMeasurementsScheduleofAssetReportedinConsolidatedBalanceSheetMeasuredatFairValueonRecurringBasisDetails</Role>
      <ShortName>Fair Value Measurements - Schedule of Asset Reported in Consolidated Balance Sheet Measured at Fair Value on Recurring Basis (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>76</Position>
    </Report>
    <Report instance="tgen-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R77.htm</HtmlFileName>
      <LongName>9955555 - Disclosure - Fair Value Measures and Disclosures - Schedule of Changes in Level 2 Assets (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.tecogen.com/role/FairValueMeasuresandDisclosuresScheduleofChangesinLevel2AssetsDetails</Role>
      <ShortName>Fair Value Measures and Disclosures - Schedule of Changes in Level 2 Assets (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>77</Position>
    </Report>
    <Report instance="tgen-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R78.htm</HtmlFileName>
      <LongName>9955556 - Disclosure - Fair Value Measurements - Narrative (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.tecogen.com/role/FairValueMeasurementsNarrativeDetails</Role>
      <ShortName>Fair Value Measurements - Narrative (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>78</Position>
    </Report>
    <Report instance="tgen-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R79.htm</HtmlFileName>
      <LongName>9955557 - Disclosure - Retirement plans (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.tecogen.com/role/RetirementplansDetails</Role>
      <ShortName>Retirement plans (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.tecogen.com/role/Retirementplans</ParentRole>
      <Position>79</Position>
    </Report>
    <Report instance="tgen-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R80.htm</HtmlFileName>
      <LongName>9955558 - Disclosure - Segments (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.tecogen.com/role/SegmentsDetails</Role>
      <ShortName>Segments (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.tecogen.com/role/SegmentsTables</ParentRole>
      <Position>80</Position>
    </Report>
    <Report instance="tgen-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R81.htm</HtmlFileName>
      <LongName>9955559 - Disclosure - Income taxes - Reconciliation of Federal Statutory Income Tax Provision to Company's Actual Provision (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.tecogen.com/role/IncometaxesReconciliationofFederalStatutoryIncomeTaxProvisiontoCompanysActualProvisionDetails</Role>
      <ShortName>Income taxes - Reconciliation of Federal Statutory Income Tax Provision to Company's Actual Provision (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>81</Position>
    </Report>
    <Report instance="tgen-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R82.htm</HtmlFileName>
      <LongName>9955560 - Disclosure - Income taxes - Schedule of Deferred Tax Assets (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.tecogen.com/role/IncometaxesScheduleofDeferredTaxAssetsDetails</Role>
      <ShortName>Income taxes - Schedule of Deferred Tax Assets (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>82</Position>
    </Report>
    <Report instance="tgen-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R83.htm</HtmlFileName>
      <LongName>9955561 - Disclosure - Income taxes - Narrative (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.tecogen.com/role/IncometaxesNarrativeDetails</Role>
      <ShortName>Income taxes - Narrative (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>83</Position>
    </Report>
    <Report instance="tgen-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R84.htm</HtmlFileName>
      <LongName>9955562 - Disclosure - Subsequent Events (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.tecogen.com/role/SubsequentEventsDetails</Role>
      <ShortName>Subsequent Events (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.tecogen.com/role/SubsequentEvents</ParentRole>
      <Position>84</Position>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <LongName>All Reports</LongName>
      <ReportType>Book</ReportType>
      <ShortName>All Reports</ShortName>
    </Report>
  </MyReports>
  <InputFiles>
    <File doctype="10-K" isDefinitelyFs="true" isUsgaap="true" original="tgen-20241231.htm">tgen-20241231.htm</File>
    <File>tgen-20241231.xsd</File>
    <File>tgen-20241231_cal.xml</File>
    <File>tgen-20241231_def.xml</File>
    <File>tgen-20241231_lab.xml</File>
    <File>tgen-20241231_pre.xml</File>
  </InputFiles>
  <SupplementalFiles/>
  <BaseTaxonomies>
    <BaseTaxonomy items="824">http://fasb.org/us-gaap/2024</BaseTaxonomy>
    <BaseTaxonomy items="15">http://xbrl.sec.gov/cyd/2024</BaseTaxonomy>
    <BaseTaxonomy items="36">http://xbrl.sec.gov/dei/2024</BaseTaxonomy>
    <BaseTaxonomy items="5">http://xbrl.sec.gov/ecd/2024</BaseTaxonomy>
  </BaseTaxonomies>
  <HasPresentationLinkbase>true</HasPresentationLinkbase>
  <HasCalculationLinkbase>true</HasCalculationLinkbase>
</FilingSummary>
</XML>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>JSON
<SEQUENCE>104
<FILENAME>MetaLinks.json
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
{
 "version": "2.2",
 "instance": {
  "tgen-20241231.htm": {
   "nsprefix": "tgen",
   "nsuri": "http://www.tecogen.com/20241231",
   "dts": {
    "inline": {
     "local": [
      "tgen-20241231.htm"
     ]
    },
    "schema": {
     "local": [
      "tgen-20241231.xsd"
     ],
     "remote": [
      "http://www.xbrl.org/2003/xbrl-instance-2003-12-31.xsd",
      "http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd",
      "http://www.xbrl.org/2003/xl-2003-12-31.xsd",
      "http://www.xbrl.org/2003/xlink-2003-12-31.xsd",
      "http://www.xbrl.org/2005/xbrldt-2005.xsd",
      "http://www.xbrl.org/2006/ref-2006-02-27.xsd",
      "http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd",
      "http://www.xbrl.org/lrr/role/net-2009-12-16.xsd",
      "http://www.xbrl.org/lrr/role/reference-2009-12-16.xsd",
      "https://www.xbrl.org/2020/extensible-enumerations-2.0.xsd",
      "https://www.xbrl.org/dtr/type/2020-01-21/types.xsd",
      "https://www.xbrl.org/dtr/type/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/cyd/2024/cyd-2024.xsd",
      "https://xbrl.sec.gov/cyd/2024/cyd-af-2024.xsd",
      "https://xbrl.sec.gov/cyd/2024/cyd-af-sub-2024.xsd",
      "https://xbrl.sec.gov/dei/2024/dei-2024.xsd",
      "https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd",
      "https://xbrl.sec.gov/stpr/2024/stpr-2024.xsd"
     ]
    },
    "calculationLink": {
     "local": [
      "tgen-20241231_cal.xml"
     ]
    },
    "definitionLink": {
     "local": [
      "tgen-20241231_def.xml"
     ]
    },
    "labelLink": {
     "local": [
      "tgen-20241231_lab.xml"
     ]
    },
    "presentationLink": {
     "local": [
      "tgen-20241231_pre.xml"
     ]
    }
   },
   "keyStandard": 352,
   "keyCustom": 119,
   "axisStandard": 34,
   "axisCustom": 1,
   "memberStandard": 41,
   "memberCustom": 31,
   "hidden": {
    "total": 10,
    "http://fasb.org/us-gaap/2024": 6,
    "http://xbrl.sec.gov/dei/2024": 4
   },
   "contextCount": 232,
   "entityCount": 1,
   "segmentCount": 76,
   "elementCount": 857,
   "unitCount": 16,
   "baseTaxonomies": {
    "http://fasb.org/us-gaap/2024": 824,
    "http://xbrl.sec.gov/dei/2024": 36,
    "http://xbrl.sec.gov/cyd/2024": 15,
    "http://xbrl.sec.gov/ecd/2024": 5
   },
   "report": {
    "R1": {
     "role": "http://www.tecogen.com/role/Cover",
     "longName": "0000001 - Document - Cover",
     "shortName": "Cover",
     "isDefault": "true",
     "groupType": "document",
     "subGroupType": "",
     "menuCat": "Cover",
     "order": "1",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "dei:DocumentType",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "dei:DocumentType",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R2": {
     "role": "http://www.tecogen.com/role/AuditInformation",
     "longName": "0000002 - Document - Audit Information",
     "shortName": "Audit Information",
     "isDefault": "false",
     "groupType": "document",
     "subGroupType": "",
     "menuCat": "Cover",
     "order": "2",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "dei:AuditorName",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "dei:AuditorName",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R3": {
     "role": "http://www.tecogen.com/role/ConsolidatedBalanceSheets",
     "longName": "9952151 - Statement - Consolidated Balance Sheets",
     "shortName": "Consolidated Balance Sheets",
     "isDefault": "false",
     "groupType": "statement",
     "subGroupType": "",
     "menuCat": "Statements",
     "order": "3",
     "firstAnchor": {
      "contextRef": "c-5",
      "name": "us-gaap:CashAndCashEquivalentsAtCarryingValue",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "0",
      "ancestors": [
       "us-gaap:CashAndCashEquivalentsAtCarryingValue",
       "span",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-5",
      "name": "us-gaap:AccountsReceivableNetCurrent",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "0",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "unique": true
     }
    },
    "R4": {
     "role": "http://www.tecogen.com/role/ConsolidatedBalanceSheetsParenthetical",
     "longName": "9952152 - Statement - Consolidated Balance Sheets (Parenthetical)",
     "shortName": "Consolidated Balance Sheets (Parenthetical)",
     "isDefault": "false",
     "groupType": "statement",
     "subGroupType": "parenthetical",
     "menuCat": "Statements",
     "order": "4",
     "firstAnchor": {
      "contextRef": "c-5",
      "name": "us-gaap:CommonStockParOrStatedValuePerShare",
      "unitRef": "usdPerShare",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "3",
      "ancestors": [
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-5",
      "name": "us-gaap:CommonStockSharesAuthorized",
      "unitRef": "shares",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "0",
      "ancestors": [
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "unique": true
     }
    },
    "R5": {
     "role": "http://www.tecogen.com/role/ConsolidatedStatementsofOperations",
     "longName": "9952153 - Statement - Consolidated Statements of Operations",
     "shortName": "Consolidated Statements of Operations",
     "isDefault": "false",
     "groupType": "statement",
     "subGroupType": "",
     "menuCat": "Statements",
     "order": "5",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "0",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:GeneralAndAdministrativeExpense",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "0",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "unique": true
     }
    },
    "R6": {
     "role": "http://www.tecogen.com/role/ConsolidatedStatementsofStockholdersEquity",
     "longName": "9952154 - Statement - Consolidated Statements of Stockholders' Equity",
     "shortName": "Consolidated Statements of Stockholders' Equity",
     "isDefault": "false",
     "groupType": "statement",
     "subGroupType": "",
     "menuCat": "Statements",
     "order": "6",
     "firstAnchor": {
      "contextRef": "c-14",
      "name": "us-gaap:SharesOutstanding",
      "unitRef": "shares",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "INF",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-14",
      "name": "us-gaap:SharesOutstanding",
      "unitRef": "shares",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "INF",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R7": {
     "role": "http://www.tecogen.com/role/ConsolidatedStatementsofStockholdersEquityParenthetical",
     "longName": "9952155 - Statement - Consolidated Statements of Stockholders' Equity Parenthetical",
     "shortName": "Consolidated Statements of Stockholders' Equity Parenthetical",
     "isDefault": "false",
     "groupType": "statement",
     "subGroupType": "parenthetical",
     "menuCat": "Statements",
     "order": "7",
     "firstAnchor": {
      "contextRef": "c-5",
      "name": "us-gaap:CommonStockParOrStatedValuePerShare",
      "unitRef": "usdPerShare",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "3",
      "ancestors": [
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true
     },
     "uniqueAnchor": null
    },
    "R8": {
     "role": "http://www.tecogen.com/role/ConsolidatedStatementsofCashFlows",
     "longName": "9952156 - Statement - Consolidated Statements of Cash Flows",
     "shortName": "Consolidated Statements of Cash Flows",
     "isDefault": "false",
     "groupType": "statement",
     "subGroupType": "",
     "menuCat": "Statements",
     "order": "8",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:ProfitLoss",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "0",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:DepreciationDepletionAndAmortization",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "0",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "unique": true
     }
    },
    "R9": {
     "role": "http://www.tecogen.com/role/Natureofbusinessandoperations",
     "longName": "9952157 - Disclosure - Nature of business and operations",
     "shortName": "Nature of business and operations",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "9",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:NatureOfOperations",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:NatureOfOperations",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R10": {
     "role": "http://www.tecogen.com/role/Summaryofsignificantaccountingpolicies",
     "longName": "9952158 - Disclosure - Summary of significant accounting policies",
     "shortName": "Summary of significant accounting policies",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "10",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:BasisOfPresentationAndSignificantAccountingPoliciesTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:BasisOfPresentationAndSignificantAccountingPoliciesTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R11": {
     "role": "http://www.tecogen.com/role/Losspercommonshare",
     "longName": "9952159 - Disclosure - Loss per common share",
     "shortName": "Loss per common share",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "11",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:EarningsPerShareTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:EarningsPerShareTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R12": {
     "role": "http://www.tecogen.com/role/AcquisitionofAmericanDGEnergyIncNotes",
     "longName": "9952160 - Disclosure - Acquisition of American DG Energy Inc. (Notes)",
     "shortName": "Acquisition of American DG Energy Inc. (Notes)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "12",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:MergersAcquisitionsAndDispositionsDisclosuresTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:MergersAcquisitionsAndDispositionsDisclosuresTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R13": {
     "role": "http://www.tecogen.com/role/AegisContractandRelatedAssetAcquisition",
     "longName": "9952161 - Disclosure - Aegis Contract and Related Asset Acquisition",
     "shortName": "Aegis Contract and Related Asset Acquisition",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "13",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:BusinessCombinationDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:BusinessCombinationDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R14": {
     "role": "http://www.tecogen.com/role/SaleofEnergyProducingAssetsandGoodwillImpairment",
     "longName": "9952162 - Disclosure - Sale of Energy Producing Assets and Goodwill Impairment",
     "shortName": "Sale of Energy Producing Assets and Goodwill Impairment",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "14",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:DisposalGroupsIncludingDiscontinuedOperationsDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:DisposalGroupsIncludingDiscontinuedOperationsDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R15": {
     "role": "http://www.tecogen.com/role/Inventory",
     "longName": "9952163 - Disclosure - Inventory",
     "shortName": "Inventory",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "15",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:InventoryDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:InventoryDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R16": {
     "role": "http://www.tecogen.com/role/Intangibleassetsandliabilitiesotherthangoodwill",
     "longName": "9952164 - Disclosure - Intangible assets and liabilities other than goodwill",
     "shortName": "Intangible assets and liabilities other than goodwill",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "16",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:IntangibleAssetsDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:IntangibleAssetsDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R17": {
     "role": "http://www.tecogen.com/role/Propertyplantandequipment",
     "longName": "9952165 - Disclosure - Property, plant and equipment",
     "shortName": "Property, plant and equipment",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "17",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R18": {
     "role": "http://www.tecogen.com/role/GoodwillNotes",
     "longName": "9952166 - Disclosure - Goodwill (Notes)",
     "shortName": "Goodwill (Notes)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "18",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:GoodwillDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:GoodwillDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R19": {
     "role": "http://www.tecogen.com/role/RelatedPartyNotes",
     "longName": "9952167 - Disclosure - Related Party Notes",
     "shortName": "Related Party Notes",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "19",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:DebtDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:DebtDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R20": {
     "role": "http://www.tecogen.com/role/Commitmentsandcontingencies",
     "longName": "9952168 - Disclosure - Commitments and contingencies",
     "shortName": "Commitments and contingencies",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "20",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:CommitmentsContingenciesAndGuaranteesTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:CommitmentsContingenciesAndGuaranteesTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R21": {
     "role": "http://www.tecogen.com/role/Productwarranty",
     "longName": "9952169 - Disclosure - Product warranty",
     "shortName": "Product warranty",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "21",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:ProductWarrantyDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:ProductWarrantyDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R22": {
     "role": "http://www.tecogen.com/role/Leases",
     "longName": "9952170 - Disclosure - Leases",
     "shortName": "Leases",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "22",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:LesseeOperatingLeasesTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:LesseeOperatingLeasesTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R23": {
     "role": "http://www.tecogen.com/role/Stockholdersequity",
     "longName": "9952171 - Disclosure - Stockholders' equity",
     "shortName": "Stockholders' equity",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "23",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:ShareholdersEquityAndShareBasedPaymentsTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:ShareholdersEquityAndShareBasedPaymentsTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R24": {
     "role": "http://www.tecogen.com/role/FairValueMeasurementsNotes",
     "longName": "9952172 - Disclosure - Fair Value Measurements (Notes)",
     "shortName": "Fair Value Measurements (Notes)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "24",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:FairValueDisclosuresTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:FairValueDisclosuresTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R25": {
     "role": "http://www.tecogen.com/role/Retirementplans",
     "longName": "9952173 - Disclosure - Retirement plans",
     "shortName": "Retirement plans",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "25",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:CompensationAndEmployeeBenefitPlansTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:CompensationAndEmployeeBenefitPlansTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R26": {
     "role": "http://www.tecogen.com/role/SegmentsNotes",
     "longName": "9952174 - Disclosure - Segments (Notes)",
     "shortName": "Segments (Notes)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "26",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:SegmentReportingDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:SegmentReportingDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R27": {
     "role": "http://www.tecogen.com/role/Incometaxes",
     "longName": "9952175 - Disclosure - Income taxes",
     "shortName": "Income taxes",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "27",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:IncomeTaxDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:IncomeTaxDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R28": {
     "role": "http://www.tecogen.com/role/SubsequentEvents",
     "longName": "9952176 - Disclosure - Subsequent Events",
     "shortName": "Subsequent Events",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "28",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:SubsequentEventsTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:SubsequentEventsTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R29": {
     "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": "29",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:NetIncomeLoss",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "0",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true
     },
     "uniqueAnchor": null
    },
    "R30": {
     "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": "30",
     "firstAnchor": {
      "contextRef": "c-4",
      "name": "ecd:Rule10b51ArrAdoptedFlag",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ecd:NonRule10b51ArrAdoptedFlag",
       "ecd:Rule10b51ArrTrmntdFlag",
       "ecd:NonRule10b51ArrTrmntdFlag",
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-4",
      "name": "ecd:Rule10b51ArrAdoptedFlag",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ecd:NonRule10b51ArrAdoptedFlag",
       "ecd:Rule10b51ArrTrmntdFlag",
       "ecd:NonRule10b51ArrTrmntdFlag",
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R31": {
     "role": "http://xbrl.sec.gov/ecd/role/InsiderTradingPoliciesProc",
     "longName": "995447 - Disclosure - Insider Trading Policies and Procedures",
     "shortName": "Insider Trading Policies and Procedures",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "31",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "ecd:InsiderTrdPoliciesProcAdoptedFlag",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "ecd:InsiderTrdPoliciesProcAdoptedFlag",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R32": {
     "role": "http://xbrl.sec.gov/cyd/role/CybersecurityRiskManagementAndStrategyDisclosure",
     "longName": "995550 - Disclosure - Cybersecurity Risk Management and Strategy Disclosure",
     "shortName": "Cybersecurity Risk Management and Strategy Disclosure",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "32",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "cyd:CybersecurityRiskManagementProcessesForAssessingIdentifyingAndManagingThreatsTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "cyd:CybersecurityRiskManagementProcessesForAssessingIdentifyingAndManagingThreatsTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R33": {
     "role": "http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesPolicies",
     "longName": "9955511 - Disclosure - Summary of significant accounting policies (Policies)",
     "shortName": "Summary of significant accounting policies (Policies)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "policies",
     "menuCat": "Policies",
     "order": "33",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "tgen:PrinciplesOfConsolidationAndBasisOfPresentationPolicyTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "tgen:PrinciplesOfConsolidationAndBasisOfPresentationPolicyTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R34": {
     "role": "http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesSummaryofSignificantAccountingPoliciesTables",
     "longName": "9955512 - Disclosure - Summary of significant accounting policies Summary of Significant Accounting Policies (Tables)",
     "shortName": "Summary of significant accounting policies Summary of Significant Accounting Policies (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "34",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:DisaggregationOfRevenueTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:DisaggregationOfRevenueTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R35": {
     "role": "http://www.tecogen.com/role/LosspercommonshareTables",
     "longName": "9955513 - Disclosure - Loss per common share (Tables)",
     "shortName": "Loss per common share (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "35",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R36": {
     "role": "http://www.tecogen.com/role/AegisContractandRelatedAssetAcquisitionTables",
     "longName": "9955514 - Disclosure - Aegis Contract and Related Asset Acquisition (Tables)",
     "shortName": "Aegis Contract and Related Asset Acquisition (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "36",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:AssetAcquisitionTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:AssetAcquisitionTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R37": {
     "role": "http://www.tecogen.com/role/InventoryTables",
     "longName": "9955515 - Disclosure - Inventory (Tables)",
     "shortName": "Inventory (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "37",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:ScheduleOfInventoryCurrentTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:ScheduleOfInventoryCurrentTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R38": {
     "role": "http://www.tecogen.com/role/IntangibleassetsandliabilitiesotherthangoodwillTables",
     "longName": "9955516 - Disclosure - Intangible assets and liabilities other than goodwill (Tables)",
     "shortName": "Intangible assets and liabilities other than goodwill (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "38",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R39": {
     "role": "http://www.tecogen.com/role/PropertyplantandequipmentTables",
     "longName": "9955517 - Disclosure - Property, plant and equipment (Tables)",
     "shortName": "Property, plant and equipment (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "39",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:PropertyPlantAndEquipmentTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:PropertyPlantAndEquipmentTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R40": {
     "role": "http://www.tecogen.com/role/GoodwillTables",
     "longName": "9955518 - Disclosure - Goodwill (Tables)",
     "shortName": "Goodwill (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "40",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:ScheduleOfGoodwillTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:ScheduleOfGoodwillTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R41": {
     "role": "http://www.tecogen.com/role/ProductwarrantyTables",
     "longName": "9955519 - Disclosure - Product warranty (Tables)",
     "shortName": "Product warranty (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "41",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:ScheduleOfProductWarrantyLiabilityTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:ScheduleOfProductWarrantyLiabilityTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R42": {
     "role": "http://www.tecogen.com/role/LeasesTables",
     "longName": "9955520 - Disclosure - Leases (Tables)",
     "shortName": "Leases (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "42",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:LeaseCostTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:LeaseCostTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R43": {
     "role": "http://www.tecogen.com/role/StockholdersequityTables",
     "longName": "9955521 - Disclosure - Stockholders' equity (Tables)",
     "shortName": "Stockholders' equity (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "43",
     "firstAnchor": {
      "contextRef": "c-171",
      "name": "us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-171",
      "name": "us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R44": {
     "role": "http://www.tecogen.com/role/FairValueMeasurementsTables",
     "longName": "9955522 - Disclosure - Fair Value Measurements (Tables)",
     "shortName": "Fair Value Measurements (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "44",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:FairValueAssetsMeasuredOnRecurringBasisTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:FairValueAssetsMeasuredOnRecurringBasisTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R45": {
     "role": "http://www.tecogen.com/role/SegmentsTables",
     "longName": "9955523 - Disclosure - Segments (Tables)",
     "shortName": "Segments (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "45",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:ScheduleOfSegmentReportingInformationBySegmentTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:ScheduleOfSegmentReportingInformationBySegmentTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R46": {
     "role": "http://www.tecogen.com/role/IncometaxesTables",
     "longName": "9955524 - Disclosure - Income taxes (Tables)",
     "shortName": "Income taxes (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "46",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R47": {
     "role": "http://www.tecogen.com/role/NatureofbusinessandoperationsDetails",
     "longName": "9955525 - Disclosure - Nature of business and operations (Details)",
     "shortName": "Nature of business and operations (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "47",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:NumberOfOperatingSegments",
      "unitRef": "segment",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "0",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-5",
      "name": "tgen:WorkingCapitalNet",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "0",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "unique": true
     }
    },
    "R48": {
     "role": "http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesAdditionalInformationDetails",
     "longName": "9955526 - 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": "48",
     "firstAnchor": {
      "contextRef": "c-5",
      "name": "tgen:EmployeeRetentionCreditCurrent",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "0",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-5",
      "name": "tgen:PercentageOfOwnedJointVenture",
      "unitRef": "number",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "3",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "tgen:PrinciplesOfConsolidationAndBasisOfPresentationPolicyTextBlock",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "unique": true
     }
    },
    "R49": {
     "role": "http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesConcentrationofCreditRiskDetails",
     "longName": "9955527 - Disclosure - Summary of significant accounting policies - Concentration of Credit Risk (Details)",
     "shortName": "Summary of significant accounting policies - Concentration of Credit Risk (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "49",
     "firstAnchor": {
      "contextRef": "c-5",
      "name": "us-gaap:CashFDICInsuredAmount",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "INF",
      "ancestors": [
       "span",
       "div",
       "us-gaap:ConcentrationRiskCreditRisk",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-5",
      "name": "us-gaap:CashFDICInsuredAmount",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "INF",
      "ancestors": [
       "span",
       "div",
       "us-gaap:ConcentrationRiskCreditRisk",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R50": {
     "role": "http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesPropertyPlantandEquipmentDetails",
     "longName": "9955528 - Disclosure - Summary of significant accounting policies - Property, Plant and Equipment (Details)",
     "shortName": "Summary of significant accounting policies - Property, Plant and Equipment (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "50",
     "firstAnchor": {
      "contextRef": "c-37",
      "name": "us-gaap:PropertyPlantAndEquipmentUsefulLife",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "us-gaap:PropertyPlantAndEquipmentPolicyTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true
     },
     "uniqueAnchor": null
    },
    "R51": {
     "role": "http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesRevenueDetails",
     "longName": "9955529 - Disclosure - Summary of significant accounting policies - Revenue (Details)",
     "shortName": "Summary of significant accounting policies - Revenue (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "51",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "0",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-40",
      "name": "us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "0",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:DisaggregationOfRevenueTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "unique": true
     }
    },
    "R52": {
     "role": "http://www.tecogen.com/role/LosspercommonshareScheduleofLossPerCommonShareBasicandDilutedDetails",
     "longName": "9955530 - Disclosure - Loss per common share - Schedule of Loss Per Common Share, Basic and Diluted (Details)",
     "shortName": "Loss per common share - Schedule of Loss Per Common Share, Basic and Diluted (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "52",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:NetIncomeLoss",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "0",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-56",
      "name": "us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment",
      "unitRef": "shares",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "0",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "ix:continuation",
       "us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "unique": true
     }
    },
    "R53": {
     "role": "http://www.tecogen.com/role/AcquisitionofAmericanDGEnergyIncDetails",
     "longName": "9955531 - Disclosure - Acquisition of American DG Energy Inc. (Details)",
     "shortName": "Acquisition of American DG Energy Inc. (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "53",
     "firstAnchor": {
      "contextRef": "c-5",
      "name": "us-gaap:Goodwill",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "0",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-5",
      "name": "us-gaap:BusinessAcquisitionPurchasePriceAllocationGoodwillExpectedTaxDeductibleAmount",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "0",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "unique": true
     }
    },
    "R54": {
     "role": "http://www.tecogen.com/role/AegisContractandRelatedAssetAcquisitionDetails",
     "longName": "9955532 - Disclosure - Aegis Contract and Related Asset Acquisition (Details)",
     "shortName": "Aegis Contract and Related Asset Acquisition (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "54",
     "firstAnchor": {
      "contextRef": "c-13",
      "name": "us-gaap:GoodwillAcquiredDuringPeriod",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "0",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfGoodwillTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-60",
      "name": "tgen:AssetAcquisitionMaintenanceAgreementsNumberOfCogenerationSystems",
      "unitRef": "cogenerationsystem",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "0",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "unique": true
     }
    },
    "R55": {
     "role": "http://www.tecogen.com/role/SaleofADGAssetsDetails",
     "longName": "9955533 - Disclosure - Sale of ADG Assets (Details)",
     "shortName": "Sale of ADG Assets (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "55",
     "firstAnchor": {
      "contextRef": "c-73",
      "name": "us-gaap:ProceedsFromSaleOfProductiveAssets",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-6",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-73",
      "name": "us-gaap:ProceedsFromSaleOfProductiveAssets",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-6",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R56": {
     "role": "http://www.tecogen.com/role/InventorySummaryofInventoryDetails",
     "longName": "9955534 - Disclosure - Inventory - Summary of Inventory (Details)",
     "shortName": "Inventory - Summary of Inventory (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "56",
     "firstAnchor": {
      "contextRef": "c-5",
      "name": "us-gaap:InventoryRawMaterialsNetOfReserves",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "0",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "ix:continuation",
       "us-gaap:ScheduleOfInventoryCurrentTableTextBlock",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-5",
      "name": "us-gaap:InventoryRawMaterialsNetOfReserves",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "0",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "ix:continuation",
       "us-gaap:ScheduleOfInventoryCurrentTableTextBlock",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R57": {
     "role": "http://www.tecogen.com/role/IntangibleassetsandliabilitiesotherthangoodwillNarrativeDetails",
     "longName": "9955535 - Disclosure - Intangible assets and liabilities other than goodwill - Narrative (Details)",
     "shortName": "Intangible assets and liabilities other than goodwill - Narrative (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "57",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:AmortizationOfIntangibleAssets",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "0",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:AmortizationOfIntangibleAssets",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "0",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R58": {
     "role": "http://www.tecogen.com/role/IntangibleassetsotherthangoodwillScheduleofIntangibleAssetsDetails",
     "longName": "9955536 - Disclosure - Intangible assets other than goodwill - Schedule of Intangible Assets (Details)",
     "shortName": "Intangible assets other than goodwill - Schedule of Intangible Assets (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "58",
     "firstAnchor": {
      "contextRef": "c-5",
      "name": "us-gaap:IntangibleAssetsGrossExcludingGoodwill",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "0",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-5",
      "name": "us-gaap:IntangibleAssetsGrossExcludingGoodwill",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "0",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R59": {
     "role": "http://www.tecogen.com/role/IntangibleassetsandliabilitiesotherthangoodwillScheduleofAggregateFutureAmortizationDetails",
     "longName": "9955537 - Disclosure - Intangible assets and liabilities other than goodwill - Schedule of Aggregate Future Amortization (Details)",
     "shortName": "Intangible assets and liabilities other than goodwill - Schedule of Aggregate Future Amortization (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "59",
     "firstAnchor": {
      "contextRef": "c-5",
      "name": "us-gaap:FiniteLivedIntangibleAssetsNet",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "0",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-5",
      "name": "tgen:FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseNextRolling12Months",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "0",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "ix:continuation",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "unique": true
     }
    },
    "R60": {
     "role": "http://www.tecogen.com/role/PropertyplantandequipmentSummaryofPropertyandEquipmentDetails",
     "longName": "9955538 - Disclosure - Property, plant and equipment - Summary of Property and Equipment (Details)",
     "shortName": "Property, plant and equipment - Summary of Property and Equipment (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "60",
     "firstAnchor": {
      "contextRef": "c-5",
      "name": "us-gaap:PropertyPlantAndEquipmentGross",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "0",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:PropertyPlantAndEquipmentTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-5",
      "name": "us-gaap:PropertyPlantAndEquipmentGross",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "0",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:PropertyPlantAndEquipmentTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R61": {
     "role": "http://www.tecogen.com/role/PropertyplantandequipmentNarrativeDetails",
     "longName": "9955539 - Disclosure - Property, plant and equipment - Narrative (Details)",
     "shortName": "Property, plant and equipment - Narrative (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "61",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "tgen:DepreciationDepletionandAmortizationPropertyPlantandEquipment",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "0",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "tgen:DepreciationDepletionandAmortizationPropertyPlantandEquipment",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "0",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R62": {
     "role": "http://www.tecogen.com/role/GoodwillScheduleofGoodwillDetails",
     "longName": "9955540 - Disclosure - Goodwill - Schedule of Goodwill (Details)",
     "shortName": "Goodwill - Schedule of Goodwill (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "62",
     "firstAnchor": {
      "contextRef": "c-6",
      "name": "us-gaap:Goodwill",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "0",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-13",
      "name": "us-gaap:GoodwillPurchaseAccountingAdjustments",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "0",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfGoodwillTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "unique": true
     }
    },
    "R63": {
     "role": "http://www.tecogen.com/role/GoodwillNarrativeDetails",
     "longName": "9955541 - Disclosure - Goodwill - Narrative (Details)",
     "shortName": "Goodwill - Narrative (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "63",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:GoodwillImpairmentLoss",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "0",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true
     },
     "uniqueAnchor": null
    },
    "R64": {
     "role": "http://www.tecogen.com/role/RelatedPartyNotesDetails",
     "longName": "9955542 - Disclosure - Related Party Notes (Details)",
     "shortName": "Related Party Notes (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "64",
     "firstAnchor": {
      "contextRef": "c-5",
      "name": "us-gaap:NotesPayable",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "0",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-130",
      "name": "us-gaap:RelatedPartyTransactionRate",
      "unitRef": "number",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "4",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "unique": true
     }
    },
    "R65": {
     "role": "http://www.tecogen.com/role/CommitmentsandcontingenciesDetails",
     "longName": "9955543 - Disclosure - Commitments and contingencies (Details)",
     "shortName": "Commitments and contingencies (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "65",
     "firstAnchor": {
      "contextRef": "c-144",
      "name": "tgen:PeriodOfSeveranceBenefitsForKeyManagementEmployeesUnderThePlan",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-144",
      "name": "tgen:PeriodOfSeveranceBenefitsForKeyManagementEmployeesUnderThePlan",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R66": {
     "role": "http://www.tecogen.com/role/ProductwarrantyScheduleofProductWarrantyReserveDetails",
     "longName": "9955544 - Disclosure - Product warranty - Schedule of Product Warranty Reserve (Details)",
     "shortName": "Product warranty - Schedule of Product Warranty Reserve (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "66",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "tgen:ProductWarrantyPeriod",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "tgen:ProductWarrantyPeriod",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R67": {
     "role": "http://www.tecogen.com/role/LeasesNarrativeDetails",
     "longName": "9955545 - Disclosure - Leases - Narrative (Details)",
     "shortName": "Leases - Narrative (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "67",
     "firstAnchor": {
      "contextRef": "c-145",
      "name": "tgen:LesseeOperatingLeaseNumberOfLeaseAgreements",
      "unitRef": "leaseagreement",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "0",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-145",
      "name": "tgen:LesseeOperatingLeaseNumberOfLeaseAgreements",
      "unitRef": "leaseagreement",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "0",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R68": {
     "role": "http://www.tecogen.com/role/LeasesSupplementalInformationforOperatingLeasesDetails",
     "longName": "9955546 - Disclosure - Leases - Supplemental Information for Operating Leases (Details)",
     "shortName": "Leases - Supplemental Information for Operating Leases (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "68",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:OperatingLeasePayments",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "0",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:LeaseCostTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:OperatingLeasePayments",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "0",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:LeaseCostTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R69": {
     "role": "http://www.tecogen.com/role/LeasesSupplementalInformationforFinanceLeasesDetails",
     "longName": "9955547 - Disclosure - Leases - Supplemental Information for Finance Leases (Details)",
     "shortName": "Leases - Supplemental Information for Finance Leases (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "69",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "tgen:FinanceLeasePrincipalPaymentsAndOtherCosts",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "0",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "ix:continuation",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "tgen:FinanceLeasePrincipalPaymentsAndOtherCosts",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "0",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "ix:continuation",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R70": {
     "role": "http://www.tecogen.com/role/LeasesSupplementalBalanceSheetInformationDetails",
     "longName": "9955548 - Disclosure - Leases - Supplemental Balance Sheet Information (Details)",
     "shortName": "Leases - Supplemental Balance Sheet Information (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "70",
     "firstAnchor": {
      "contextRef": "c-5",
      "name": "us-gaap:OperatingLeaseRightOfUseAsset",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "0",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "tgen:AssetsAndLiabilitiesLesseeTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-155",
      "name": "us-gaap:FinanceLeaseRightOfUseAsset",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "0",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "tgen:AssetsAndLiabilitiesLesseeTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "unique": true
     }
    },
    "R71": {
     "role": "http://www.tecogen.com/role/LeasesFutureMinimumLeaseCommitmentsDetails",
     "longName": "9955549 - Disclosure - Leases - Future Minimum Lease Commitments (Details)",
     "shortName": "Leases - Future Minimum Lease Commitments (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "71",
     "firstAnchor": {
      "contextRef": "c-5",
      "name": "us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "0",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "ix:continuation",
       "us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-5",
      "name": "us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "0",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "ix:continuation",
       "us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R72": {
     "role": "http://www.tecogen.com/role/StockholdersequityCommonStockandReceivablefromShareholderDetails",
     "longName": "9955550 - Disclosure - Stockholders' equity - Common Stock and Receivable from Shareholder (Details)",
     "shortName": "Stockholders' equity - Common Stock and Receivable from Shareholder (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "72",
     "firstAnchor": {
      "contextRef": "c-5",
      "name": "us-gaap:CommonStockSharesOutstanding",
      "unitRef": "shares",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "0",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-159",
      "name": "us-gaap:PreferredStockSharesAuthorized",
      "unitRef": "shares",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "INF",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "unique": true
     }
    },
    "R73": {
     "role": "http://www.tecogen.com/role/StockholdersequityStockBasedCompensationDetails",
     "longName": "9955551 - Disclosure - Stockholders' equity - Stock-Based Compensation (Details)",
     "shortName": "Stockholders' equity - Stock-Based Compensation (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "73",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "tgen:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansGrantedExercisePriceRangeLowerRangeLimit",
      "unitRef": "usdPerShare",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "2",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "tgen:ShareBasedCompensationArrangementbyShareBasedPaymentAwardHistoricalForfeitureRate",
      "unitRef": "number",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "2",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "unique": true
     }
    },
    "R74": {
     "role": "http://www.tecogen.com/role/StockholdersequityStockOptionActivityDetails",
     "longName": "9955552 - Disclosure - Stockholders' equity - Stock Option Activity (Details)",
     "shortName": "Stockholders' equity - Stock Option Activity (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "74",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit",
      "unitRef": "usdPerShare",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "2",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit",
      "unitRef": "usdPerShare",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "2",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R75": {
     "role": "http://www.tecogen.com/role/StockholdersequityWeightedAverageAssumptionsDetails",
     "longName": "9955553 - Disclosure - Stockholders' equity - Weighted Average Assumptions (Details)",
     "shortName": "Stockholders' equity - Weighted Average Assumptions (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "75",
     "firstAnchor": {
      "contextRef": "c-176",
      "name": "us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-176",
      "name": "us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R76": {
     "role": "http://www.tecogen.com/role/FairValueMeasurementsScheduleofAssetReportedinConsolidatedBalanceSheetMeasuredatFairValueonRecurringBasisDetails",
     "longName": "9955554 - Disclosure - Fair Value Measurements - Schedule of Asset Reported in Consolidated Balance Sheet Measured at Fair Value on Recurring Basis (Details)",
     "shortName": "Fair Value Measurements - Schedule of Asset Reported in Consolidated Balance Sheet Measured at Fair Value on Recurring Basis (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "76",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "0",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "ix:continuation",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "0",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "ix:continuation",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R77": {
     "role": "http://www.tecogen.com/role/FairValueMeasuresandDisclosuresScheduleofChangesinLevel2AssetsDetails",
     "longName": "9955555 - Disclosure - Fair Value Measures and Disclosures - Schedule of Changes in Level 2 Assets (Details)",
     "shortName": "Fair Value Measures and Disclosures - Schedule of Changes in Level 2 Assets (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "77",
     "firstAnchor": {
      "contextRef": "c-192",
      "name": "us-gaap:AssetsFairValueDisclosure",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "0",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:FairValueAssetsMeasuredOnRecurringBasisTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true
     },
     "uniqueAnchor": null
    },
    "R78": {
     "role": "http://www.tecogen.com/role/FairValueMeasurementsNarrativeDetails",
     "longName": "9955556 - Disclosure - Fair Value Measurements - Narrative (Details)",
     "shortName": "Fair Value Measurements - Narrative (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "78",
     "firstAnchor": {
      "contextRef": "c-204",
      "name": "tgen:MaintenanceAgreementsApplicablePercentage",
      "unitRef": "number",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "2",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-204",
      "name": "tgen:MaintenanceAgreementsApplicablePercentage",
      "unitRef": "number",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "2",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R79": {
     "role": "http://www.tecogen.com/role/RetirementplansDetails",
     "longName": "9955557 - Disclosure - Retirement plans (Details)",
     "shortName": "Retirement plans (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "79",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:DefinedContributionPlanEmployerMatchingContributionPercent",
      "unitRef": "number",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "INF",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:DefinedContributionPlanEmployerMatchingContributionPercent",
      "unitRef": "number",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "INF",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R80": {
     "role": "http://www.tecogen.com/role/SegmentsDetails",
     "longName": "9955558 - Disclosure - Segments (Details)",
     "shortName": "Segments (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "80",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:NumberOfOperatingSegments",
      "unitRef": "segment",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "0",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-120",
      "name": "us-gaap:GrossProfit",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "0",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfSegmentReportingInformationBySegmentTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "unique": true
     }
    },
    "R81": {
     "role": "http://www.tecogen.com/role/IncometaxesReconciliationofFederalStatutoryIncomeTaxProvisiontoCompanysActualProvisionDetails",
     "longName": "9955559 - Disclosure - Income taxes - Reconciliation of Federal Statutory Income Tax Provision to Company's Actual Provision (Details)",
     "shortName": "Income taxes - Reconciliation of Federal Statutory Income Tax Provision to Company's Actual Provision (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "81",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate",
      "unitRef": "number",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "INF",
      "ancestors": [
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate",
      "unitRef": "number",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "INF",
      "ancestors": [
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R82": {
     "role": "http://www.tecogen.com/role/IncometaxesScheduleofDeferredTaxAssetsDetails",
     "longName": "9955560 - Disclosure - Income taxes - Schedule of Deferred Tax Assets (Details)",
     "shortName": "Income taxes - Schedule of Deferred Tax Assets (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "82",
     "firstAnchor": {
      "contextRef": "c-5",
      "name": "us-gaap:DeferredTaxAssetsOperatingLossCarryforwards",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "0",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-5",
      "name": "us-gaap:DeferredTaxAssetsOperatingLossCarryforwards",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "0",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R83": {
     "role": "http://www.tecogen.com/role/IncometaxesNarrativeDetails",
     "longName": "9955561 - Disclosure - Income taxes - Narrative (Details)",
     "shortName": "Income taxes - Narrative (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "83",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "tgen:EffectiveIncomeTaxRateReconciliationOperatingLossCarryforwardExpired",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "0",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-5",
      "name": "us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsSubjectToExpiration",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "0",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "unique": true
     }
    },
    "R84": {
     "role": "http://www.tecogen.com/role/SubsequentEventsDetails",
     "longName": "9955562 - Disclosure - Subsequent Events (Details)",
     "shortName": "Subsequent Events (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "84",
     "firstAnchor": {
      "contextRef": "c-231",
      "name": "tgen:LitigationSettlementFeeExpenseBenefit",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "0",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-231",
      "name": "tgen:LitigationSettlementFeeExpenseBenefit",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "0",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tgen-20241231.htm",
      "first": true,
      "unique": true
     }
    }
   },
   "tag": {
    "tgen_A2022StockIncentivePlanMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "A2022StockIncentivePlanMember",
     "presentation": [
      "http://www.tecogen.com/role/StockholdersequityStockBasedCompensationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "2022 Stock Incentive Plan",
        "label": "2022 Stock Incentive Plan [Member]",
        "documentation": "2022 Stock Incentive Plan"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AccountingPoliciesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AccountingPoliciesAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accounting Policies [Abstract]",
        "label": "Accounting Policies [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AccountsPayableCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AccountsPayableCurrent",
     "crdr": "credit",
     "calculation": {
      "http://www.tecogen.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_LiabilitiesCurrent",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accounts payable",
        "label": "Accounts Payable, Current",
        "documentation": "Carrying value as of the balance sheet date of liabilities incurred (and for which invoices have typically been received) and payable to vendors for goods and services received that are used in an entity's business. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer)."
       }
      }
     },
     "auth_ref": [
      "r72",
      "r811"
     ]
    },
    "us-gaap_AccountsReceivableMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AccountsReceivableMember",
     "presentation": [
      "http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesConcentrationofCreditRiskDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Trade accounts receivable",
        "label": "Accounts Receivable [Member]",
        "documentation": "Due from customers or clients for goods or services that have been delivered or sold."
       }
      }
     },
     "auth_ref": [
      "r736"
     ]
    },
    "us-gaap_AccountsReceivableNetCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AccountsReceivableNetCurrent",
     "crdr": "debit",
     "calculation": {
      "http://www.tecogen.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accounts receivable, net",
        "label": "Accounts Receivable, after Allowance for Credit Loss, Current",
        "documentation": "Amount, after allowance for credit loss, of right to consideration from customer for product sold and service rendered in normal course of business, classified as current."
       }
      }
     },
     "auth_ref": [
      "r982"
     ]
    },
    "tgen_AccruedDecommissioningCosts": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "AccruedDecommissioningCosts",
     "crdr": "debit",
     "presentation": [
      "http://www.tecogen.com/role/PropertyplantandequipmentNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Accrued decommissioning costs",
        "label": "Accrued Decommissioning Costs",
        "documentation": "Accrued Decommissioning Costs"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AccruedLiabilitiesCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AccruedLiabilitiesCurrent",
     "crdr": "credit",
     "calculation": {
      "http://www.tecogen.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_LiabilitiesCurrent",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accrued expenses",
        "label": "Accrued Liabilities, Current",
        "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": [
      "r75"
     ]
    },
    "us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment",
     "crdr": "credit",
     "calculation": {
      "http://www.tecogen.com/role/PropertyplantandequipmentSummaryofPropertyandEquipmentDetails": {
       "parentTag": "us-gaap_PropertyPlantAndEquipmentNet",
       "weight": -1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/PropertyplantandequipmentSummaryofPropertyandEquipmentDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Less: accumulated depreciation and amortization",
        "label": "Accumulated Depreciation, Depletion and Amortization, Property, Plant, and Equipment",
        "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": [
      "r37",
      "r178",
      "r624"
     ]
    },
    "us-gaap_AcquiredFiniteLivedIntangibleAssetsLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AcquiredFiniteLivedIntangibleAssetsLineItems",
     "presentation": [
      "http://www.tecogen.com/role/IntangibleassetsandliabilitiesotherthangoodwillNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Acquired Finite-Lived Intangible Assets [Line Items]",
        "label": "Acquired 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": [
      "r321",
      "r322",
      "r323",
      "r325",
      "r741"
     ]
    },
    "tgen_AcquisitionAnnualNOLLimitationAmount": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "AcquisitionAnnualNOLLimitationAmount",
     "crdr": "debit",
     "presentation": [
      "http://www.tecogen.com/role/IncometaxesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Annual limitation of acquired NOL",
        "label": "Acquisition, Annual NOL Limitation, Amount",
        "documentation": "Acquisition, Annual NOL Limitation, Amount"
       }
      }
     },
     "auth_ref": []
    },
    "tgen_AcquisitionNetOperatingLossLimitationPeriod": {
     "xbrltype": "durationItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "AcquisitionNetOperatingLossLimitationPeriod",
     "presentation": [
      "http://www.tecogen.com/role/IncometaxesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Period of limitation on acquired NOL",
        "label": "Acquisition, Net Operating Loss, Limitation Period",
        "documentation": "Acquisition, Net Operating Loss, Limitation Period"
       }
      }
     },
     "auth_ref": []
    },
    "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": {
        "terseLabel": "Additional 402(v) Disclosure",
        "label": "Additional 402(v) Disclosure [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r880"
     ]
    },
    "us-gaap_AdditionalCashFlowElementsInvestingActivitiesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AdditionalCashFlowElementsInvestingActivitiesAbstract",
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Non-cash investing activities",
        "label": "Additional Cash Flow Elements, Investing Activities [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AdditionalPaidInCapital": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AdditionalPaidInCapital",
     "crdr": "credit",
     "calculation": {
      "http://www.tecogen.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_StockholdersEquity",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Additional paid-in capital",
        "label": "Additional Paid in Capital",
        "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": [
      "r84",
      "r811",
      "r1135"
     ]
    },
    "us-gaap_AdditionalPaidInCapitalMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AdditionalPaidInCapitalMember",
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedStatementsofStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Additional Paid-in Capital",
        "label": "Additional Paid-in Capital [Member]",
        "documentation": "Excess of issue price over par or stated value of the entity's capital stock and amounts received from other transactions involving the entity's stock or stockholders."
       }
      }
     },
     "auth_ref": [
      "r674",
      "r967",
      "r968",
      "r969",
      "r971",
      "r1074",
      "r1136"
     ]
    },
    "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": {
        "terseLabel": "Adjustment to Compensation, Amount",
        "label": "Adjustment to Compensation Amount"
       }
      }
     },
     "auth_ref": [
      "r893"
     ]
    },
    "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": {
        "terseLabel": "Adjustment to Compensation:",
        "label": "Adjustment to Compensation [Axis]"
       }
      }
     },
     "auth_ref": [
      "r893"
     ]
    },
    "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": {
        "terseLabel": "Adjustment to Non-PEO NEO Compensation Footnote",
        "label": "Adjustment to Non-PEO NEO Compensation Footnote [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r893"
     ]
    },
    "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": {
        "terseLabel": "Adjustment To PEO Compensation, Footnote",
        "label": "Adjustment To PEO Compensation, Footnote [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r893"
     ]
    },
    "us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue",
     "crdr": "credit",
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedStatementsofStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Stock-based compensation",
        "label": "APIC, Share-Based Payment Arrangement, Increase for Cost Recognition",
        "documentation": "Amount of increase to additional paid-in capital (APIC) for recognition of cost for award under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r41",
      "r42",
      "r428"
     ]
    },
    "us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract",
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Adjustments to reconcile net loss to net cash used in operating activities:",
        "label": "Adjustments to Reconcile Net Income (Loss) to Cash Provided by (Used in) Operating Activities [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AdvertisingCostsPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AdvertisingCostsPolicyTextBlock",
     "presentation": [
      "http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Advertising Costs",
        "label": "Advertising Cost [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for advertising cost."
       }
      }
     },
     "auth_ref": [
      "r155"
     ]
    },
    "us-gaap_AdvertisingExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AdvertisingExpense",
     "crdr": "debit",
     "presentation": [
      "http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Advertising expense",
        "label": "Advertising Expense",
        "documentation": "Amount charged to advertising expense for the period, which are expenses incurred with the objective of increasing revenue for a specified brand, product or product line."
       }
      }
     },
     "auth_ref": [
      "r467",
      "r795"
     ]
    },
    "tgen_AegisEnergyServicesLLCMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "AegisEnergyServicesLLCMember",
     "presentation": [
      "http://www.tecogen.com/role/AegisContractandRelatedAssetAcquisitionDetails",
      "http://www.tecogen.com/role/FairValueMeasurementsNarrativeDetails",
      "http://www.tecogen.com/role/SaleofADGAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Aegis Energy Services, LLC",
        "label": "Aegis Energy Services, LLC [Member]",
        "documentation": "Aegis Energy Services, LLC"
       }
      }
     },
     "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": {
        "terseLabel": "Aggregate Change in Present Value of Accumulated Benefit for All Pension Plans Reported in Summary Compensation Table",
        "label": "Aggregate Change in Present Value of Accumulated Benefit for All Pension Plans Reported in Summary Compensation Table [Member]"
       }
      }
     },
     "auth_ref": [
      "r938"
     ]
    },
    "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": {
        "terseLabel": "Aggregate Erroneous Compensation Amount",
        "label": "Aggregate Erroneous Compensation Amount"
       }
      }
     },
     "auth_ref": [
      "r851",
      "r862",
      "r872",
      "r905"
     ]
    },
    "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": {
        "terseLabel": "Aggregate Erroneous Compensation Not Yet Determined",
        "label": "Aggregate Erroneous Compensation Not Yet Determined [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r854",
      "r865",
      "r875",
      "r908"
     ]
    },
    "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": {
        "terseLabel": "Aggregate Pension Adjustments Service Cost",
        "label": "Aggregate Pension Adjustments Service Cost [Member]"
       }
      }
     },
     "auth_ref": [
      "r939"
     ]
    },
    "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": {
        "terseLabel": "All Adjustments to Compensation",
        "label": "All Adjustments to Compensation [Member]"
       }
      }
     },
     "auth_ref": [
      "r893"
     ]
    },
    "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": {
        "terseLabel": "All Executive Categories",
        "label": "All Executive Categories [Member]"
       }
      }
     },
     "auth_ref": [
      "r900"
     ]
    },
    "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": {
        "terseLabel": "All Individuals",
        "label": "All Individuals [Member]"
       }
      }
     },
     "auth_ref": [
      "r855",
      "r866",
      "r876",
      "r900",
      "r909",
      "r913",
      "r921"
     ]
    },
    "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": {
        "terseLabel": "All Trading Arrangements",
        "label": "All Trading Arrangements [Member]"
       }
      }
     },
     "auth_ref": [
      "r919"
     ]
    },
    "us-gaap_AllocatedShareBasedCompensationExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AllocatedShareBasedCompensationExpense",
     "crdr": "debit",
     "presentation": [
      "http://www.tecogen.com/role/StockholdersequityStockBasedCompensationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Recognized stock-based compensation",
        "label": "Share-Based Payment Arrangement, Expense",
        "documentation": "Amount of expense for award under share-based payment arrangement. Excludes amount capitalized."
       }
      }
     },
     "auth_ref": [
      "r459",
      "r465"
     ]
    },
    "us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AllowanceForDoubtfulAccountsReceivableCurrent",
     "crdr": "credit",
     "presentation": [
      "http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Allowance for doubtful accounts",
        "label": "Accounts Receivable, Allowance for Credit Loss, Current",
        "documentation": "Amount of allowance for credit loss on accounts receivable, classified as current."
       }
      }
     },
     "auth_ref": [
      "r183",
      "r287",
      "r294"
     ]
    },
    "us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AllowanceForDoubtfulAccountsReceivableWriteOffs",
     "crdr": "debit",
     "presentation": [
      "http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Bad debt expense",
        "label": "Accounts Receivable, Allowance for Credit Loss, Writeoff",
        "documentation": "Amount of direct write-downs of accounts receivable charged against the allowance."
       }
      }
     },
     "auth_ref": [
      "r296"
     ]
    },
    "dei_AmendmentFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "AmendmentFlag",
     "presentation": [
      "http://www.tecogen.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Amendment Flag",
        "label": "Amendment Flag",
        "documentation": "Boolean flag that is true when the XBRL content amends previously-filed or accepted submission."
       }
      }
     },
     "auth_ref": []
    },
    "tgen_AmendnedStockOptionAndIncentivePlan2006Member": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "AmendnedStockOptionAndIncentivePlan2006Member",
     "presentation": [
      "http://www.tecogen.com/role/StockholdersequityStockBasedCompensationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Amended Plan",
        "label": "Amendned Stock Option and Incentive Plan 2006 [Member]",
        "documentation": "Amended 2006 Stock Option and Incentive Plan [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "tgen_AmericanDgEnergyMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "AmericanDgEnergyMember",
     "presentation": [
      "http://www.tecogen.com/role/AcquisitionofAmericanDGEnergyIncDetails",
      "http://www.tecogen.com/role/IncometaxesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "American DG Energy",
        "label": "American DG Energy [Member]",
        "documentation": "American DG Energy [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AmortizationOfIntangibleAssets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AmortizationOfIntangibleAssets",
     "crdr": "debit",
     "presentation": [
      "http://www.tecogen.com/role/IntangibleassetsandliabilitiesotherthangoodwillNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Amortization expense",
        "label": "Amortization of Intangible Assets",
        "documentation": "The aggregate expense charged against earnings to allocate the cost of intangible assets (nonphysical assets not used in production) in a systematic and rational manner to the periods expected to benefit from such assets. 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": [
      "r6",
      "r320",
      "r327",
      "r772"
     ]
    },
    "tgen_AmortizationofContractRelatedIntangibleAssetsandLiabilitiesNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "AmortizationofContractRelatedIntangibleAssetsandLiabilitiesNet",
     "crdr": "credit",
     "presentation": [
      "http://www.tecogen.com/role/IntangibleassetsandliabilitiesotherthangoodwillNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Net credit to cost of sales related to the amortization of contract related assets and liabilities",
        "label": "Amortization of Contract Related Intangible Assets and Liabilities, Net",
        "documentation": "Amortization of Contract Related Intangible Assets and Liabilities, Net"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount",
     "presentation": [
      "http://www.tecogen.com/role/LosspercommonshareScheduleofLossPerCommonShareBasicandDilutedDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Anti-dilutive shares underlying stock options outstanding",
        "label": "Antidilutive Securities Excluded from Computation of Earnings Per Share, Amount",
        "documentation": "Securities (including those issuable pursuant to contingent stock agreements) that could potentially dilute basic earnings per share (EPS) or earnings per unit (EPU) in the future that were not included in the computation of diluted EPS or EPU because to do so would increase EPS or EPU amounts or decrease loss per share or unit amounts for the period presented."
       }
      }
     },
     "auth_ref": [
      "r238"
     ]
    },
    "us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis",
     "presentation": [
      "http://www.tecogen.com/role/LosspercommonshareScheduleofLossPerCommonShareBasicandDilutedDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Antidilutive Securities [Axis]",
        "label": "Antidilutive Securities [Axis]",
        "documentation": "Information by type of antidilutive security."
       }
      }
     },
     "auth_ref": [
      "r24"
     ]
    },
    "us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems",
     "presentation": [
      "http://www.tecogen.com/role/LosspercommonshareScheduleofLossPerCommonShareBasicandDilutedDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Antidilutive Securities Excluded from Computation of Earnings Per Share [Line Items]",
        "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.tecogen.com/role/LosspercommonshareScheduleofLossPerCommonShareBasicandDilutedDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Antidilutive Securities, Name [Domain]",
        "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": [
      "r24"
     ]
    },
    "tgen_AssetAcquisitionAssetsAcquired": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "AssetAcquisitionAssetsAcquired",
     "crdr": "debit",
     "calculation": {
      "http://www.tecogen.com/role/AegisContractandRelatedAssetAcquisitionDetails": {
       "parentTag": "tgen_AssetAcquisitionAssetsAcquiredAndLiabilitiesAssumedNet",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/AegisContractandRelatedAssetAcquisitionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Assets acquired",
        "label": "Asset Acquisition, Assets Acquired",
        "documentation": "Asset Acquisition, Assets Acquired"
       }
      }
     },
     "auth_ref": []
    },
    "tgen_AssetAcquisitionAssetsAcquiredAndLiabilitiesAssumedNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "AssetAcquisitionAssetsAcquiredAndLiabilitiesAssumedNet",
     "crdr": "debit",
     "calculation": {
      "http://www.tecogen.com/role/AegisContractandRelatedAssetAcquisitionDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/AegisContractandRelatedAssetAcquisitionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Net identifiable assets acquired",
        "label": "Asset Acquisition, Assets Acquired and Liabilities Assumed, Net",
        "documentation": "Asset Acquisition, Assets Acquired and Liabilities Assumed, Net"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AssetAcquisitionAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AssetAcquisitionAxis",
     "presentation": [
      "http://www.tecogen.com/role/AegisContractandRelatedAssetAcquisitionDetails",
      "http://www.tecogen.com/role/FairValueMeasurementsNarrativeDetails",
      "http://www.tecogen.com/role/SaleofADGAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Asset Acquisition [Axis]",
        "label": "Asset Acquisition [Axis]",
        "documentation": "Information by asset acquisition."
       }
      }
     },
     "auth_ref": [
      "r321",
      "r322",
      "r323",
      "r324",
      "r325",
      "r1070"
     ]
    },
    "us-gaap_AssetAcquisitionConsiderationTransferred": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AssetAcquisitionConsiderationTransferred",
     "crdr": "credit",
     "calculation": {
      "http://www.tecogen.com/role/AegisContractandRelatedAssetAcquisitionDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/AegisContractandRelatedAssetAcquisitionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total fair value of consideration transferred",
        "label": "Asset Acquisition, Consideration Transferred",
        "documentation": "Amount of consideration transferred in asset acquisition. Includes, but is not limited to, cash, liability incurred by acquirer, and equity interest issued by acquirer."
       }
      }
     },
     "auth_ref": [
      "r797",
      "r1071",
      "r1072",
      "r1073"
     ]
    },
    "tgen_AssetAcquisitionConsiderationTransferredAccountsPayable": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "AssetAcquisitionConsiderationTransferredAccountsPayable",
     "crdr": "credit",
     "calculation": {
      "http://www.tecogen.com/role/AegisContractandRelatedAssetAcquisitionDetails": {
       "parentTag": "us-gaap_AssetAcquisitionConsiderationTransferred",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/AegisContractandRelatedAssetAcquisitionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Account payable",
        "label": "Asset Acquisition, Consideration Transferred, Accounts Payable",
        "documentation": "Asset Acquisition, Consideration Transferred, Accounts Payable"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AssetAcquisitionConsiderationTransferredContingentConsideration": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AssetAcquisitionConsiderationTransferredContingentConsideration",
     "crdr": "credit",
     "calculation": {
      "http://www.tecogen.com/role/AegisContractandRelatedAssetAcquisitionDetails": {
       "parentTag": "us-gaap_AssetAcquisitionConsiderationTransferred",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/AegisContractandRelatedAssetAcquisitionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Contingent consideration",
        "label": "Asset Acquisition, Consideration Transferred, Contingent Consideration",
        "documentation": "Amount of contingent consideration recognized as part of consideration transferred in asset acquisition."
       }
      }
     },
     "auth_ref": [
      "r1071",
      "r1072",
      "r1073"
     ]
    },
    "tgen_AssetAcquisitionConsiderationTransferredContingentConsiderationCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "AssetAcquisitionConsiderationTransferredContingentConsiderationCurrent",
     "crdr": "credit",
     "calculation": {
      "http://www.tecogen.com/role/AegisContractandRelatedAssetAcquisitionDetails": {
       "parentTag": "tgen_AssetAcquisitionLiabilitiesAssumedCurrent",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/AegisContractandRelatedAssetAcquisitionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Contingent consideration",
        "label": "Asset Acquisition, Consideration Transferred, Contingent Consideration, Current",
        "documentation": "Asset Acquisition, Consideration Transferred, Contingent Consideration, Current"
       }
      }
     },
     "auth_ref": []
    },
    "tgen_AssetAcquisitionConsiderationTransferredContingentConsiderationNoncurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "AssetAcquisitionConsiderationTransferredContingentConsiderationNoncurrent",
     "crdr": "credit",
     "calculation": {
      "http://www.tecogen.com/role/AegisContractandRelatedAssetAcquisitionDetails": {
       "parentTag": "tgen_AssetAcquisitionLiabilitiesAssumedNoncurrent",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/AegisContractandRelatedAssetAcquisitionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Contingent consideration",
        "label": "Asset Acquisition, Consideration Transferred, Contingent Consideration, Noncurrent",
        "documentation": "Asset Acquisition, Consideration Transferred, Contingent Consideration, Noncurrent"
       }
      }
     },
     "auth_ref": []
    },
    "tgen_AssetAcquisitionConsiderationTransferredNonCash": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "AssetAcquisitionConsiderationTransferredNonCash",
     "crdr": "credit",
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Total fair value of non-cash consideration",
        "label": "Asset Acquisition, Consideration Transferred, Non-Cash",
        "documentation": "Asset Acquisition, Consideration Transferred, Non-Cash"
       }
      }
     },
     "auth_ref": []
    },
    "tgen_AssetAcquisitionConsiderationTransferredNonCashAccountsPayable": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "AssetAcquisitionConsiderationTransferredNonCashAccountsPayable",
     "crdr": "credit",
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accounts payable assumed",
        "label": "Asset Acquisition, Consideration Transferred, Non-Cash, Accounts Payable",
        "documentation": "Asset Acquisition, Consideration Transferred, Non-Cash, Accounts Payable"
       }
      }
     },
     "auth_ref": []
    },
    "tgen_AssetAcquisitionConsiderationTransferredNonCashAccountsReceivableCredit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "AssetAcquisitionConsiderationTransferredNonCashAccountsReceivableCredit",
     "crdr": "credit",
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accounts receivable credit",
        "label": "Asset Acquisition, Consideration Transferred, Non-Cash, Accounts Receivable Credit",
        "documentation": "Asset Acquisition, Consideration Transferred, Non-Cash, Accounts Receivable Credit"
       }
      }
     },
     "auth_ref": []
    },
    "tgen_AssetAcquisitionConsiderationTransferredNonCashContingentConsideration": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "AssetAcquisitionConsiderationTransferredNonCashContingentConsideration",
     "crdr": "credit",
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Contingent consideration",
        "label": "Asset Acquisition, Consideration Transferred, Non-Cash, Contingent Consideration",
        "documentation": "Asset Acquisition, Consideration Transferred, Non-Cash, Contingent Consideration"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AssetAcquisitionConsiderationTransferredOtherAssets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AssetAcquisitionConsiderationTransferredOtherAssets",
     "crdr": "credit",
     "calculation": {
      "http://www.tecogen.com/role/AegisContractandRelatedAssetAcquisitionDetails": {
       "parentTag": "us-gaap_AssetAcquisitionConsiderationTransferred",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/AegisContractandRelatedAssetAcquisitionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accounts receivable credit issued",
        "label": "Asset Acquisition, Consideration Transferred, Other Assets",
        "documentation": "Amount of tangible and intangible assets included as part of consideration transferred in asset acquisition, classified as other. Excludes cash."
       }
      }
     },
     "auth_ref": [
      "r1071",
      "r1072",
      "r1073"
     ]
    },
    "us-gaap_AssetAcquisitionContingentConsiderationLiability": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AssetAcquisitionContingentConsiderationLiability",
     "crdr": "credit",
     "presentation": [
      "http://www.tecogen.com/role/AegisContractandRelatedAssetAcquisitionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Contingent consideration payable",
        "label": "Asset Acquisition, Contingent Consideration, Liability",
        "documentation": "Amount of liability recognized from contingent consideration in asset acquisition."
       }
      }
     },
     "auth_ref": [
      "r1070"
     ]
    },
    "us-gaap_AssetAcquisitionContingentConsiderationLiabilityCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AssetAcquisitionContingentConsiderationLiabilityCurrent",
     "crdr": "credit",
     "calculation": {
      "http://www.tecogen.com/role/FairValueMeasurementsScheduleofAssetReportedinConsolidatedBalanceSheetMeasuredatFairValueonRecurringBasisDetails": {
       "parentTag": "us-gaap_LiabilitiesFairValueDisclosure",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/FairValueMeasurementsScheduleofAssetReportedinConsolidatedBalanceSheetMeasuredatFairValueonRecurringBasisDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Contingent contract consideration, current",
        "label": "Asset Acquisition, Contingent Consideration, Liability, Current",
        "documentation": "Amount of liability recognized from contingent consideration in asset acquisition, classified as current."
       }
      }
     },
     "auth_ref": [
      "r1070"
     ]
    },
    "us-gaap_AssetAcquisitionContingentConsiderationLiabilityNoncurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AssetAcquisitionContingentConsiderationLiabilityNoncurrent",
     "crdr": "credit",
     "calculation": {
      "http://www.tecogen.com/role/FairValueMeasurementsScheduleofAssetReportedinConsolidatedBalanceSheetMeasuredatFairValueonRecurringBasisDetails": {
       "parentTag": "us-gaap_LiabilitiesFairValueDisclosure",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/FairValueMeasurementsScheduleofAssetReportedinConsolidatedBalanceSheetMeasuredatFairValueonRecurringBasisDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Contingent contract consideration, long-term",
        "label": "Asset Acquisition, Contingent Consideration, Liability, Noncurrent",
        "documentation": "Amount of liability recognized from contingent consideration in asset acquisition, classified as noncurrent."
       }
      }
     },
     "auth_ref": [
      "r1070"
     ]
    },
    "tgen_AssetAcquisitionContingentConsiderationPaymentPeriod": {
     "xbrltype": "durationItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "AssetAcquisitionContingentConsiderationPaymentPeriod",
     "presentation": [
      "http://www.tecogen.com/role/AegisContractandRelatedAssetAcquisitionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Contingent consideration, payment period",
        "label": "Asset Acquisition, Contingent Consideration, Payment Period",
        "documentation": "Asset Acquisition, Contingent Consideration, Payment Period"
       }
      }
     },
     "auth_ref": []
    },
    "tgen_AssetAcquisitionContingentConsiderationPercentage": {
     "xbrltype": "percentItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "AssetAcquisitionContingentConsiderationPercentage",
     "presentation": [
      "http://www.tecogen.com/role/AegisContractandRelatedAssetAcquisitionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Contingent consideration, percentage",
        "label": "Asset Acquisition, Contingent Consideration, Percentage",
        "documentation": "Asset Acquisition, Contingent Consideration, Percentage"
       }
      }
     },
     "auth_ref": []
    },
    "tgen_AssetAcquisitionDeferredMaintenanceCostsIncurredPeriod": {
     "xbrltype": "durationItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "AssetAcquisitionDeferredMaintenanceCostsIncurredPeriod",
     "presentation": [
      "http://www.tecogen.com/role/AegisContractandRelatedAssetAcquisitionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Deferred maintenance costs incurred, period",
        "label": "Asset Acquisition, Deferred Maintenance Costs Incurred, Period",
        "documentation": "Asset Acquisition, Deferred Maintenance Costs Incurred, Period"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AssetAcquisitionDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AssetAcquisitionDomain",
     "presentation": [
      "http://www.tecogen.com/role/AegisContractandRelatedAssetAcquisitionDetails",
      "http://www.tecogen.com/role/FairValueMeasurementsNarrativeDetails",
      "http://www.tecogen.com/role/SaleofADGAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Asset Acquisition [Domain]",
        "label": "Asset Acquisition [Domain]",
        "documentation": "Asset acquisition."
       }
      }
     },
     "auth_ref": [
      "r321",
      "r322",
      "r323",
      "r324",
      "r325",
      "r1070"
     ]
    },
    "tgen_AssetAcquisitionGoodwill": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "AssetAcquisitionGoodwill",
     "crdr": "debit",
     "presentation": [
      "http://www.tecogen.com/role/AegisContractandRelatedAssetAcquisitionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Asset Acquisition, Goodwill",
        "label": "Asset Acquisition, Goodwill",
        "documentation": "Asset Acquisition, Goodwill"
       }
      }
     },
     "auth_ref": []
    },
    "tgen_AssetAcquisitionInventory": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "AssetAcquisitionInventory",
     "crdr": "debit",
     "calculation": {
      "http://www.tecogen.com/role/AegisContractandRelatedAssetAcquisitionDetails": {
       "parentTag": "tgen_AssetAcquisitionAssetsAcquired",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/AegisContractandRelatedAssetAcquisitionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Inventory",
        "label": "Asset Acquisition, Inventory",
        "documentation": "Asset Acquisition, Inventory"
       }
      }
     },
     "auth_ref": []
    },
    "tgen_AssetAcquisitionLiabilitiesAssumedCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "AssetAcquisitionLiabilitiesAssumedCurrent",
     "crdr": "credit",
     "calculation": {
      "http://www.tecogen.com/role/AegisContractandRelatedAssetAcquisitionDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/AegisContractandRelatedAssetAcquisitionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Liabilities assumed, current",
        "label": "Asset Acquisition, Liabilities Assumed, Current",
        "documentation": "Asset Acquisition, Liabilities Assumed, Current"
       }
      }
     },
     "auth_ref": []
    },
    "tgen_AssetAcquisitionLiabilitiesAssumedNoncurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "AssetAcquisitionLiabilitiesAssumedNoncurrent",
     "crdr": "credit",
     "calculation": {
      "http://www.tecogen.com/role/AegisContractandRelatedAssetAcquisitionDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/AegisContractandRelatedAssetAcquisitionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Liabilities assumed, noncurrent",
        "label": "Asset Acquisition, Liabilities Assumed, Noncurrent",
        "documentation": "Asset Acquisition, Liabilities Assumed, Noncurrent"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AssetAcquisitionLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AssetAcquisitionLineItems",
     "presentation": [
      "http://www.tecogen.com/role/AegisContractandRelatedAssetAcquisitionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Asset Acquisition [Line Items]",
        "label": "Asset Acquisition [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": [
      "r1070"
     ]
    },
    "tgen_AssetAcquisitionMaintenanceAgreementsNumberOfAdditionalCogenerationUnits": {
     "xbrltype": "integerItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "AssetAcquisitionMaintenanceAgreementsNumberOfAdditionalCogenerationUnits",
     "presentation": [
      "http://www.tecogen.com/role/AegisContractandRelatedAssetAcquisitionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Number of additional cogeneration units",
        "label": "Asset Acquisition, Maintenance Agreements, Number Of Additional Cogeneration Units",
        "documentation": "Asset Acquisition, Maintenance Agreements, Number Of Additional Cogeneration Units"
       }
      }
     },
     "auth_ref": []
    },
    "tgen_AssetAcquisitionMaintenanceAgreementsNumberOfCogenerationSystems": {
     "xbrltype": "integerItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "AssetAcquisitionMaintenanceAgreementsNumberOfCogenerationSystems",
     "presentation": [
      "http://www.tecogen.com/role/AegisContractandRelatedAssetAcquisitionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Number of cogeneration systems under maintenance agreements",
        "label": "Asset Acquisition, Maintenance Agreements, Number Of Cogeneration Systems",
        "documentation": "Asset Acquisition, Maintenance Agreements, Number Of Cogeneration Systems"
       }
      }
     },
     "auth_ref": []
    },
    "tgen_AssetAcquisitionMaintenanceAgreementsProfitSharingPeriod": {
     "xbrltype": "durationItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "AssetAcquisitionMaintenanceAgreementsProfitSharingPeriod",
     "presentation": [
      "http://www.tecogen.com/role/AegisContractandRelatedAssetAcquisitionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Profit sharing period for maintenance agreements",
        "label": "Asset Acquisition, Maintenance Agreements, Profit Sharing Period",
        "documentation": "Asset Acquisition, Maintenance Agreements, Profit Sharing Period"
       }
      }
     },
     "auth_ref": []
    },
    "tgen_AssetAcquisitionNumberOfAdditionalMaintenanceContracts": {
     "xbrltype": "integerItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "AssetAcquisitionNumberOfAdditionalMaintenanceContracts",
     "presentation": [
      "http://www.tecogen.com/role/AegisContractandRelatedAssetAcquisitionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Number of additional maintenance contracts",
        "label": "Asset Acquisition, Number Of Additional Maintenance Contracts",
        "documentation": "Asset Acquisition, Number Of Additional Maintenance Contracts"
       }
      }
     },
     "auth_ref": []
    },
    "tgen_AssetAcquisitionPropertyPlantAndEquipment": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "AssetAcquisitionPropertyPlantAndEquipment",
     "crdr": "debit",
     "calculation": {
      "http://www.tecogen.com/role/AegisContractandRelatedAssetAcquisitionDetails": {
       "parentTag": "tgen_AssetAcquisitionAssetsAcquired",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/AegisContractandRelatedAssetAcquisitionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Property, plant and equipment",
        "label": "Asset Acquisition, Property, Plant and Equipment",
        "documentation": "Asset Acquisition, Property, Plant and Equipment"
       }
      }
     },
     "auth_ref": []
    },
    "tgen_AssetAcquisitionProvisionalInformationInitialAccountingIncompleteAdjustmentContingentConsiderationLiability": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "AssetAcquisitionProvisionalInformationInitialAccountingIncompleteAdjustmentContingentConsiderationLiability",
     "crdr": "credit",
     "presentation": [
      "http://www.tecogen.com/role/AegisContractandRelatedAssetAcquisitionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Adjustment to contingent consideration liability",
        "label": "Asset Acquisition, Provisional Information, Initial Accounting Incomplete, Adjustment, Contingent Consideration Liability",
        "documentation": "Asset Acquisition, Provisional Information, Initial Accounting Incomplete, Adjustment, Contingent Consideration Liability"
       }
      }
     },
     "auth_ref": []
    },
    "tgen_AssetAcquisitionProvisionalInformationInitialAccountingIncompleteAdjustmentFiniteLivedIntangibleAssetsAcquired": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "AssetAcquisitionProvisionalInformationInitialAccountingIncompleteAdjustmentFiniteLivedIntangibleAssetsAcquired",
     "crdr": "debit",
     "presentation": [
      "http://www.tecogen.com/role/AegisContractandRelatedAssetAcquisitionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Adjustment to finite-lived intangible assets acquired",
        "label": "Asset Acquisition, Provisional Information, Initial Accounting Incomplete, Adjustment, Finite-Lived Intangible Assets Acquired",
        "documentation": "Asset Acquisition, Provisional Information, Initial Accounting Incomplete, Adjustment, Finite-Lived Intangible Assets Acquired"
       }
      }
     },
     "auth_ref": []
    },
    "tgen_AssetAcquisitionReserves": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "AssetAcquisitionReserves",
     "crdr": "credit",
     "calculation": {
      "http://www.tecogen.com/role/AegisContractandRelatedAssetAcquisitionDetails": {
       "parentTag": "tgen_AssetAcquisitionAssetsAcquiredAndLiabilitiesAssumedNet",
       "weight": -1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/AegisContractandRelatedAssetAcquisitionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Deferred maintenance reserve",
        "label": "Asset Acquisition, Reserves",
        "documentation": "Asset Acquisition, Reserves"
       }
      }
     },
     "auth_ref": []
    },
    "tgen_AssetAcquisitionReservesCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "AssetAcquisitionReservesCurrent",
     "crdr": "credit",
     "calculation": {
      "http://www.tecogen.com/role/AegisContractandRelatedAssetAcquisitionDetails": {
       "parentTag": "tgen_AssetAcquisitionLiabilitiesAssumedCurrent",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/AegisContractandRelatedAssetAcquisitionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Deferred maintenance reserve",
        "label": "Asset Acquisition, Reserves, Current",
        "documentation": "Asset Acquisition, Reserves, Current"
       }
      }
     },
     "auth_ref": []
    },
    "tgen_AssetAcquisitionReservesNoncurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "AssetAcquisitionReservesNoncurrent",
     "crdr": "credit",
     "calculation": {
      "http://www.tecogen.com/role/AegisContractandRelatedAssetAcquisitionDetails": {
       "parentTag": "tgen_AssetAcquisitionLiabilitiesAssumedNoncurrent",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/AegisContractandRelatedAssetAcquisitionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Deferred maintenance reserve",
        "label": "Asset Acquisition, Reserves, Noncurrent",
        "documentation": "Asset Acquisition, Reserves, Noncurrent"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AssetAcquisitionTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AssetAcquisitionTable",
     "presentation": [
      "http://www.tecogen.com/role/AegisContractandRelatedAssetAcquisitionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Asset Acquisition [Table]",
        "label": "Asset Acquisition [Table]",
        "documentation": "Disclosure of information about asset acquisition."
       }
      }
     },
     "auth_ref": [
      "r1070"
     ]
    },
    "us-gaap_AssetAcquisitionTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AssetAcquisitionTableTextBlock",
     "presentation": [
      "http://www.tecogen.com/role/AegisContractandRelatedAssetAcquisitionTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Asset Acquisition",
        "label": "Asset Acquisition [Table Text Block]",
        "documentation": "Tabular disclosure of asset acquisition."
       }
      }
     },
     "auth_ref": [
      "r1070"
     ]
    },
    "us-gaap_Assets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "Assets",
     "crdr": "debit",
     "calculation": {
      "http://www.tecogen.com/role/ConsolidatedBalanceSheets": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedBalanceSheets",
      "http://www.tecogen.com/role/SegmentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "TOTAL ASSETS",
        "terseLabel": "Identifiable assets",
        "label": "Assets",
        "documentation": "Amount of asset recognized for present right to economic benefit."
       }
      }
     },
     "auth_ref": [
      "r136",
      "r148",
      "r182",
      "r206",
      "r243",
      "r249",
      "r274",
      "r278",
      "r289",
      "r362",
      "r363",
      "r365",
      "r366",
      "r367",
      "r368",
      "r369",
      "r371",
      "r372",
      "r511",
      "r515",
      "r551",
      "r615",
      "r698",
      "r764",
      "r765",
      "r811",
      "r830",
      "r1029",
      "r1030",
      "r1091"
     ]
    },
    "us-gaap_AssetsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AssetsAbstract",
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "ASSETS",
        "label": "Assets [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "tgen_AssetsAndLiabilitiesLesseeTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "AssetsAndLiabilitiesLesseeTableTextBlock",
     "presentation": [
      "http://www.tecogen.com/role/LeasesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Supplemental Balance Sheet Information",
        "label": "Assets and Liabilities, Lessee [Table Text Block]",
        "documentation": "Assets and Liabilities, Lessee"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AssetsCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AssetsCurrent",
     "crdr": "debit",
     "calculation": {
      "http://www.tecogen.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_Assets",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total current assets",
        "label": "Assets, Current",
        "documentation": "Amount of asset recognized for present right to economic benefit, classified as current."
       }
      }
     },
     "auth_ref": [
      "r173",
      "r186",
      "r206",
      "r289",
      "r362",
      "r363",
      "r365",
      "r366",
      "r367",
      "r368",
      "r369",
      "r371",
      "r372",
      "r511",
      "r515",
      "r551",
      "r811",
      "r1029",
      "r1030",
      "r1091"
     ]
    },
    "us-gaap_AssetsCurrentAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AssetsCurrentAbstract",
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Current assets:",
        "label": "Assets, Current [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AssetsFairValueDisclosure": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AssetsFairValueDisclosure",
     "crdr": "debit",
     "presentation": [
      "http://www.tecogen.com/role/FairValueMeasurementsScheduleofAssetReportedinConsolidatedBalanceSheetMeasuredatFairValueonRecurringBasisDetails",
      "http://www.tecogen.com/role/FairValueMeasuresandDisclosuresScheduleofChangesinLevel2AssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Total recurring fair value measurements",
        "periodStartLabel": "Beginning balance",
        "periodEndLabel": "Ending balance",
        "label": "Assets, Fair Value Disclosure",
        "documentation": "Fair value portion of asset recognized for present right to economic benefit."
       }
      }
     },
     "auth_ref": [
      "r528",
      "r529",
      "r800"
     ]
    },
    "tgen_AuditInformationAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "AuditInformationAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Audit Information [Abstract]",
        "documentation": "Audit Information"
       }
      }
     },
     "auth_ref": []
    },
    "dei_AuditorFirmId": {
     "xbrltype": "nonemptySequenceNumberItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "AuditorFirmId",
     "presentation": [
      "http://www.tecogen.com/role/AuditInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Auditor Firm ID",
        "label": "Auditor Firm ID",
        "documentation": "PCAOB issued Audit Firm Identifier"
       }
      }
     },
     "auth_ref": [
      "r834",
      "r835",
      "r858"
     ]
    },
    "dei_AuditorLocation": {
     "xbrltype": "internationalNameItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "AuditorLocation",
     "presentation": [
      "http://www.tecogen.com/role/AuditInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Auditor Location",
        "label": "Auditor Location"
       }
      }
     },
     "auth_ref": [
      "r834",
      "r835",
      "r858"
     ]
    },
    "dei_AuditorName": {
     "xbrltype": "internationalNameItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "AuditorName",
     "presentation": [
      "http://www.tecogen.com/role/AuditInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Auditor Name",
        "label": "Auditor Name"
       }
      }
     },
     "auth_ref": [
      "r834",
      "r835",
      "r858"
     ]
    },
    "us-gaap_AvailableForSaleSecuritiesDebtSecurities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AvailableForSaleSecuritiesDebtSecurities",
     "crdr": "debit",
     "presentation": [
      "http://www.tecogen.com/role/FairValueMeasurementsScheduleofAssetReportedinConsolidatedBalanceSheetMeasuredatFairValueonRecurringBasisDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Available-for-sale equity securities",
        "label": "Debt Securities, Available-for-Sale",
        "documentation": "Amount of investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale)."
       }
      }
     },
     "auth_ref": [
      "r288",
      "r297",
      "r528",
      "r610",
      "r800",
      "r805",
      "r986",
      "r1077",
      "r1078",
      "r1079"
     ]
    },
    "tgen_AverageClosingSharePriceMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "AverageClosingSharePriceMember",
     "presentation": [
      "http://www.tecogen.com/role/RelatedPartyNotesDetails",
      "http://www.tecogen.com/role/SubsequentEventsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Average Closing Share Price",
        "label": "Average Closing Share Price [Member]",
        "documentation": "Average Closing Share Price"
       }
      }
     },
     "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": {
        "terseLabel": "Exercise Price",
        "label": "Award Exercise Price"
       }
      }
     },
     "auth_ref": [
      "r916"
     ]
    },
    "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": {
        "terseLabel": "Fair Value as of Grant Date",
        "label": "Award Grant Date Fair Value"
       }
      }
     },
     "auth_ref": [
      "r917"
     ]
    },
    "ecd_AwardTmgDiscLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "AwardTmgDiscLineItems",
     "lang": {
      "en-us": {
       "role": {
        "label": "Award Timing Disclosures [Line Items]"
       }
      }
     },
     "auth_ref": [
      "r912"
     ]
    },
    "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": {
        "terseLabel": "Award Timing, How MNPI Considered",
        "label": "Award Timing, How MNPI Considered [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r912"
     ]
    },
    "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": {
        "terseLabel": "Award Timing Method",
        "label": "Award Timing Method [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r912"
     ]
    },
    "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": {
        "terseLabel": "Award Timing MNPI Considered",
        "label": "Award Timing MNPI Considered [Flag]"
       }
      }
     },
     "auth_ref": [
      "r912"
     ]
    },
    "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": {
        "terseLabel": "Award Timing MNPI Disclosure",
        "label": "Award Timing MNPI Disclosure [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r912"
     ]
    },
    "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": {
        "terseLabel": "Award Timing Predetermined",
        "label": "Award Timing Predetermined [Flag]"
       }
      }
     },
     "auth_ref": [
      "r912"
     ]
    },
    "us-gaap_AwardTypeAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AwardTypeAxis",
     "presentation": [
      "http://www.tecogen.com/role/StockholdersequityStockBasedCompensationDetails",
      "http://www.tecogen.com/role/StockholdersequityStockOptionActivityDetails",
      "http://www.tecogen.com/role/StockholdersequityWeightedAverageAssumptionsDetails",
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Award Type [Axis]",
        "label": "Award Type [Axis]",
        "documentation": "Information by type of award under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r430",
      "r431",
      "r432",
      "r434",
      "r435",
      "r436",
      "r437",
      "r438",
      "r439",
      "r440",
      "r441",
      "r442",
      "r443",
      "r444",
      "r445",
      "r446",
      "r447",
      "r448",
      "r449",
      "r450",
      "r451",
      "r454",
      "r455",
      "r456",
      "r457",
      "r458"
     ]
    },
    "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": {
        "terseLabel": "Underlying Securities",
        "label": "Award Underlying Securities Amount"
       }
      }
     },
     "auth_ref": [
      "r915"
     ]
    },
    "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": {
        "terseLabel": "Name",
        "label": "Awards Close in Time to MNPI Disclosures, Individual Name"
       }
      }
     },
     "auth_ref": [
      "r914"
     ]
    },
    "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": {
        "terseLabel": "Awards Close in Time to MNPI Disclosures",
        "label": "Awards Close in Time to MNPI Disclosures [Table]"
       }
      }
     },
     "auth_ref": [
      "r913"
     ]
    },
    "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": {
        "terseLabel": "Awards Close in Time to MNPI Disclosures, Table",
        "label": "Awards Close in Time to MNPI Disclosures [Table Text Block]"
       }
      }
     },
     "auth_ref": [
      "r913"
     ]
    },
    "tgen_Backlog": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "Backlog",
     "crdr": "credit",
     "presentation": [
      "http://www.tecogen.com/role/NatureofbusinessandoperationsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Backlog",
        "label": "Backlog",
        "documentation": "Backlog"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_BasisOfPresentationAndSignificantAccountingPoliciesTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "BasisOfPresentationAndSignificantAccountingPoliciesTextBlock",
     "presentation": [
      "http://www.tecogen.com/role/Summaryofsignificantaccountingpolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Summary of significant accounting policies",
        "label": "Basis of Presentation and Significant Accounting Policies [Text Block]",
        "documentation": "The entire disclosure for the basis of presentation and significant accounting policies concepts. Basis of presentation describes the underlying basis used to prepare the financial statements (for example, US Generally Accepted Accounting Principles, Other Comprehensive Basis of Accounting, IFRS). Accounting policies describe all significant accounting policies of the reporting entity."
       }
      }
     },
     "auth_ref": [
      "r106"
     ]
    },
    "tgen_BenefitforIncomeTaxesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "BenefitforIncomeTaxesMember",
     "presentation": [
      "http://www.tecogen.com/role/IncometaxesNarrativeDetails",
      "http://www.tecogen.com/role/IncometaxesReconciliationofFederalStatutoryIncomeTaxProvisiontoCompanysActualProvisionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Income Tax Provision",
        "label": "Benefit for Income Taxes [Member]",
        "documentation": "Benefit for Income Taxes [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "tgen_BoilerMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "BoilerMember",
     "presentation": [
      "http://www.tecogen.com/role/LeasesSupplementalBalanceSheetInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Boiler",
        "label": "Boiler [Member]",
        "documentation": "Boiler"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_BusinessAcquisitionAcquireeDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "BusinessAcquisitionAcquireeDomain",
     "presentation": [
      "http://www.tecogen.com/role/AcquisitionofAmericanDGEnergyIncDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Business Acquisition, Acquiree [Domain]",
        "label": "Business Acquisition, Acquiree [Domain]",
        "documentation": "Identification of the acquiree in a material business combination (or series of individually immaterial business combinations), which may include the name or other type of identification of the acquiree."
       }
      }
     },
     "auth_ref": [
      "r321",
      "r322",
      "r323",
      "r324",
      "r325",
      "r506",
      "r790",
      "r791"
     ]
    },
    "us-gaap_BusinessAcquisitionAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "BusinessAcquisitionAxis",
     "presentation": [
      "http://www.tecogen.com/role/AcquisitionofAmericanDGEnergyIncDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Business Acquisition [Axis]",
        "label": "Business Acquisition [Axis]",
        "documentation": "Information by business combination or series of individually immaterial business combinations."
       }
      }
     },
     "auth_ref": [
      "r43",
      "r44",
      "r321",
      "r322",
      "r323",
      "r324",
      "r325",
      "r506",
      "r790",
      "r791"
     ]
    },
    "us-gaap_BusinessAcquisitionLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "BusinessAcquisitionLineItems",
     "presentation": [
      "http://www.tecogen.com/role/AcquisitionofAmericanDGEnergyIncDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Business Acquisition [Line Items]",
        "label": "Business Acquisition [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": [
      "r506"
     ]
    },
    "us-gaap_BusinessAcquisitionPurchasePriceAllocationGoodwillExpectedTaxDeductibleAmount": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "BusinessAcquisitionPurchasePriceAllocationGoodwillExpectedTaxDeductibleAmount",
     "crdr": "debit",
     "presentation": [
      "http://www.tecogen.com/role/AcquisitionofAmericanDGEnergyIncDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Goodwill expected to be tax deductible",
        "label": "Business Acquisition, Goodwill, Expected Tax Deductible Amount",
        "documentation": "The amount of goodwill arising from a business combination that is expected to be deductible for tax purposes."
       }
      }
     },
     "auth_ref": [
      "r52"
     ]
    },
    "us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "BusinessAcquisitionsProFormaNetIncomeLoss",
     "crdr": "credit",
     "presentation": [
      "http://www.tecogen.com/role/AegisContractandRelatedAssetAcquisitionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Net income (loss)",
        "label": "Business Acquisition, Pro Forma Net Income (Loss)",
        "documentation": "The pro forma net Income or Loss for the period as if the business combination or combinations had been completed at the beginning of a period."
       }
      }
     },
     "auth_ref": [
      "r504",
      "r505"
     ]
    },
    "us-gaap_BusinessAcquisitionsProFormaRevenue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "BusinessAcquisitionsProFormaRevenue",
     "crdr": "credit",
     "presentation": [
      "http://www.tecogen.com/role/AegisContractandRelatedAssetAcquisitionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Total revenues",
        "label": "Business Acquisition, Pro Forma Revenue",
        "documentation": "The pro forma revenue for a period as if the business combination or combinations had been completed at the beginning of the period."
       }
      }
     },
     "auth_ref": [
      "r504",
      "r505"
     ]
    },
    "us-gaap_BusinessCombinationAndAssetAcquisitionAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "BusinessCombinationAndAssetAcquisitionAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Business Combination, Asset Acquisition, and Joint Venture Formation [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_BusinessCombinationContingentConsiderationLiabilityCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "BusinessCombinationContingentConsiderationLiabilityCurrent",
     "crdr": "credit",
     "calculation": {
      "http://www.tecogen.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_LiabilitiesCurrent",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Acquisition liabilities, current",
        "label": "Business Combination, Contingent Consideration, Liability, Current",
        "documentation": "Amount of liability recognized arising from contingent consideration in a business combination, expected to be settled within one year or the normal operating cycle, if longer."
       }
      }
     },
     "auth_ref": [
      "r51",
      "r133"
     ]
    },
    "us-gaap_BusinessCombinationContingentConsiderationLiabilityNoncurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "BusinessCombinationContingentConsiderationLiabilityNoncurrent",
     "crdr": "credit",
     "calculation": {
      "http://www.tecogen.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_Liabilities",
       "weight": 1.0,
       "order": 6.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Acquisition liabilities, net of current portion",
        "label": "Business Combination, Contingent Consideration, Liability, Noncurrent",
        "documentation": "Amount of liability recognized arising from contingent consideration in a business combination, expected to be settled beyond one year or the normal operating cycle, if longer."
       }
      }
     },
     "auth_ref": [
      "r51",
      "r133"
     ]
    },
    "us-gaap_BusinessCombinationDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "BusinessCombinationDisclosureTextBlock",
     "presentation": [
      "http://www.tecogen.com/role/AegisContractandRelatedAssetAcquisition"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Aegis Contract and Related Asset Acquisition",
        "label": "Business Combination Disclosure [Text Block]",
        "documentation": "The entire disclosure for a business combination (or series of individually immaterial business combinations) completed during the period, including background, timing, and recognized assets and liabilities. The disclosure may include leverage buyout transactions (as applicable)."
       }
      }
     },
     "auth_ref": [
      "r127",
      "r507"
     ]
    },
    "us-gaap_BusinessCombinationProvisionalInformationInitialAccountingIncompleteAdjustmentConsiderationTransferred": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "BusinessCombinationProvisionalInformationInitialAccountingIncompleteAdjustmentConsiderationTransferred",
     "crdr": "credit",
     "presentation": [
      "http://www.tecogen.com/role/AegisContractandRelatedAssetAcquisitionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Contingent consideration adjustment",
        "label": "Business Combination, Provisional Information, Initial Accounting Incomplete, Adjustment, Consideration Transferred",
        "documentation": "This element represents the amount of any measurement period adjustment (as defined) realized during the reporting period to items of consideration transferred in connection with a business combination for which the initial accounting was incomplete."
       }
      }
     },
     "auth_ref": [
      "r47"
     ]
    },
    "us-gaap_BusinessCombinationProvisionalInformationInitialAccountingIncompleteAdjustmentFinancialLiabilities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "BusinessCombinationProvisionalInformationInitialAccountingIncompleteAdjustmentFinancialLiabilities",
     "crdr": "credit",
     "presentation": [
      "http://www.tecogen.com/role/AegisContractandRelatedAssetAcquisitionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accounts payable adjustment",
        "label": "Business Combination, Provisional Information, Initial Accounting Incomplete, Adjustment, Financial Liabilities",
        "documentation": "This element represents the amount of any measurement period adjustment (as defined) realized during the reporting period to financial liabilities assumed in connection with a business combination for which the initial accounting was incomplete."
       }
      }
     },
     "auth_ref": [
      "r47"
     ]
    },
    "us-gaap_BusinessCombinationProvisionalInformationInitialAccountingIncompleteAdjustmentIntangibles": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "BusinessCombinationProvisionalInformationInitialAccountingIncompleteAdjustmentIntangibles",
     "crdr": "debit",
     "presentation": [
      "http://www.tecogen.com/role/AegisContractandRelatedAssetAcquisitionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Intangible adjustment",
        "label": "Business Combination, Provisional Information, Initial Accounting Incomplete, Adjustment, Intangibles",
        "documentation": "This element represents the amount of any measurement period adjustment (as defined) realized during the reporting period to intangibles acquired in connection with a business combination for which the initial accounting was incomplete."
       }
      }
     },
     "auth_ref": [
      "r47"
     ]
    },
    "us-gaap_BusinessCombinationProvisionalInformationInitialAccountingIncompleteAdjustmentInventory": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "BusinessCombinationProvisionalInformationInitialAccountingIncompleteAdjustmentInventory",
     "crdr": "debit",
     "presentation": [
      "http://www.tecogen.com/role/AegisContractandRelatedAssetAcquisitionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Inventory adjustment",
        "label": "Business Combination, Provisional Information, Initial Accounting Incomplete, Adjustment, Inventory",
        "documentation": "This element represents the amount of any measurement period adjustment (as defined) realized during the reporting period to inventory acquired in connection with a business combination for which the initial accounting was incomplete."
       }
      }
     },
     "auth_ref": [
      "r47"
     ]
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedFinancialLiabilities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedFinancialLiabilities",
     "crdr": "credit",
     "calculation": {
      "http://www.tecogen.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_Liabilities",
       "weight": 1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Unfavorable contract liability, net of current portion",
        "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Financial Liabilities",
        "documentation": "The amount of financial liabilities assumed (as defined) which have been recognized as of the acquisition date."
       }
      }
     },
     "auth_ref": [
      "r45",
      "r46"
     ]
    },
    "tgen_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedFinancialLiabilitiesCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedFinancialLiabilitiesCurrent",
     "crdr": "credit",
     "calculation": {
      "http://www.tecogen.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_LiabilitiesCurrent",
       "weight": 1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Unfavorable contract liabilities, current",
        "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Financial Liabilities, Current",
        "documentation": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Financial Liabilities, Current"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_BusinessCombinationsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "BusinessCombinationsAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Business Combinations [Abstract]",
        "label": "Business Combinations [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_BusinessCombinationsPolicy": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "BusinessCombinationsPolicy",
     "presentation": [
      "http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Business Combinations",
        "label": "Business Combinations Policy [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for completed business combinations (purchase method, acquisition method or combination of entities under common control). This accounting policy may include a general discussion of the purchase method or acquisition method of accounting (including for example, the treatment accorded contingent consideration, the identification of assets and liabilities, the purchase price allocation process, how the fair values of acquired assets and liabilities are determined) and the entity's specific application thereof. An entity that acquires another entity in a leveraged buyout transaction generally discloses the accounting policy followed by the acquiring entity in determining the basis used to value its interest in the acquired entity, and the rationale for that accounting policy."
       }
      }
     },
     "auth_ref": [
      "r128",
      "r129",
      "r130",
      "r131"
     ]
    },
    "us-gaap_CashAndCashEquivalentsAtCarryingValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CashAndCashEquivalentsAtCarryingValue",
     "crdr": "debit",
     "calculation": {
      "http://www.tecogen.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedBalanceSheets",
      "http://www.tecogen.com/role/NatureofbusinessandoperationsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cash and cash equivalents",
        "label": "Cash and Cash Equivalents, at Carrying Value",
        "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": [
      "r21",
      "r176",
      "r746"
     ]
    },
    "us-gaap_CashAndCashEquivalentsPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CashAndCashEquivalentsPolicyTextBlock",
     "presentation": [
      "http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cash and Cash Equivalents",
        "label": "Cash and Cash Equivalents, Policy [Policy Text Block]",
        "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": [
      "r22"
     ]
    },
    "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents",
     "crdr": "debit",
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "periodStartLabel": "Cash and cash equivalents, beginning of the year",
        "periodEndLabel": "Cash and cash equivalents, end of the year",
        "label": "Cash, Cash Equivalents, Restricted Cash, and Restricted Cash Equivalents",
        "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": [
      "r21",
      "r102",
      "r204"
     ]
    },
    "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect",
     "crdr": "debit",
     "calculation": {
      "http://www.tecogen.com/role/ConsolidatedStatementsofCashFlows": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedStatementsofCashFlows",
      "http://www.tecogen.com/role/NatureofbusinessandoperationsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Change in cash and cash equivalents",
        "terseLabel": "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": [
      "r2",
      "r102"
     ]
    },
    "us-gaap_CashFDICInsuredAmount": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CashFDICInsuredAmount",
     "crdr": "debit",
     "presentation": [
      "http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesConcentrationofCreditRiskDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cash, FDIC Insured Amount",
        "label": "Cash, FDIC Insured Amount",
        "documentation": "The amount of cash deposited in financial institutions as of the balance sheet date that is insured by the Federal Deposit Insurance Corporation."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CashUninsuredAmount": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CashUninsuredAmount",
     "crdr": "debit",
     "presentation": [
      "http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesConcentrationofCreditRiskDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cash, Uninsured Amount",
        "label": "Cash, Uninsured Amount",
        "documentation": "The amount of cash as of the balance sheet date that is not insured by the Federal Deposit Insurance Corporation."
       }
      }
     },
     "auth_ref": []
    },
    "tgen_ChangeInControlSeveranceBenefitPlanNoticePeriodForCancellation": {
     "xbrltype": "durationItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "ChangeInControlSeveranceBenefitPlanNoticePeriodForCancellation",
     "presentation": [
      "http://www.tecogen.com/role/CommitmentsandcontingenciesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Change in Control Severance Benefit Plan, notice period for cancellation",
        "label": "Change in Control Severance Benefit Plan, Notice Period for Cancellation",
        "documentation": "Change in Control Severance Benefit Plan, Notice Period for Cancellation"
       }
      }
     },
     "auth_ref": []
    },
    "tgen_ChangeInControlSeveranceBenefitPlanPeriodInForce": {
     "xbrltype": "durationItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "ChangeInControlSeveranceBenefitPlanPeriodInForce",
     "presentation": [
      "http://www.tecogen.com/role/CommitmentsandcontingenciesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Change in Control Severance Benefit Plan, period in force",
        "label": "Change in Control Severance Benefit Plan, Period in Force",
        "documentation": "Change in Control Severance Benefit Plan, Period in Force"
       }
      }
     },
     "auth_ref": []
    },
    "tgen_ChangeInControlSeveranceBenefitPlanPeriodInForceExtension": {
     "xbrltype": "durationItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "ChangeInControlSeveranceBenefitPlanPeriodInForceExtension",
     "presentation": [
      "http://www.tecogen.com/role/CommitmentsandcontingenciesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Change in Control Severance Benefit Plan, extension period",
        "label": "Change in Control Severance Benefit Plan, Period in Force, Extension",
        "documentation": "Change in Control Severance Benefit Plan, Period in Force, Extension"
       }
      }
     },
     "auth_ref": []
    },
    "tgen_ChangeInControlSeveranceBenefitPlanThresholdPeriodForTerminationAfterToChangeInControl": {
     "xbrltype": "durationItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "ChangeInControlSeveranceBenefitPlanThresholdPeriodForTerminationAfterToChangeInControl",
     "presentation": [
      "http://www.tecogen.com/role/CommitmentsandcontingenciesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Change in Control Severance Benefit Plan, qualifying termination period after change in control",
        "label": "Change in Control Severance Benefit Plan, Threshold Period for Termination after to Change in Control",
        "documentation": "Change in Control Severance Benefit Plan, Threshold Period for Termination after to Change in Control"
       }
      }
     },
     "auth_ref": []
    },
    "tgen_ChangeInControlSeveranceBenefitPlanThresholdPeriodForTerminationPriorToChangeInControl": {
     "xbrltype": "durationItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "ChangeInControlSeveranceBenefitPlanThresholdPeriodForTerminationPriorToChangeInControl",
     "presentation": [
      "http://www.tecogen.com/role/CommitmentsandcontingenciesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Change in Control Severance Benefit Plan, qualifying termination period prior to change in control",
        "label": "Change in Control Severance Benefit Plan, Threshold Period for Termination Prior to Change in Control",
        "documentation": "Change in Control Severance Benefit Plan, Threshold Period for Termination Prior to Change in Control"
       }
      }
     },
     "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": {
        "terseLabel": "Changed Peer Group, Footnote",
        "label": "Changed Peer Group, Footnote [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r891"
     ]
    },
    "tgen_ChillerMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "ChillerMember",
     "presentation": [
      "http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesRevenueDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Chiller",
        "label": "Chiller [Member]",
        "documentation": "Chiller"
       }
      }
     },
     "auth_ref": []
    },
    "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": {
        "terseLabel": "Change in Fair Value as of Vesting Date of Prior Year Equity Awards Vested in Covered Year",
        "label": "Change in Fair Value as of Vesting Date of Prior Year Equity Awards Vested in Covered Year [Member]"
       }
      }
     },
     "auth_ref": [
      "r888"
     ]
    },
    "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": {
        "terseLabel": "Year-over-Year Change in Fair Value of Equity Awards Granted in Prior Years That are Outstanding and Unvested",
        "label": "Year-over-Year Change in Fair Value of Equity Awards Granted in Prior Years That are Outstanding and Unvested [Member]"
       }
      }
     },
     "auth_ref": [
      "r886"
     ]
    },
    "dei_CityAreaCode": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "CityAreaCode",
     "presentation": [
      "http://www.tecogen.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "City Area Code",
        "label": "City Area Code",
        "documentation": "Area code of city"
       }
      }
     },
     "auth_ref": []
    },
    "ecd_CoSelectedMeasureAmt": {
     "xbrltype": "decimalItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "CoSelectedMeasureAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Company Selected Measure Amount",
        "label": "Company Selected Measure Amount"
       }
      }
     },
     "auth_ref": [
      "r892"
     ]
    },
    "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": {
        "terseLabel": "Company Selected Measure Name",
        "label": "Company Selected Measure Name"
       }
      }
     },
     "auth_ref": [
      "r892"
     ]
    },
    "tgen_CogenerationMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "CogenerationMember",
     "presentation": [
      "http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesRevenueDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cogeneration",
        "label": "Cogeneration [Member]",
        "documentation": "Cogeneration"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CommitmentsAndContingencies": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CommitmentsAndContingencies",
     "crdr": "credit",
     "calculation": {
      "http://www.tecogen.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_StockholdersEquity",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Commitments and contingencies",
        "label": "Commitments and Contingencies",
        "documentation": "Represents the caption on the face of the balance sheet to indicate that the entity has entered into (1) purchase or supply arrangements that will require expending a portion of its resources to meet the terms thereof, and (2) is exposed to potential losses or, less frequently, gains, arising from (a) possible claims against a company's resources due to future performance under contract terms, and (b) possible losses or likely gains from uncertainties that will ultimately be resolved when one or more future events that are deemed likely to occur do occur or fail to occur."
       }
      }
     },
     "auth_ref": [
      "r80",
      "r140",
      "r617",
      "r685"
     ]
    },
    "us-gaap_CommitmentsAndContingenciesDisclosureAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CommitmentsAndContingenciesDisclosureAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Commitments and Contingencies Disclosure [Abstract]",
        "label": "Commitments and Contingencies Disclosure [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CommitmentsContingenciesAndGuaranteesTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CommitmentsContingenciesAndGuaranteesTextBlock",
     "presentation": [
      "http://www.tecogen.com/role/Commitmentsandcontingencies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Commitments and contingencies",
        "label": "Commitments Contingencies and Guarantees [Text Block]",
        "documentation": "The entire disclosure for commitments, contingencies, and guarantees."
       }
      }
     },
     "auth_ref": [
      "r115",
      "r116",
      "r1016"
     ]
    },
    "us-gaap_CommonStockCapitalSharesReservedForFutureIssuance": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CommonStockCapitalSharesReservedForFutureIssuance",
     "presentation": [
      "http://www.tecogen.com/role/StockholdersequityStockBasedCompensationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Shares of common stock reserved for future issuance",
        "label": "Common Stock, Capital Shares Reserved for Future Issuance",
        "documentation": "Aggregate number of common shares reserved for future issuance."
       }
      }
     },
     "auth_ref": [
      "r83"
     ]
    },
    "us-gaap_CommonStockMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CommonStockMember",
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedStatementsofStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Common Stock 0.001 Par Value",
        "label": "Common Stock [Member]",
        "documentation": "Stock that is subordinate to all other stock of the issuer."
       }
      }
     },
     "auth_ref": [
      "r820",
      "r821",
      "r822",
      "r824",
      "r825",
      "r826",
      "r827",
      "r967",
      "r968",
      "r971",
      "r1074",
      "r1133",
      "r1136"
     ]
    },
    "us-gaap_CommonStockParOrStatedValuePerShare": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CommonStockParOrStatedValuePerShare",
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedBalanceSheetsParenthetical",
      "http://www.tecogen.com/role/ConsolidatedStatementsofStockholdersEquityParenthetical"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Common stock, par value (usd per share)",
        "label": "Common Stock, Par or Stated Value Per Share",
        "documentation": "Face amount or stated value per share of common stock."
       }
      }
     },
     "auth_ref": [
      "r83"
     ]
    },
    "us-gaap_CommonStockSharesAuthorized": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CommonStockSharesAuthorized",
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedBalanceSheetsParenthetical"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Common Stock, Shares Authorized",
        "label": "Common Stock, Shares Authorized",
        "documentation": "The maximum number of common shares permitted to be issued by an entity's charter and bylaws."
       }
      }
     },
     "auth_ref": [
      "r83",
      "r686"
     ]
    },
    "us-gaap_CommonStockSharesIssued": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CommonStockSharesIssued",
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedBalanceSheetsParenthetical"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Common Stock, Shares, Issued",
        "label": "Common Stock, Shares, Issued",
        "documentation": "Total number of common shares of an entity that have been sold or granted to shareholders (includes common shares that were issued, repurchased and remain in the treasury). These shares represent capital invested by the firm's shareholders and owners, and may be all or only a portion of the number of shares authorized. Shares issued include shares outstanding and shares held in the treasury."
       }
      }
     },
     "auth_ref": [
      "r83"
     ]
    },
    "us-gaap_CommonStockSharesOutstanding": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CommonStockSharesOutstanding",
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedBalanceSheetsParenthetical",
      "http://www.tecogen.com/role/StockholdersequityCommonStockandReceivablefromShareholderDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Common Stock, Shares, Outstanding",
        "verboseLabel": "Common stock, shares outstanding",
        "label": "Common Stock, Shares, Outstanding",
        "documentation": "Number of shares of common stock outstanding. Common stock represent the ownership interest in a corporation."
       }
      }
     },
     "auth_ref": [
      "r10",
      "r83",
      "r686",
      "r704",
      "r1136",
      "r1137"
     ]
    },
    "us-gaap_CommonStockValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CommonStockValue",
     "crdr": "credit",
     "calculation": {
      "http://www.tecogen.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_StockholdersEquity",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Stockholders\u2019 equity:",
        "label": "Common Stock, Value, Issued",
        "documentation": "Aggregate par or stated value of issued nonredeemable common stock (or common stock redeemable solely at the option of the issuer). This item includes treasury stock repurchased by the entity. Note: elements for number of nonredeemable common shares, par value and other disclosure concepts are in another section within stockholders' equity."
       }
      }
     },
     "auth_ref": [
      "r83",
      "r618",
      "r811"
     ]
    },
    "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": {
        "terseLabel": "Compensation Actually Paid vs. Company Selected Measure",
        "label": "Compensation Actually Paid vs. Company Selected Measure [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r897"
     ]
    },
    "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": {
        "terseLabel": "Compensation Actually Paid vs. Net Income",
        "label": "Compensation Actually Paid vs. Net Income [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r896"
     ]
    },
    "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": {
        "terseLabel": "Compensation Actually Paid vs. Other Measure",
        "label": "Compensation Actually Paid vs. Other Measure [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r898"
     ]
    },
    "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": {
        "terseLabel": "Compensation Actually Paid vs. Total Shareholder Return",
        "label": "Compensation Actually Paid vs. Total Shareholder Return [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r895"
     ]
    },
    "us-gaap_CompensationAndEmployeeBenefitPlansTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CompensationAndEmployeeBenefitPlansTextBlock",
     "presentation": [
      "http://www.tecogen.com/role/Retirementplans"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Retirement plans",
        "label": "Compensation and Employee Benefit Plans [Text Block]",
        "documentation": "The entire disclosure for an entity's employee compensation and benefit plans, including, but not limited to, postemployment and postretirement benefit plans, defined benefit pension plans, defined contribution plans, non-qualified and supplemental benefit plans, deferred compensation, share-based compensation, life insurance, severance, health care, unemployment and other benefit plans."
       }
      }
     },
     "auth_ref": [
      "r120",
      "r121",
      "r122",
      "r123"
     ]
    },
    "us-gaap_CompensationAndRetirementDisclosureAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CompensationAndRetirementDisclosureAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Retirement Benefits [Abstract]",
        "label": "Retirement Benefits [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ComputerSoftwareIntangibleAssetMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ComputerSoftwareIntangibleAssetMember",
     "presentation": [
      "http://www.tecogen.com/role/PropertyplantandequipmentSummaryofPropertyandEquipmentDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Computer software",
        "label": "Computer Software, Intangible Asset [Member]",
        "documentation": "Collection of computer programs and related data that provide instructions to a computer, for example, but not limited to, application program, control module or operating system, that perform one or more particular functions or tasks."
       }
      }
     },
     "auth_ref": [
      "r741",
      "r745",
      "r1000",
      "r1001",
      "r1002",
      "r1003",
      "r1005",
      "r1007",
      "r1010",
      "r1011"
     ]
    },
    "us-gaap_ConcentrationRiskBenchmarkDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ConcentrationRiskBenchmarkDomain",
     "presentation": [
      "http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesConcentrationofCreditRiskDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Concentration Risk Benchmark [Domain]",
        "label": "Concentration Risk Benchmark [Domain]",
        "documentation": "The denominator in a calculation of a disclosed concentration risk percentage."
       }
      }
     },
     "auth_ref": [
      "r27",
      "r28",
      "r57",
      "r58",
      "r285",
      "r736"
     ]
    },
    "us-gaap_ConcentrationRiskByBenchmarkAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ConcentrationRiskByBenchmarkAxis",
     "presentation": [
      "http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesConcentrationofCreditRiskDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Concentration Risk Benchmark [Axis]",
        "label": "Concentration Risk Benchmark [Axis]",
        "documentation": "Information by benchmark of concentration risk."
       }
      }
     },
     "auth_ref": [
      "r27",
      "r28",
      "r57",
      "r58",
      "r285",
      "r666",
      "r736"
     ]
    },
    "us-gaap_ConcentrationRiskByTypeAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ConcentrationRiskByTypeAxis",
     "presentation": [
      "http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesConcentrationofCreditRiskDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Concentration Risk Type [Axis]",
        "label": "Concentration Risk Type [Axis]",
        "documentation": "Information by type of concentration risk, for example, but not limited to, asset, liability, net assets, geographic, customer, employees, supplier, lender."
       }
      }
     },
     "auth_ref": [
      "r27",
      "r28",
      "r57",
      "r58",
      "r285",
      "r736",
      "r951"
     ]
    },
    "us-gaap_ConcentrationRiskCreditRisk": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ConcentrationRiskCreditRisk",
     "presentation": [
      "http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Concentration of Credit Risk",
        "label": "Concentration Risk, Credit Risk, Policy [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for credit risk."
       }
      }
     },
     "auth_ref": [
      "r61",
      "r158"
     ]
    },
    "us-gaap_ConcentrationRiskLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ConcentrationRiskLineItems",
     "presentation": [
      "http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesConcentrationofCreditRiskDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Concentration Risk [Line Items]",
        "label": "Concentration Risk [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": [
      "r736"
     ]
    },
    "us-gaap_ConcentrationRiskPercentage1": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ConcentrationRiskPercentage1",
     "presentation": [
      "http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesConcentrationofCreditRiskDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Concentration risk, percentage",
        "label": "Concentration Risk, Percentage",
        "documentation": "For an entity that discloses a concentration risk in relation to quantitative amount, which serves as the \"benchmark\" (or denominator) in the equation, this concept represents the concentration percentage derived from the division."
       }
      }
     },
     "auth_ref": [
      "r27",
      "r28",
      "r57",
      "r58",
      "r285"
     ]
    },
    "us-gaap_ConcentrationRiskTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ConcentrationRiskTable",
     "presentation": [
      "http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesConcentrationofCreditRiskDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Concentration Risk [Table]",
        "label": "Concentration Risk [Table]",
        "documentation": "Disclosure of information about concentration risk. Includes, but is not limited to, percentage of concentration risk and benchmark serving as denominator in calculation of percentage of concentration risk."
       }
      }
     },
     "auth_ref": [
      "r26",
      "r27",
      "r28",
      "r29",
      "r57",
      "r135",
      "r736"
     ]
    },
    "us-gaap_ConcentrationRiskTypeDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ConcentrationRiskTypeDomain",
     "presentation": [
      "http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesConcentrationofCreditRiskDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Concentration Risk Type [Domain]",
        "label": "Concentration Risk Type [Domain]",
        "documentation": "For an entity that discloses a concentration risk as a percentage of some financial balance or benchmark, identifies the type (for example, asset, liability, net assets, geographic, customer, employees, supplier, lender) of the concentration."
       }
      }
     },
     "auth_ref": [
      "r27",
      "r28",
      "r57",
      "r58",
      "r285",
      "r736"
     ]
    },
    "srt_ConsolidatedEntitiesAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/srt/2024",
     "localname": "ConsolidatedEntitiesAxis",
     "presentation": [
      "http://www.tecogen.com/role/StockholdersequityStockBasedCompensationDetails",
      "http://www.tecogen.com/role/StockholdersequityStockOptionActivityDetails",
      "http://www.tecogen.com/role/StockholdersequityTables",
      "http://www.tecogen.com/role/StockholdersequityWeightedAverageAssumptionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Consolidated Entities [Axis]",
        "label": "Consolidated Entities [Axis]"
       }
      }
     },
     "auth_ref": [
      "r212",
      "r511",
      "r512",
      "r515",
      "r516",
      "r589",
      "r737",
      "r1028",
      "r1031",
      "r1032"
     ]
    },
    "srt_ConsolidatedEntitiesDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2024",
     "localname": "ConsolidatedEntitiesDomain",
     "presentation": [
      "http://www.tecogen.com/role/StockholdersequityStockBasedCompensationDetails",
      "http://www.tecogen.com/role/StockholdersequityStockOptionActivityDetails",
      "http://www.tecogen.com/role/StockholdersequityTables",
      "http://www.tecogen.com/role/StockholdersequityWeightedAverageAssumptionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Consolidated Entities [Domain]",
        "label": "Consolidated Entities [Domain]"
       }
      }
     },
     "auth_ref": [
      "r212",
      "r511",
      "r512",
      "r515",
      "r516",
      "r589",
      "r737",
      "r1028",
      "r1031",
      "r1032"
     ]
    },
    "srt_ConsolidationItemsAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/srt/2024",
     "localname": "ConsolidationItemsAxis",
     "presentation": [
      "http://www.tecogen.com/role/SegmentsDetails",
      "http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesRevenueDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Consolidation Items [Axis]",
        "label": "Consolidation Items [Axis]"
       }
      }
     },
     "auth_ref": [
      "r146",
      "r212",
      "r243",
      "r251",
      "r272",
      "r273",
      "r274",
      "r275",
      "r276",
      "r278",
      "r279",
      "r280",
      "r362",
      "r363",
      "r364",
      "r365",
      "r367",
      "r368",
      "r369",
      "r370",
      "r371",
      "r764",
      "r765",
      "r1029",
      "r1030"
     ]
    },
    "srt_ConsolidationItemsDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2024",
     "localname": "ConsolidationItemsDomain",
     "presentation": [
      "http://www.tecogen.com/role/SegmentsDetails",
      "http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesRevenueDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Consolidation Items [Domain]",
        "label": "Consolidation Items [Domain]"
       }
      }
     },
     "auth_ref": [
      "r146",
      "r212",
      "r243",
      "r251",
      "r272",
      "r273",
      "r274",
      "r275",
      "r276",
      "r278",
      "r279",
      "r280",
      "r362",
      "r363",
      "r364",
      "r365",
      "r367",
      "r368",
      "r369",
      "r370",
      "r371",
      "r764",
      "r765",
      "r1029",
      "r1030"
     ]
    },
    "tgen_ConstructionInProgressExpenditures": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "ConstructionInProgressExpenditures",
     "crdr": "debit",
     "presentation": [
      "http://www.tecogen.com/role/LeasesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Construction in progress costs",
        "label": "Construction In Progress Expenditures",
        "documentation": "Construction In Progress Expenditures"
       }
      }
     },
     "auth_ref": []
    },
    "tgen_ContingentConsiderationArrangementsPolicyPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "ContingentConsiderationArrangementsPolicyPolicyTextBlock",
     "presentation": [
      "http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Acquisition-Related Contingent Consideration",
        "label": "Contingent Consideration Arrangements, Policy [Policy Text Block]",
        "documentation": "Contingent Consideration Arrangements, Policy"
       }
      }
     },
     "auth_ref": []
    },
    "tgen_ContingentConsiderationCurrentMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "ContingentConsiderationCurrentMember",
     "presentation": [
      "http://www.tecogen.com/role/FairValueMeasurementsScheduleofAssetReportedinConsolidatedBalanceSheetMeasuredatFairValueonRecurringBasisDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Contingent Consideration, Current",
        "label": "Contingent Consideration, Current [Member]",
        "documentation": "Contingent Consideration, Current"
       }
      }
     },
     "auth_ref": []
    },
    "tgen_ContingentConsiderationNoncurrentMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "ContingentConsiderationNoncurrentMember",
     "presentation": [
      "http://www.tecogen.com/role/FairValueMeasurementsScheduleofAssetReportedinConsolidatedBalanceSheetMeasuredatFairValueonRecurringBasisDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Contingent Consideration, Noncurrent",
        "label": "Contingent Consideration, Noncurrent [Member]",
        "documentation": "Contingent Consideration, Noncurrent"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ContractBasedIntangibleAssetsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ContractBasedIntangibleAssetsMember",
     "presentation": [
      "http://www.tecogen.com/role/IntangibleassetsandliabilitiesotherthangoodwillNarrativeDetails",
      "http://www.tecogen.com/role/IntangibleassetsandliabilitiesotherthangoodwillScheduleofAggregateFutureAmortizationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Contract related intangibles",
        "verboseLabel": "Contract related intangibles",
        "label": "Contract-Based Intangible Assets [Member]",
        "documentation": "Right received from contract, including, but not limited to, advertising contract, broadcast rights, franchise agreement, lease agreement, licensing agreement, and use rights."
       }
      }
     },
     "auth_ref": [
      "r15",
      "r1000",
      "r1001",
      "r1002",
      "r1003",
      "r1005",
      "r1007",
      "r1010",
      "r1011"
     ]
    },
    "us-gaap_ContractWithCustomerAssetNetCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ContractWithCustomerAssetNetCurrent",
     "crdr": "debit",
     "calculation": {
      "http://www.tecogen.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Unbilled revenue",
        "label": "Contract with Customer, Asset, after Allowance for Credit Loss, Current",
        "documentation": "Amount, after allowance for credit loss, of right to consideration in exchange for good or service transferred to customer when right is conditioned on something other than passage of time, classified as current."
       }
      }
     },
     "auth_ref": [
      "r402",
      "r403",
      "r414"
     ]
    },
    "tgen_ContractWithCustomerShippingAndHandlingBilled": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "ContractWithCustomerShippingAndHandlingBilled",
     "crdr": "credit",
     "presentation": [
      "http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Shipping and handling fees billed to customers",
        "label": "Contract With Customer, Shipping And Handling Billed",
        "documentation": "Contract With Customer, Shipping And Handling Billed"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CorporateAndOtherMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CorporateAndOtherMember",
     "presentation": [
      "http://www.tecogen.com/role/SegmentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Corporate, other and elimination",
        "label": "Corporate Segment and Other Operating Segment [Member]",
        "documentation": "Component of entity providing financial and operational oversight and administrative support considered to be operating segment and operating segment, classified as other. Excludes intersegment elimination and reconciling item."
       }
      }
     },
     "auth_ref": [
      "r974"
     ]
    },
    "us-gaap_CostOfGoodsAndServicesSold": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CostOfGoodsAndServicesSold",
     "crdr": "debit",
     "calculation": {
      "http://www.tecogen.com/role/ConsolidatedStatementsofOperations": {
       "parentTag": "us-gaap_GrossProfit",
       "weight": -1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedStatementsofOperations",
      "http://www.tecogen.com/role/SegmentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Total cost of sales",
        "verboseLabel": "Cost of sales",
        "label": "Cost of Goods and Services Sold",
        "documentation": "The aggregate costs related to goods produced and sold and services rendered by an entity during the reporting period. This excludes costs incurred during the reporting period related to financial services rendered and other revenue generating activities."
       }
      }
     },
     "auth_ref": [
      "r94",
      "r95",
      "r605"
     ]
    },
    "tgen_CostOfGoodsSoldShippingAndHandling": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "CostOfGoodsSoldShippingAndHandling",
     "crdr": "debit",
     "presentation": [
      "http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cost of goods sold, shipping and handling",
        "label": "Cost Of Goods Sold, Shipping And Handling",
        "documentation": "Cost Of Goods Sold, Shipping And Handling"
       }
      }
     },
     "auth_ref": []
    },
    "srt_CounterpartyNameAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/srt/2024",
     "localname": "CounterpartyNameAxis",
     "presentation": [
      "http://www.tecogen.com/role/NatureofbusinessandoperationsDetails",
      "http://www.tecogen.com/role/RelatedPartyNotesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Counterparty Name [Axis]",
        "label": "Counterparty Name [Axis]"
       }
      }
     },
     "auth_ref": [
      "r210",
      "r211",
      "r377",
      "r400",
      "r588",
      "r598",
      "r614",
      "r751",
      "r753"
     ]
    },
    "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": []
    },
    "dei_CurrentFiscalYearEndDate": {
     "xbrltype": "gMonthDayItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "CurrentFiscalYearEndDate",
     "presentation": [
      "http://www.tecogen.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Current Fiscal Year End Date",
        "label": "Current Fiscal Year End Date",
        "documentation": "End date of current fiscal year in the format --MM-DD."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CustomerConcentrationRiskMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CustomerConcentrationRiskMember",
     "presentation": [
      "http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesConcentrationofCreditRiskDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Customer concentration risk",
        "label": "Customer Concentration Risk [Member]",
        "documentation": "Reflects the percentage that revenues in the period from one or more significant customers is to net revenues, as defined by the entity, such as total net revenues, product line revenues, segment revenues. The risk is the materially adverse effects of loss of a significant customer."
       }
      }
     },
     "auth_ref": [
      "r107",
      "r285"
     ]
    },
    "us-gaap_CustomerContractsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CustomerContractsMember",
     "presentation": [
      "http://www.tecogen.com/role/IntangibleassetsotherthangoodwillScheduleofIntangibleAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Customer contract",
        "label": "Customer Contracts [Member]",
        "documentation": "Entity's established relationships with its customers through contracts."
       }
      }
     },
     "auth_ref": [
      "r50",
      "r1000",
      "r1001",
      "r1002",
      "r1003",
      "r1005",
      "r1007",
      "r1010",
      "r1011"
     ]
    },
    "cyd_CybersecurityRiskBoardCommitteeOrSubcommitteeResponsibleForOversightTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/cyd/2024",
     "localname": "CybersecurityRiskBoardCommitteeOrSubcommitteeResponsibleForOversightTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/cyd/role/CybersecurityRiskManagementAndStrategyDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cybersecurity Risk Board Committee or Subcommittee Responsible for Oversight [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r843",
      "r932"
     ]
    },
    "cyd_CybersecurityRiskBoardOfDirectorsOversightTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/cyd/2024",
     "localname": "CybersecurityRiskBoardOfDirectorsOversightTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/cyd/role/CybersecurityRiskManagementAndStrategyDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cybersecurity Risk Board of Directors Oversight [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r843",
      "r932"
     ]
    },
    "cyd_CybersecurityRiskManagementExpertiseOfManagementResponsibleTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/cyd/2024",
     "localname": "CybersecurityRiskManagementExpertiseOfManagementResponsibleTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/cyd/role/CybersecurityRiskManagementAndStrategyDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cybersecurity Risk Management Expertise of Management Responsible [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r845",
      "r934"
     ]
    },
    "cyd_CybersecurityRiskManagementPositionsOrCommitteesResponsibleFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/cyd/2024",
     "localname": "CybersecurityRiskManagementPositionsOrCommitteesResponsibleFlag",
     "presentation": [
      "http://xbrl.sec.gov/cyd/role/CybersecurityRiskManagementAndStrategyDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cybersecurity Risk Management Positions or Committees Responsible [Flag]"
       }
      }
     },
     "auth_ref": [
      "r845",
      "r934"
     ]
    },
    "cyd_CybersecurityRiskManagementPositionsOrCommitteesResponsibleReportToBoardFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/cyd/2024",
     "localname": "CybersecurityRiskManagementPositionsOrCommitteesResponsibleReportToBoardFlag",
     "presentation": [
      "http://xbrl.sec.gov/cyd/role/CybersecurityRiskManagementAndStrategyDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cybersecurity Risk Management Positions or Committees Responsible Report to Board [Flag]"
       }
      }
     },
     "auth_ref": [
      "r847",
      "r936"
     ]
    },
    "cyd_CybersecurityRiskManagementPositionsOrCommitteesResponsibleTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/cyd/2024",
     "localname": "CybersecurityRiskManagementPositionsOrCommitteesResponsibleTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/cyd/role/CybersecurityRiskManagementAndStrategyDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cybersecurity Risk Management Positions or Committees Responsible [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r845",
      "r934"
     ]
    },
    "cyd_CybersecurityRiskManagementProcessesForAssessingIdentifyingAndManagingThreatsTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/cyd/2024",
     "localname": "CybersecurityRiskManagementProcessesForAssessingIdentifyingAndManagingThreatsTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/cyd/role/CybersecurityRiskManagementAndStrategyDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cybersecurity Risk Management Processes for Assessing, Identifying, and Managing Threats [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r838",
      "r927"
     ]
    },
    "cyd_CybersecurityRiskManagementProcessesIntegratedFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/cyd/2024",
     "localname": "CybersecurityRiskManagementProcessesIntegratedFlag",
     "presentation": [
      "http://xbrl.sec.gov/cyd/role/CybersecurityRiskManagementAndStrategyDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cybersecurity Risk Management Processes Integrated [Flag]"
       }
      }
     },
     "auth_ref": [
      "r839",
      "r928"
     ]
    },
    "cyd_CybersecurityRiskManagementProcessesIntegratedTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/cyd/2024",
     "localname": "CybersecurityRiskManagementProcessesIntegratedTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/cyd/role/CybersecurityRiskManagementAndStrategyDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cybersecurity Risk Management Processes Integrated [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r839",
      "r928"
     ]
    },
    "cyd_CybersecurityRiskManagementStrategyAndGovernanceAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/cyd/2024",
     "localname": "CybersecurityRiskManagementStrategyAndGovernanceAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Cybersecurity Risk Management, Strategy, and Governance [Abstract]"
       }
      }
     },
     "auth_ref": [
      "r837",
      "r926"
     ]
    },
    "cyd_CybersecurityRiskManagementStrategyAndGovernanceLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/cyd/2024",
     "localname": "CybersecurityRiskManagementStrategyAndGovernanceLineItems",
     "presentation": [
      "http://xbrl.sec.gov/cyd/role/CybersecurityRiskManagementAndStrategyDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cybersecurity Risk Management, Strategy, and Governance [Line Items]"
       }
      }
     },
     "auth_ref": [
      "r837",
      "r926"
     ]
    },
    "cyd_CybersecurityRiskManagementStrategyAndGovernanceTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/cyd/2024",
     "localname": "CybersecurityRiskManagementStrategyAndGovernanceTable",
     "presentation": [
      "http://xbrl.sec.gov/cyd/role/CybersecurityRiskManagementAndStrategyDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cybersecurity Risk Management, Strategy, and Governance [Table]"
       }
      }
     },
     "auth_ref": [
      "r837",
      "r926"
     ]
    },
    "cyd_CybersecurityRiskManagementThirdPartyEngagedFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/cyd/2024",
     "localname": "CybersecurityRiskManagementThirdPartyEngagedFlag",
     "presentation": [
      "http://xbrl.sec.gov/cyd/role/CybersecurityRiskManagementAndStrategyDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cybersecurity Risk Management Third Party Engaged [Flag]"
       }
      }
     },
     "auth_ref": [
      "r840",
      "r929"
     ]
    },
    "cyd_CybersecurityRiskMateriallyAffectedOrReasonablyLikelyToMateriallyAffectRegistrantFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/cyd/2024",
     "localname": "CybersecurityRiskMateriallyAffectedOrReasonablyLikelyToMateriallyAffectRegistrantFlag",
     "presentation": [
      "http://xbrl.sec.gov/cyd/role/CybersecurityRiskManagementAndStrategyDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cybersecurity Risk Materially Affected or Reasonably Likely to Materially Affect Registrant [Flag]"
       }
      }
     },
     "auth_ref": [
      "r842",
      "r931"
     ]
    },
    "cyd_CybersecurityRiskMateriallyAffectedOrReasonablyLikelyToMateriallyAffectRegistrantTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/cyd/2024",
     "localname": "CybersecurityRiskMateriallyAffectedOrReasonablyLikelyToMateriallyAffectRegistrantTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/cyd/role/CybersecurityRiskManagementAndStrategyDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cybersecurity Risk Materially Affected or Reasonably Likely to Materially Affect Registrant [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r842",
      "r931"
     ]
    },
    "cyd_CybersecurityRiskProcessForInformingBoardCommitteeOrSubcommitteeResponsibleForOversightTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/cyd/2024",
     "localname": "CybersecurityRiskProcessForInformingBoardCommitteeOrSubcommitteeResponsibleForOversightTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/cyd/role/CybersecurityRiskManagementAndStrategyDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cybersecurity Risk Process for Informing Board Committee or Subcommittee Responsible for Oversight [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r843",
      "r932"
     ]
    },
    "cyd_CybersecurityRiskProcessForInformingManagementOrCommitteesResponsibleTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/cyd/2024",
     "localname": "CybersecurityRiskProcessForInformingManagementOrCommitteesResponsibleTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/cyd/role/CybersecurityRiskManagementAndStrategyDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cybersecurity Risk Process for Informing Management or Committees Responsible [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r846",
      "r935"
     ]
    },
    "cyd_CybersecurityRiskRoleOfManagementTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/cyd/2024",
     "localname": "CybersecurityRiskRoleOfManagementTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/cyd/role/CybersecurityRiskManagementAndStrategyDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cybersecurity Risk Role of Management [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r844",
      "r933"
     ]
    },
    "cyd_CybersecurityRiskThirdPartyOversightAndIdentificationProcessesFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/cyd/2024",
     "localname": "CybersecurityRiskThirdPartyOversightAndIdentificationProcessesFlag",
     "presentation": [
      "http://xbrl.sec.gov/cyd/role/CybersecurityRiskManagementAndStrategyDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cybersecurity Risk Third Party Oversight and Identification Processes [Flag]"
       }
      }
     },
     "auth_ref": [
      "r841",
      "r930"
     ]
    },
    "us-gaap_DebtDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DebtDisclosureTextBlock",
     "presentation": [
      "http://www.tecogen.com/role/RelatedPartyNotes"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Related Party Notes",
        "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": [
      "r117",
      "r205",
      "r338",
      "r339",
      "r340",
      "r341",
      "r342",
      "r360",
      "r361",
      "r373",
      "r379",
      "r380",
      "r381",
      "r382",
      "r383",
      "r384",
      "r389",
      "r396",
      "r397",
      "r398",
      "r559"
     ]
    },
    "us-gaap_DebtInstrumentAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DebtInstrumentAxis",
     "presentation": [
      "http://www.tecogen.com/role/IncometaxesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Debt Instrument [Axis]",
        "label": "Debt Instrument [Axis]",
        "documentation": "Information by type of debt instrument, including, but not limited to, draws against credit facilities."
       }
      }
     },
     "auth_ref": [
      "r16",
      "r74",
      "r75",
      "r137",
      "r139",
      "r212",
      "r374",
      "r375",
      "r376",
      "r377",
      "r378",
      "r380",
      "r385",
      "r386",
      "r387",
      "r388",
      "r390",
      "r391",
      "r392",
      "r393",
      "r394",
      "r395",
      "r774",
      "r775",
      "r776",
      "r777",
      "r778",
      "r809",
      "r965",
      "r1012",
      "r1013",
      "r1014",
      "r1082",
      "r1083"
     ]
    },
    "us-gaap_DebtInstrumentDecreaseForgiveness": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DebtInstrumentDecreaseForgiveness",
     "crdr": "debit",
     "presentation": [
      "http://www.tecogen.com/role/IncometaxesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Debt forgiveness, amount",
        "label": "Debt Instrument, Decrease, Forgiveness",
        "documentation": "Decrease for amounts of indebtedness forgiven by the holder of the debt instrument."
       }
      }
     },
     "auth_ref": [
      "r965"
     ]
    },
    "tgen_DebtInstrumentForgivenessAccruedInterest": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "DebtInstrumentForgivenessAccruedInterest",
     "crdr": "debit",
     "presentation": [
      "http://www.tecogen.com/role/IncometaxesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Debt forgiveness, accrued interest",
        "label": "Debt Instrument, Forgiveness, Accrued Interest",
        "documentation": "Debt Instrument, Forgiveness, Accrued Interest"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DebtInstrumentNameDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DebtInstrumentNameDomain",
     "presentation": [
      "http://www.tecogen.com/role/IncometaxesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Debt Instrument, Name [Domain]",
        "label": "Debt Instrument, Name [Domain]",
        "documentation": "The name for the particular debt instrument or borrowing that distinguishes it from other debt instruments or borrowings, including draws against credit facilities."
       }
      }
     },
     "auth_ref": [
      "r16",
      "r212",
      "r374",
      "r375",
      "r376",
      "r377",
      "r378",
      "r380",
      "r385",
      "r386",
      "r387",
      "r388",
      "r390",
      "r391",
      "r392",
      "r393",
      "r394",
      "r395",
      "r774",
      "r775",
      "r776",
      "r777",
      "r778",
      "r809",
      "r965",
      "r1012",
      "r1013",
      "r1014",
      "r1082",
      "r1083"
     ]
    },
    "tgen_DebtInstrumentPrincipalDecreaseForgiveness": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "DebtInstrumentPrincipalDecreaseForgiveness",
     "crdr": "debit",
     "presentation": [
      "http://www.tecogen.com/role/IncometaxesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Debt forgiveness, principal amount",
        "label": "Debt Instrument, Principal Decrease, Forgiveness",
        "documentation": "Debt Instrument, Principal Decrease, Forgiveness"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DeferredRevenueCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DeferredRevenueCurrent",
     "crdr": "credit",
     "calculation": {
      "http://www.tecogen.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_LiabilitiesCurrent",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Deferred revenue",
        "label": "Deferred Revenue, Current",
        "documentation": "Amount of deferred income and obligation to transfer product and service to customer for which consideration has been received or is receivable, classified as current."
       }
      }
     },
     "auth_ref": [
      "r956"
     ]
    },
    "us-gaap_DeferredRevenueNoncurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DeferredRevenueNoncurrent",
     "crdr": "credit",
     "calculation": {
      "http://www.tecogen.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_Liabilities",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Deferred revenue, net of current portion",
        "label": "Deferred Revenue, Noncurrent",
        "documentation": "Amount of deferred income and obligation to transfer product and service to customer for which consideration has been received or is receivable, classified as noncurrent."
       }
      }
     },
     "auth_ref": [
      "r957"
     ]
    },
    "us-gaap_DeferredRevenueRevenueRecognized1": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DeferredRevenueRevenueRecognized1",
     "crdr": "credit",
     "presentation": [
      "http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Deferred revenue recognized",
        "label": "Deferred Revenue, Revenue Recognized",
        "documentation": "Amount of revenue recognized that was previously reported as deferred or unearned revenue."
       }
      }
     },
     "auth_ref": []
    },
    "tgen_DeferredTaxAssetLeases": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "DeferredTaxAssetLeases",
     "crdr": "debit",
     "calculation": {
      "http://www.tecogen.com/role/IncometaxesScheduleofDeferredTaxAssetsDetails": {
       "parentTag": "us-gaap_DeferredTaxAssetsGross",
       "weight": 1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/IncometaxesScheduleofDeferredTaxAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Leases",
        "label": "Deferred Tax Asset, Leases",
        "documentation": "Deferred Tax Asset, Leases"
       }
      }
     },
     "auth_ref": []
    },
    "tgen_DeferredTaxAssetTaxDeferredExpenseReservesAndAccrualsAccruedLiabilitiesAndOther": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "DeferredTaxAssetTaxDeferredExpenseReservesAndAccrualsAccruedLiabilitiesAndOther",
     "crdr": "debit",
     "calculation": {
      "http://www.tecogen.com/role/IncometaxesScheduleofDeferredTaxAssetsDetails": {
       "parentTag": "us-gaap_DeferredTaxAssetsGross",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/IncometaxesScheduleofDeferredTaxAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accrued expenses and other",
        "label": "Deferred Tax Asset, Tax Deferred Expense, Reserves And Accruals Accrued Liabilities And Other",
        "documentation": "Deferred Tax Asset, Tax Deferred Expense, Reserves And Accruals Accrued Liabilities And Other"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DeferredTaxAssetsGoodwillAndIntangibleAssets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DeferredTaxAssetsGoodwillAndIntangibleAssets",
     "crdr": "debit",
     "calculation": {
      "http://www.tecogen.com/role/IncometaxesScheduleofDeferredTaxAssetsDetails": {
       "parentTag": "us-gaap_DeferredTaxAssetsGross",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/IncometaxesScheduleofDeferredTaxAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Intangibles",
        "label": "Deferred Tax Assets, Goodwill and Intangible Assets",
        "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from intangible assets including goodwill."
       }
      }
     },
     "auth_ref": [
      "r1069"
     ]
    },
    "us-gaap_DeferredTaxAssetsGross": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DeferredTaxAssetsGross",
     "crdr": "debit",
     "calculation": {
      "http://www.tecogen.com/role/IncometaxesScheduleofDeferredTaxAssetsDetails": {
       "parentTag": "us-gaap_DeferredTaxLiabilities",
       "weight": -1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/IncometaxesScheduleofDeferredTaxAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Deferred tax assets",
        "label": "Deferred Tax Assets, Gross",
        "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences and carryforwards."
       }
      }
     },
     "auth_ref": [
      "r484"
     ]
    },
    "us-gaap_DeferredTaxAssetsInventory": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DeferredTaxAssetsInventory",
     "crdr": "debit",
     "calculation": {
      "http://www.tecogen.com/role/IncometaxesScheduleofDeferredTaxAssetsDetails": {
       "parentTag": "us-gaap_DeferredTaxAssetsGross",
       "weight": 1.0,
       "order": 8.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/IncometaxesScheduleofDeferredTaxAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Inventory",
        "label": "Deferred Tax Assets, Inventory",
        "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from inventory."
       }
      }
     },
     "auth_ref": [
      "r1069"
     ]
    },
    "us-gaap_DeferredTaxAssetsOperatingLossCarryforwards": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DeferredTaxAssetsOperatingLossCarryforwards",
     "crdr": "debit",
     "calculation": {
      "http://www.tecogen.com/role/IncometaxesScheduleofDeferredTaxAssetsDetails": {
       "parentTag": "us-gaap_DeferredTaxAssetsGross",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/IncometaxesScheduleofDeferredTaxAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Net operating loss carryforwards",
        "label": "Deferred Tax Assets, Operating Loss Carryforwards",
        "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible operating loss carryforwards."
       }
      }
     },
     "auth_ref": [
      "r1069"
     ]
    },
    "us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsNotSubjectToExpiration": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DeferredTaxAssetsOperatingLossCarryforwardsNotSubjectToExpiration",
     "crdr": "debit",
     "presentation": [
      "http://www.tecogen.com/role/IncometaxesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "NOLs with indefinite carryforward",
        "label": "Deferred Tax Assets, Operating Loss Carryforwards, Not Subject to Expiration",
        "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible operating loss carryforwards that are not subject to expiration dates."
       }
      }
     },
     "auth_ref": [
      "r1069"
     ]
    },
    "us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsSubjectToExpiration": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DeferredTaxAssetsOperatingLossCarryforwardsSubjectToExpiration",
     "crdr": "debit",
     "presentation": [
      "http://www.tecogen.com/role/IncometaxesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "NOLs which expire",
        "label": "Deferred Tax Assets, Operating Loss Carryforwards, Subject to Expiration",
        "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible operating loss carryforwards that are subject to expiration dates."
       }
      }
     },
     "auth_ref": [
      "r1069"
     ]
    },
    "us-gaap_DeferredTaxAssetsOther": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DeferredTaxAssetsOther",
     "crdr": "debit",
     "calculation": {
      "http://www.tecogen.com/role/IncometaxesScheduleofDeferredTaxAssetsDetails": {
       "parentTag": "us-gaap_DeferredTaxAssetsGross",
       "weight": 1.0,
       "order": 10.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/IncometaxesScheduleofDeferredTaxAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Other",
        "label": "Deferred Tax Assets, Other",
        "documentation": "Amount, before allocation of valuation allowance, of deferred tax asset attributable to deductible temporary differences, classified as other."
       }
      }
     },
     "auth_ref": [
      "r1069"
     ]
    },
    "us-gaap_DeferredTaxAssetsPropertyPlantAndEquipment": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DeferredTaxAssetsPropertyPlantAndEquipment",
     "crdr": "debit",
     "calculation": {
      "http://www.tecogen.com/role/IncometaxesScheduleofDeferredTaxAssetsDetails": {
       "parentTag": "us-gaap_DeferredTaxAssetsGross",
       "weight": 1.0,
       "order": 9.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/IncometaxesScheduleofDeferredTaxAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Property, plant and equipment",
        "label": "Deferred Tax Assets, Property, Plant and Equipment",
        "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from property, plant, and equipment."
       }
      }
     },
     "auth_ref": [
      "r1069"
     ]
    },
    "us-gaap_DeferredTaxAssetsTaxCreditCarryforwards": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DeferredTaxAssetsTaxCreditCarryforwards",
     "crdr": "debit",
     "calculation": {
      "http://www.tecogen.com/role/IncometaxesScheduleofDeferredTaxAssetsDetails": {
       "parentTag": "us-gaap_DeferredTaxAssetsGross",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/IncometaxesScheduleofDeferredTaxAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "R&amp;D and ITC credit carryforwards",
        "label": "Deferred Tax Assets, Tax Credit Carryforwards",
        "documentation": "Amount, before allocation of a valuation allowances, of deferred tax assets attributable to deductible tax credit carryforwards including, but not limited to, research, foreign, general business, alternative minimum tax, and other deductible tax credit carryforwards."
       }
      }
     },
     "auth_ref": [
      "r1069"
     ]
    },
    "us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefits": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefits",
     "crdr": "debit",
     "calculation": {
      "http://www.tecogen.com/role/IncometaxesScheduleofDeferredTaxAssetsDetails": {
       "parentTag": "us-gaap_DeferredTaxAssetsGross",
       "weight": 1.0,
       "order": 7.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/IncometaxesScheduleofDeferredTaxAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Stock options",
        "label": "Deferred Tax Assets, Tax Deferred Expense, Compensation and Benefits",
        "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from compensation and benefits costs."
       }
      }
     },
     "auth_ref": [
      "r1069"
     ]
    },
    "us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts",
     "crdr": "debit",
     "calculation": {
      "http://www.tecogen.com/role/IncometaxesScheduleofDeferredTaxAssetsDetails": {
       "parentTag": "us-gaap_DeferredTaxAssetsGross",
       "weight": 1.0,
       "order": 6.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/IncometaxesScheduleofDeferredTaxAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accounts receivable",
        "label": "Deferred Tax Asset, Tax Deferred Expense, Reserve and Accrual, Accounts Receivable, Allowance for Credit Loss",
        "documentation": "Amount, before allocation of valuation allowance, of deferred tax asset attributable to deductible temporary difference from allowance for credit loss on accounts receivable."
       }
      }
     },
     "auth_ref": [
      "r1069"
     ]
    },
    "us-gaap_DeferredTaxAssetsValuationAllowance": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DeferredTaxAssetsValuationAllowance",
     "crdr": "credit",
     "calculation": {
      "http://www.tecogen.com/role/IncometaxesScheduleofDeferredTaxAssetsDetails": {
       "parentTag": "us-gaap_DeferredTaxLiabilities",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/IncometaxesScheduleofDeferredTaxAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Valuation allowance",
        "label": "Deferred Tax Assets, Valuation Allowance",
        "documentation": "Amount of deferred tax assets for which it is more likely than not that a tax benefit will not be realized."
       }
      }
     },
     "auth_ref": [
      "r485"
     ]
    },
    "us-gaap_DeferredTaxLiabilities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DeferredTaxLiabilities",
     "crdr": "credit",
     "calculation": {
      "http://www.tecogen.com/role/IncometaxesScheduleofDeferredTaxAssetsDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/IncometaxesScheduleofDeferredTaxAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTotalLabel": "Deferred tax assets, net",
        "label": "Deferred Tax Liabilities, Net",
        "documentation": "Amount, after deferred tax asset, of deferred tax liability attributable to taxable differences without jurisdictional netting."
       }
      }
     },
     "auth_ref": [
      "r1065"
     ]
    },
    "us-gaap_DefinedContributionPlanCostRecognized": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DefinedContributionPlanCostRecognized",
     "crdr": "debit",
     "presentation": [
      "http://www.tecogen.com/role/RetirementplansDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Contributions to plan",
        "label": "Defined Contribution Plan, Cost",
        "documentation": "Amount of cost for defined contribution plan."
       }
      }
     },
     "auth_ref": [
      "r423"
     ]
    },
    "us-gaap_DefinedContributionPlanEmployerMatchingContributionPercent": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DefinedContributionPlanEmployerMatchingContributionPercent",
     "presentation": [
      "http://www.tecogen.com/role/RetirementplansDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Maximum employer annual contribution per employee, percent",
        "label": "Defined Contribution Plan, Employer Matching Contribution, Percent of Employees' Gross Pay",
        "documentation": "Percentage of employees' gross pay for which the employer contributes a matching contribution to a defined contribution plan."
       }
      }
     },
     "auth_ref": []
    },
    "tgen_DefinedContributionPlanMaximumAnnualEmployerMatchingContributionPerParticipant": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "DefinedContributionPlanMaximumAnnualEmployerMatchingContributionPerParticipant",
     "crdr": "credit",
     "presentation": [
      "http://www.tecogen.com/role/RetirementplansDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Maximum annual employer matching contribution per participant",
        "label": "Defined Contribution Plan, Maximum Annual Employer Matching Contribution Per Participant",
        "documentation": "Defined Contribution Plan, Maximum Annual Employer Matching Contribution Per Participant"
       }
      }
     },
     "auth_ref": []
    },
    "tgen_DefinedContributionPlanMaximumQuarterlyEmployerMatchingContributionPerParticipant": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "DefinedContributionPlanMaximumQuarterlyEmployerMatchingContributionPerParticipant",
     "crdr": "debit",
     "presentation": [
      "http://www.tecogen.com/role/RetirementplansDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Maximum quarterly employer matching contribution per participant",
        "label": "Defined Contribution Plan, Maximum Quarterly Employer Matching Contribution Per Participant",
        "documentation": "Defined Contribution Plan, Maximum Quarterly Employer Matching Contribution Per Participant"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DepreciationDepletionAndAmortization": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DepreciationDepletionAndAmortization",
     "crdr": "debit",
     "calculation": {
      "http://www.tecogen.com/role/ConsolidatedStatementsofCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 12.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Depreciation, accretion and amortization, net",
        "label": "Depreciation, Depletion and Amortization",
        "documentation": "The aggregate expense recognized in the current period that allocates the cost of tangible assets, intangible assets, or depleting assets to periods that benefit from use of the assets."
       }
      }
     },
     "auth_ref": [
      "r6",
      "r243",
      "r254",
      "r278",
      "r764",
      "r765"
     ]
    },
    "tgen_DepreciationDepletionandAmortizationPropertyPlantandEquipment": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "DepreciationDepletionandAmortizationPropertyPlantandEquipment",
     "crdr": "debit",
     "presentation": [
      "http://www.tecogen.com/role/PropertyplantandequipmentNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Depreciation and amortization",
        "label": "Depreciation, Depletion and Amortization, Property, Plant and Equipment",
        "documentation": "Depreciation, Depletion and Amortization, Property, Plant and Equipment"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DetailsOfImpairmentOfLongLivedAssetsHeldAndUsedByAssetTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DetailsOfImpairmentOfLongLivedAssetsHeldAndUsedByAssetTextBlock",
     "presentation": [
      "http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesSummaryofSignificantAccountingPoliciesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Impairment of Long-Lived Assets",
        "label": "Details of Impairment of Long-Lived Assets Held and Used by Asset [Table Text Block]",
        "documentation": "Tabular disclosure for impairment of long-lived assets held and used by an entity which includes a description of the impaired long-lived asset and facts and circumstances leading to the impairment, aggregate amount of the impairment loss and where the loss is located in the income statement, method(s) for determining fair value, and the segment in which the impaired long-lived asset is reported."
       }
      }
     },
     "auth_ref": [
      "r38",
      "r114"
     ]
    },
    "us-gaap_DevelopedTechnologyRightsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DevelopedTechnologyRightsMember",
     "presentation": [
      "http://www.tecogen.com/role/IntangibleassetsotherthangoodwillScheduleofIntangibleAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Developed Technology",
        "label": "Developed Technology Rights [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": [
      "r132",
      "r1000",
      "r1001",
      "r1002",
      "r1003",
      "r1005",
      "r1007",
      "r1010",
      "r1011"
     ]
    },
    "us-gaap_DilutiveSecuritiesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DilutiveSecuritiesAbstract",
     "presentation": [
      "http://www.tecogen.com/role/LosspercommonshareScheduleofLossPerCommonShareBasicandDilutedDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Dilutive Securities, Effect on Basic Earnings Per Share [Abstract]",
        "label": "Dilutive Securities, Effect on Basic Earnings Per Share [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "srt_DirectorMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2024",
     "localname": "DirectorMember",
     "presentation": [
      "http://www.tecogen.com/role/RelatedPartyNotesDetails",
      "http://www.tecogen.com/role/StockholdersequityStockBasedCompensationDetails",
      "http://www.tecogen.com/role/SubsequentEventsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Director",
        "label": "Director [Member]"
       }
      }
     },
     "auth_ref": [
      "r981",
      "r1134"
     ]
    },
    "us-gaap_DisaggregationOfRevenueLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DisaggregationOfRevenueLineItems",
     "presentation": [
      "http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesAdditionalInformationDetails",
      "http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesRevenueDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Disaggregation of Revenue [Line Items]",
        "label": "Disaggregation of Revenue [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": [
      "r413",
      "r780",
      "r781",
      "r782",
      "r783",
      "r784",
      "r785",
      "r786"
     ]
    },
    "us-gaap_DisaggregationOfRevenueTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DisaggregationOfRevenueTable",
     "presentation": [
      "http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesAdditionalInformationDetails",
      "http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesRevenueDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Disaggregation of Revenue [Table]",
        "label": "Disaggregation of Revenue [Table]",
        "documentation": "Disclosure of information about disaggregation of revenue into categories depicting how nature, amount, timing, and uncertainty of revenue and cash flows are affected by economic factor."
       }
      }
     },
     "auth_ref": [
      "r413",
      "r780",
      "r781",
      "r782",
      "r783",
      "r784",
      "r785",
      "r786"
     ]
    },
    "us-gaap_DisaggregationOfRevenueTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DisaggregationOfRevenueTableTextBlock",
     "presentation": [
      "http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesSummaryofSignificantAccountingPoliciesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Disaggregation of Revenue",
        "label": "Disaggregation of Revenue [Table Text Block]",
        "documentation": "Tabular disclosure of disaggregation of revenue into categories depicting how nature, amount, timing, and uncertainty of revenue and cash flows are affected by economic factor."
       }
      }
     },
     "auth_ref": [
      "r1034"
     ]
    },
    "us-gaap_DiscontinuedOperationsAndDisposalGroupsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DiscontinuedOperationsAndDisposalGroupsAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Discontinued Operations and Disposal Groups [Abstract]",
        "label": "Discontinued Operations and Disposal Groups [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DisposalGroupsIncludingDiscontinuedOperationsDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DisposalGroupsIncludingDiscontinuedOperationsDisclosureTextBlock",
     "presentation": [
      "http://www.tecogen.com/role/SaleofEnergyProducingAssetsandGoodwillImpairment"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Sale of Energy Producing Assets and Goodwill Impairment",
        "label": "Disposal Groups, Including Discontinued Operations, Disclosure [Text Block]",
        "documentation": "The entire disclosure related to a disposal group. Includes, but is not limited to, a discontinued operation, disposal classified as held-for-sale or disposed of by means other than sale or disposal of an individually significant component."
       }
      }
     },
     "auth_ref": [
      "r62",
      "r110"
     ]
    },
    "dei_DocumentAnnualReport": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "DocumentAnnualReport",
     "presentation": [
      "http://www.tecogen.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Document Annual Report",
        "label": "Document Annual Report",
        "documentation": "Boolean flag that is true only for a form used as an annual report."
       }
      }
     },
     "auth_ref": [
      "r834",
      "r835",
      "r858"
     ]
    },
    "dei_DocumentFinStmtErrorCorrectionFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "DocumentFinStmtErrorCorrectionFlag",
     "presentation": [
      "http://www.tecogen.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Document Financial Statement Error Correction [Flag]",
        "label": "Document Financial Statement Error Correction [Flag]",
        "documentation": "Indicates whether any of the financial statement period in the filing include a restatement due to error correction."
       }
      }
     },
     "auth_ref": [
      "r834",
      "r835",
      "r858",
      "r901"
     ]
    },
    "dei_DocumentFiscalPeriodFocus": {
     "xbrltype": "fiscalPeriodItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "DocumentFiscalPeriodFocus",
     "presentation": [
      "http://www.tecogen.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Document Fiscal Period Focus",
        "label": "Document Fiscal Period Focus",
        "documentation": "Fiscal period values are FY, Q1, Q2, and Q3. 1st, 2nd and 3rd quarter 10-Q or 10-QT statements have value Q1, Q2, and Q3 respectively, with 10-K, 10-KT or other fiscal year statements having FY."
       }
      }
     },
     "auth_ref": []
    },
    "dei_DocumentFiscalYearFocus": {
     "xbrltype": "gYearItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "DocumentFiscalYearFocus",
     "presentation": [
      "http://www.tecogen.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Document Fiscal Year Focus",
        "label": "Document Fiscal Year Focus",
        "documentation": "This is focus fiscal year of the document report in YYYY format. For a 2006 annual report, which may also provide financial information from prior periods, fiscal 2006 should be given as the fiscal year focus. Example: 2006."
       }
      }
     },
     "auth_ref": []
    },
    "dei_DocumentPeriodEndDate": {
     "xbrltype": "dateItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "DocumentPeriodEndDate",
     "presentation": [
      "http://www.tecogen.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Document Period End Date",
        "label": "Document Period End Date",
        "documentation": "For the EDGAR submission types of Form 8-K: the date of the report, the date of the earliest event reported; for the EDGAR submission types of Form N-1A: the filing date; for all other submission types: the end of the reporting or transition period. The format of the date is YYYY-MM-DD."
       }
      }
     },
     "auth_ref": []
    },
    "dei_DocumentTransitionReport": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "DocumentTransitionReport",
     "presentation": [
      "http://www.tecogen.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Document Transition Report",
        "label": "Document Transition Report",
        "documentation": "Boolean flag that is true only for a form used as a transition report."
       }
      }
     },
     "auth_ref": [
      "r879"
     ]
    },
    "dei_DocumentType": {
     "xbrltype": "submissionTypeItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "DocumentType",
     "presentation": [
      "http://www.tecogen.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Document Type",
        "label": "Document Type",
        "documentation": "The type of document being provided (such as 10-K, 10-Q, 485BPOS, etc). The document type is limited to the same value as the supporting SEC submission type, or the word 'Other'."
       }
      }
     },
     "auth_ref": []
    },
    "dei_DocumentsIncorporatedByReferenceTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "DocumentsIncorporatedByReferenceTextBlock",
     "presentation": [
      "http://www.tecogen.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Documents Incorporated by Reference",
        "label": "Documents Incorporated by Reference [Text Block]",
        "documentation": "Documents incorporated by reference."
       }
      }
     },
     "auth_ref": [
      "r832"
     ]
    },
    "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": {
        "terseLabel": "Dividends or Other Earnings Paid on Equity Awards not Otherwise Reflected in Total Compensation for Covered Year",
        "label": "Dividends or Other Earnings Paid on Equity Awards not Otherwise Reflected in Total Compensation for Covered Year [Member]"
       }
      }
     },
     "auth_ref": [
      "r890"
     ]
    },
    "tgen_EarlR.LewisIIIMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "EarlR.LewisIIIMember",
     "presentation": [
      "http://www.tecogen.com/role/NatureofbusinessandoperationsDetails",
      "http://www.tecogen.com/role/RelatedPartyNotesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Earl R. Lewis, III",
        "label": "Earl R. Lewis, III [Member]",
        "documentation": "Earl R. Lewis, III"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_EarningsPerShareAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EarningsPerShareAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Earnings Per Share [Abstract]",
        "label": "Earnings Per Share [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_EarningsPerShareBasic": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EarningsPerShareBasic",
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedStatementsofOperations",
      "http://www.tecogen.com/role/LosspercommonshareScheduleofLossPerCommonShareBasicandDilutedDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Net income (loss) per share - basic (in USD per share)",
        "label": "Earnings Per Share, Basic",
        "documentation": "The amount of net income (loss) for the period per each share of common stock or unit outstanding during the reporting period."
       }
      }
     },
     "auth_ref": [
      "r196",
      "r218",
      "r219",
      "r221",
      "r222",
      "r223",
      "r225",
      "r231",
      "r233",
      "r235",
      "r236",
      "r237",
      "r242",
      "r502",
      "r509",
      "r525",
      "r526",
      "r611",
      "r631",
      "r756"
     ]
    },
    "us-gaap_EarningsPerShareDiluted": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EarningsPerShareDiluted",
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedStatementsofOperations",
      "http://www.tecogen.com/role/LosspercommonshareScheduleofLossPerCommonShareBasicandDilutedDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Net income (loss) per share - diluted (in USD per share)",
        "label": "Earnings Per Share, Diluted",
        "documentation": "The amount of net income (loss) for the period available to each share of common stock or common unit outstanding during the reporting period and to each share or unit that would have been outstanding assuming the issuance of common shares or units for all dilutive potential common shares or units outstanding during the reporting period."
       }
      }
     },
     "auth_ref": [
      "r196",
      "r218",
      "r219",
      "r221",
      "r222",
      "r223",
      "r225",
      "r233",
      "r235",
      "r236",
      "r237",
      "r242",
      "r502",
      "r509",
      "r525",
      "r526",
      "r611",
      "r631",
      "r756"
     ]
    },
    "us-gaap_EarningsPerSharePolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EarningsPerSharePolicyTextBlock",
     "presentation": [
      "http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Income (Loss) per Common Share",
        "label": "Earnings Per Share, Policy [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for computing basic and diluted earnings or loss per share for each class of common stock and participating security. Addresses all significant policy factors, including any antidilutive items that have been excluded from the computation and takes into account stock dividends, splits and reverse splits that occur after the balance sheet date of the latest reporting period but before the issuance of the financial statements."
       }
      }
     },
     "auth_ref": [
      "r24",
      "r25",
      "r239"
     ]
    },
    "us-gaap_EarningsPerShareTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EarningsPerShareTextBlock",
     "presentation": [
      "http://www.tecogen.com/role/Losspercommonshare"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Loss per common share",
        "label": "Earnings Per Share [Text Block]",
        "documentation": "The entire disclosure for earnings per share."
       }
      }
     },
     "auth_ref": [
      "r230",
      "r238",
      "r240",
      "r241"
     ]
    },
    "us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate",
     "presentation": [
      "http://www.tecogen.com/role/IncometaxesReconciliationofFederalStatutoryIncomeTaxProvisiontoCompanysActualProvisionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Federal statutory income tax rate (percent)",
        "label": "Effective Income Tax Rate Reconciliation, at Federal Statutory Income Tax Rate, Percent",
        "documentation": "Percentage of domestic federal statutory tax rate applicable to pretax income (loss)."
       }
      }
     },
     "auth_ref": [
      "r207",
      "r474",
      "r493",
      "r796"
     ]
    },
    "tgen_EffectiveIncomeTaxRateReconciliationOperatingLossCarryforwardExpired": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "EffectiveIncomeTaxRateReconciliationOperatingLossCarryforwardExpired",
     "crdr": "debit",
     "calculation": {
      "http://www.tecogen.com/role/IncometaxesReconciliationofFederalStatutoryIncomeTaxProvisiontoCompanysActualProvisionDetails": {
       "parentTag": "us-gaap_IncomeTaxExpenseBenefit",
       "weight": 1.0,
       "order": 7.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/IncometaxesNarrativeDetails",
      "http://www.tecogen.com/role/IncometaxesReconciliationofFederalStatutoryIncomeTaxProvisiontoCompanysActualProvisionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Expired net operating losses",
        "label": "Effective Income Tax Rate Reconciliation, Operating Loss Carryforward, Expired",
        "documentation": "Effective Income Tax Rate Reconciliation, Operating Loss Carryforward, Expired"
       }
      }
     },
     "auth_ref": []
    },
    "tgen_EffectiveIncomeTaxRateReconciliationStateandLocalIncomeTaxesAmountCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "EffectiveIncomeTaxRateReconciliationStateandLocalIncomeTaxesAmountCurrent",
     "crdr": "debit",
     "calculation": {
      "http://www.tecogen.com/role/IncometaxesReconciliationofFederalStatutoryIncomeTaxProvisiontoCompanysActualProvisionDetails": {
       "parentTag": "us-gaap_IncomeTaxExpenseBenefit",
       "weight": 1.0,
       "order": 6.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/IncometaxesReconciliationofFederalStatutoryIncomeTaxProvisiontoCompanysActualProvisionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Current",
        "label": "Effective Income Tax Rate Reconciliation, State and Local Income Taxes, Amount, Current",
        "documentation": "Effective Income Tax Rate Reconciliation, State and Local Income Taxes, Amount, Current"
       }
      }
     },
     "auth_ref": []
    },
    "tgen_EffectiveIncomeTaxRateReconciliationStateandLocalIncomeTaxesAmountDeferred": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "EffectiveIncomeTaxRateReconciliationStateandLocalIncomeTaxesAmountDeferred",
     "crdr": "debit",
     "calculation": {
      "http://www.tecogen.com/role/IncometaxesReconciliationofFederalStatutoryIncomeTaxProvisiontoCompanysActualProvisionDetails": {
       "parentTag": "us-gaap_IncomeTaxExpenseBenefit",
       "weight": 1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/IncometaxesReconciliationofFederalStatutoryIncomeTaxProvisiontoCompanysActualProvisionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Deferred",
        "label": "Effective Income Tax Rate Reconciliation, State and Local Income Taxes, Amount, Deferred",
        "documentation": "Effective Income Tax Rate Reconciliation, State and Local Income Taxes, Amount, Deferred"
       }
      }
     },
     "auth_ref": []
    },
    "tgen_EmployeeRetentionCreditCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "EmployeeRetentionCreditCurrent",
     "crdr": "debit",
     "calculation": {
      "http://www.tecogen.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedBalanceSheets",
      "http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Employee retention credit receivable",
        "label": "Employee Retention Credit, Current",
        "documentation": "Employee Retention Credit, Current"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized",
     "crdr": "debit",
     "presentation": [
      "http://www.tecogen.com/role/StockholdersequityStockBasedCompensationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Compensation cost related to unvested restricted stock awards and stock option awards not yet recognized",
        "label": "Share-Based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Amount",
        "documentation": "Amount of cost not yet recognized for nonvested award under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r460"
     ]
    },
    "us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1",
     "presentation": [
      "http://www.tecogen.com/role/StockholdersequityStockBasedCompensationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Compensation cost not yet recognized, weighted average period of recognition",
        "label": "Share-Based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Period for Recognition",
        "documentation": "Weighted-average period over which cost not yet recognized is expected to be recognized for award under share-based payment arrangement, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days."
       }
      }
     },
     "auth_ref": [
      "r460"
     ]
    },
    "us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense",
     "crdr": "credit",
     "presentation": [
      "http://www.tecogen.com/role/StockholdersequityStockBasedCompensationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Tax benefit related to stock-based compensation expense",
        "label": "Share-Based Payment Arrangement, Expense, Tax Benefit",
        "documentation": "Amount of tax benefit for recognition of expense of award under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r459"
     ]
    },
    "us-gaap_EmployeeStockOptionMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EmployeeStockOptionMember",
     "presentation": [
      "http://www.tecogen.com/role/LosspercommonshareScheduleofLossPerCommonShareBasicandDilutedDetails",
      "http://www.tecogen.com/role/StockholdersequityStockBasedCompensationDetails",
      "http://www.tecogen.com/role/StockholdersequityStockOptionActivityDetails",
      "http://www.tecogen.com/role/StockholdersequityWeightedAverageAssumptionsDetails",
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Stock Options",
        "label": "Share-Based Payment Arrangement, Option [Member]",
        "documentation": "Share-based payment arrangement granting right, subject to vesting and other restrictions, to purchase or sell certain number of shares at predetermined price for specified period of time."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_EnergyEquipmentMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EnergyEquipmentMember",
     "presentation": [
      "http://www.tecogen.com/role/PropertyplantandequipmentSummaryofPropertyandEquipmentDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Energy systems",
        "label": "Energy Equipment [Member]",
        "documentation": "Assets used in the production and distribution of energy from the producer to the consumer."
       }
      }
     },
     "auth_ref": []
    },
    "tgen_EnergyProductionAgreementsAccountsReceivableFromExcessCashFlowsAboveThreshold": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "EnergyProductionAgreementsAccountsReceivableFromExcessCashFlowsAboveThreshold",
     "crdr": "debit",
     "presentation": [
      "http://www.tecogen.com/role/SaleofADGAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accounts receivable from excess cash flows above threshold",
        "label": "Energy Production Agreements, Accounts Receivable From Excess Cash Flows Above Threshold",
        "documentation": "Energy Production Agreements, Accounts Receivable From Excess Cash Flows Above Threshold"
       }
      }
     },
     "auth_ref": []
    },
    "tgen_EnergyProductionAgreementsPercentageOfExcessCashFlowsAboveThreshold": {
     "xbrltype": "percentItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "EnergyProductionAgreementsPercentageOfExcessCashFlowsAboveThreshold",
     "presentation": [
      "http://www.tecogen.com/role/SaleofADGAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Percentage of excess cash flows above threshold",
        "label": "Energy Production Agreements, Percentage Of Excess Cash Flows Above Threshold",
        "documentation": "Energy Production Agreements, Percentage Of Excess Cash Flows Above Threshold"
       }
      }
     },
     "auth_ref": []
    },
    "tgen_EnergyProductionAgreementsRevenueOfExcessCashFlowsAboveThreshold": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "EnergyProductionAgreementsRevenueOfExcessCashFlowsAboveThreshold",
     "crdr": "credit",
     "presentation": [
      "http://www.tecogen.com/role/SaleofADGAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Revenue of excess cash flows above threshold",
        "label": "Energy Production Agreements, Revenue Of Excess Cash Flows Above Threshold",
        "documentation": "Energy Production Agreements, Revenue Of Excess Cash Flows Above Threshold"
       }
      }
     },
     "auth_ref": []
    },
    "tgen_EnergyProductionAgreementsSiteDecommissioningCosts": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "EnergyProductionAgreementsSiteDecommissioningCosts",
     "crdr": "debit",
     "presentation": [
      "http://www.tecogen.com/role/SaleofADGAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Site decommissioning costs",
        "label": "Energy Production Agreements, Site Decommissioning Costs",
        "documentation": "Energy Production Agreements, Site Decommissioning Costs"
       }
      }
     },
     "auth_ref": []
    },
    "tgen_EnergyProductionContactsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "EnergyProductionContactsMember",
     "presentation": [
      "http://www.tecogen.com/role/SaleofADGAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Energy Production Contacts",
        "label": "Energy Production Contacts [Member]",
        "documentation": "Energy Production Contacts"
       }
      }
     },
     "auth_ref": []
    },
    "tgen_EnergyProductionMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "EnergyProductionMember",
     "presentation": [
      "http://www.tecogen.com/role/GoodwillScheduleofGoodwillDetails",
      "http://www.tecogen.com/role/SegmentsDetails",
      "http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesRevenueDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Energy Production",
        "label": "Energy Production [Member]",
        "documentation": "Energy Production [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "tgen_EnergyProductionSegmentMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "EnergyProductionSegmentMember",
     "presentation": [
      "http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesRevenueDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Energy Production Segment",
        "label": "Energy Production Segment [Member]",
        "documentation": "Energy Production Segment"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_EnergyServiceMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EnergyServiceMember",
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedStatementsofOperations"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Energy production",
        "label": "Energy Service [Member]",
        "documentation": "Energy provided from operation of on-site facility or cogeneration plant and by procurement service to energy purchaser."
       }
      }
     },
     "auth_ref": [
      "r1035"
     ]
    },
    "tgen_EngineeredAccessoriesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "EngineeredAccessoriesMember",
     "presentation": [
      "http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesRevenueDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Engineered Accessories",
        "label": "Engineered Accessories [Member]",
        "documentation": "Engineered Accessories"
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityAddressAddressLine1": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityAddressAddressLine1",
     "presentation": [
      "http://www.tecogen.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Address, Address Line One",
        "label": "Entity Address, Address Line One",
        "documentation": "Address Line 1 such as Attn, Building Name, Street Name"
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityAddressCityOrTown": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityAddressCityOrTown",
     "presentation": [
      "http://www.tecogen.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Address, City or Town",
        "label": "Entity Address, City or Town",
        "documentation": "Name of the City or Town"
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityAddressPostalZipCode": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityAddressPostalZipCode",
     "presentation": [
      "http://www.tecogen.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Address, Postal Zip Code",
        "label": "Entity Address, Postal Zip Code",
        "documentation": "Code for the postal or zip code"
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityAddressStateOrProvince": {
     "xbrltype": "stateOrProvinceItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityAddressStateOrProvince",
     "presentation": [
      "http://www.tecogen.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Address, State or Province",
        "label": "Entity Address, State or Province",
        "documentation": "Name of the state or province."
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityCentralIndexKey": {
     "xbrltype": "centralIndexKeyItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityCentralIndexKey",
     "presentation": [
      "http://www.tecogen.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Central Index Key",
        "label": "Entity Central Index Key",
        "documentation": "A unique 10-digit SEC-issued value to identify entities that have filed disclosures with the SEC. It is commonly abbreviated as CIK."
       }
      }
     },
     "auth_ref": [
      "r831"
     ]
    },
    "dei_EntityCommonStockSharesOutstanding": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityCommonStockSharesOutstanding",
     "presentation": [
      "http://www.tecogen.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Common Stock, Shares Outstanding",
        "label": "Entity Common Stock, Shares Outstanding",
        "documentation": "Indicate number of shares or other units outstanding of each of registrant's classes of capital or common stock or other ownership interests, if and as stated on cover of related periodic report. Where multiple classes or units exist define each class/interest by adding class of stock items such as Common Class A [Member], Common Class B [Member] or Partnership Interest [Member] onto the Instrument [Domain] of the Entity Listings, Instrument."
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityCurrentReportingStatus": {
     "xbrltype": "yesNoItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityCurrentReportingStatus",
     "presentation": [
      "http://www.tecogen.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Current Reporting Status",
        "label": "Entity Current Reporting Status",
        "documentation": "Indicate 'Yes' or 'No' whether registrants (1) have filed all reports required to be filed by Section 13 or 15(d) of the Securities Exchange Act of 1934 during the preceding 12 months (or for such shorter period that registrants were required to file such reports), and (2) have been subject to such filing requirements for the past 90 days. This information should be based on the registrant's current or most recent filing containing the related disclosure."
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityDomain",
     "presentation": [
      "http://www.tecogen.com/role/CommitmentsandcontingenciesDetails",
      "http://www.tecogen.com/role/FairValueMeasurementsScheduleofAssetReportedinConsolidatedBalanceSheetMeasuredatFairValueonRecurringBasisDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity [Domain]",
        "label": "Entity [Domain]",
        "documentation": "All the names of the entities being reported upon in a document. Any legal structure used to conduct activities or to hold assets. Some examples of such structures are corporations, partnerships, limited liability companies, grantor trusts, and other trusts. This item does not include business and geographical segments which are included in the geographical or business segments domains."
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityEmergingGrowthCompany": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityEmergingGrowthCompany",
     "presentation": [
      "http://www.tecogen.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Emerging Growth Company",
        "label": "Entity Emerging Growth Company",
        "documentation": "Indicate if registrant meets the emerging growth company criteria."
       }
      }
     },
     "auth_ref": [
      "r831"
     ]
    },
    "dei_EntityFileNumber": {
     "xbrltype": "fileNumberItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityFileNumber",
     "presentation": [
      "http://www.tecogen.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity File Number",
        "label": "Entity File Number",
        "documentation": "Commission file number. The field allows up to 17 characters. The prefix may contain 1-3 digits, the sequence number may contain 1-8 digits, the optional suffix may contain 1-4 characters, and the fields are separated with a hyphen."
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityFilerCategory": {
     "xbrltype": "filerCategoryItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityFilerCategory",
     "presentation": [
      "http://www.tecogen.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Filer Category",
        "label": "Entity Filer Category",
        "documentation": "Indicate whether the registrant is one of the following: Large Accelerated Filer, Accelerated Filer, Non-accelerated Filer. Definitions of these categories are stated in Rule 12b-2 of the Exchange Act. This information should be based on the registrant's current or most recent filing containing the related disclosure."
       }
      }
     },
     "auth_ref": [
      "r831"
     ]
    },
    "dei_EntityIncorporationStateCountryCode": {
     "xbrltype": "edgarStateCountryItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityIncorporationStateCountryCode",
     "presentation": [
      "http://www.tecogen.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Incorporation, State or Country Code",
        "label": "Entity Incorporation, State or Country Code",
        "documentation": "Two-character EDGAR code representing the state or country of incorporation."
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityInteractiveDataCurrent": {
     "xbrltype": "yesNoItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityInteractiveDataCurrent",
     "presentation": [
      "http://www.tecogen.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Interactive Data Current",
        "label": "Entity Interactive Data Current",
        "documentation": "Boolean flag that is true when the registrant has submitted electronically every Interactive Data File required to be submitted pursuant to Rule 405 of Regulation S-T during the preceding 12 months (or for such shorter period that the registrant was required to submit such files)."
       }
      }
     },
     "auth_ref": [
      "r941"
     ]
    },
    "dei_EntityPublicFloat": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityPublicFloat",
     "crdr": "credit",
     "presentation": [
      "http://www.tecogen.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Public Float",
        "label": "Entity Public Float",
        "documentation": "The aggregate market value of the voting and non-voting common equity held by non-affiliates computed by reference to the price at which the common equity was last sold, or the average bid and asked price of such common equity, as of the last business day of the registrant's most recently completed second fiscal quarter."
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityRegistrantName": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityRegistrantName",
     "presentation": [
      "http://www.tecogen.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Registrant Name",
        "label": "Entity Registrant Name",
        "documentation": "The exact name of the entity filing the report as specified in its charter, which is required by forms filed with the SEC."
       }
      }
     },
     "auth_ref": [
      "r831"
     ]
    },
    "dei_EntityShellCompany": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityShellCompany",
     "presentation": [
      "http://www.tecogen.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Shell Company",
        "label": "Entity Shell Company",
        "documentation": "Boolean flag that is true when the registrant is a shell company as defined in Rule 12b-2 of the Exchange Act."
       }
      }
     },
     "auth_ref": [
      "r831"
     ]
    },
    "dei_EntitySmallBusiness": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntitySmallBusiness",
     "presentation": [
      "http://www.tecogen.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Small Business",
        "label": "Entity Small Business",
        "documentation": "Indicates that the company is a Smaller Reporting Company (SRC)."
       }
      }
     },
     "auth_ref": [
      "r831"
     ]
    },
    "dei_EntityTaxIdentificationNumber": {
     "xbrltype": "employerIdItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityTaxIdentificationNumber",
     "presentation": [
      "http://www.tecogen.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Tax Identification Number",
        "label": "Entity Tax Identification Number",
        "documentation": "The Tax Identification Number (TIN), also known as an Employer Identification Number (EIN), is a unique 9-digit value assigned by the IRS."
       }
      }
     },
     "auth_ref": [
      "r831"
     ]
    },
    "dei_EntityVoluntaryFilers": {
     "xbrltype": "yesNoItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityVoluntaryFilers",
     "presentation": [
      "http://www.tecogen.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Voluntary Filers",
        "label": "Entity Voluntary Filers",
        "documentation": "Indicate 'Yes' or 'No' if the registrant is not required to file reports pursuant to Section 13 or Section 15(d) of the Act."
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityWellKnownSeasonedIssuer": {
     "xbrltype": "yesNoItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityWellKnownSeasonedIssuer",
     "presentation": [
      "http://www.tecogen.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Well-known Seasoned Issuer",
        "label": "Entity Well-known Seasoned Issuer",
        "documentation": "Indicate 'Yes' or 'No' if the registrant is a well-known seasoned issuer, as defined in Rule 405 of the Securities Act. Is used on Form Type: 10-K, 10-Q, 8-K, 20-F, 6-K, 10-K/A, 10-Q/A, 20-F/A, 6-K/A, N-CSR, N-Q, N-1A."
       }
      }
     },
     "auth_ref": [
      "r942"
     ]
    },
    "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": {
        "terseLabel": "Equity Awards Adjustments, Footnote",
        "label": "Equity Awards Adjustments, Footnote [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r884"
     ]
    },
    "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": {
        "terseLabel": "Equity Awards Adjustments, Excluding Value Reported in Compensation Table",
        "label": "Equity Awards Adjustments, Excluding Value Reported in the Compensation Table [Member]"
       }
      }
     },
     "auth_ref": [
      "r937"
     ]
    },
    "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": {
        "terseLabel": "Equity Awards Adjustments",
        "label": "Equity Awards Adjustments [Member]"
       }
      }
     },
     "auth_ref": [
      "r937"
     ]
    },
    "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": {
        "terseLabel": "Aggregate Grant Date Fair Value of Equity Award Amounts Reported in Summary Compensation Table",
        "label": "Aggregate Grant Date Fair Value of Equity Award Amounts Reported in Summary Compensation Table [Member]"
       }
      }
     },
     "auth_ref": [
      "r937"
     ]
    },
    "us-gaap_EquityAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EquityAbstract",
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Stockholders\u2019 equity:",
        "label": "Equity [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_EquityComponentDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EquityComponentDomain",
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedStatementsofStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Equity Component [Domain]",
        "label": "Equity Component [Domain]",
        "documentation": "Components of equity are the parts of the total Equity balance including that which is allocated to common, preferred, treasury stock, retained earnings, etc."
       }
      }
     },
     "auth_ref": [
      "r10",
      "r169",
      "r193",
      "r194",
      "r195",
      "r213",
      "r214",
      "r215",
      "r217",
      "r223",
      "r226",
      "r228",
      "r244",
      "r290",
      "r293",
      "r335",
      "r401",
      "r491",
      "r492",
      "r499",
      "r500",
      "r501",
      "r503",
      "r508",
      "r509",
      "r517",
      "r518",
      "r519",
      "r520",
      "r521",
      "r522",
      "r524",
      "r552",
      "r553",
      "r554",
      "r555",
      "r556",
      "r557",
      "r561",
      "r564",
      "r584",
      "r630",
      "r655",
      "r656",
      "r657",
      "r674",
      "r726"
     ]
    },
    "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": {
        "terseLabel": "Equity Valuation Assumption Difference, Footnote",
        "label": "Equity Valuation Assumption Difference, Footnote [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r894"
     ]
    },
    "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": {
        "terseLabel": "Erroneous Compensation Analysis",
        "label": "Erroneous Compensation Analysis [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r851",
      "r862",
      "r872",
      "r905"
     ]
    },
    "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": {
        "terseLabel": "Erroneously Awarded Compensation Recovery",
        "label": "Erroneously Awarded Compensation Recovery [Table]"
       }
      }
     },
     "auth_ref": [
      "r848",
      "r859",
      "r869",
      "r902"
     ]
    },
    "us-gaap_EstimateOfFairValueFairValueDisclosureMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EstimateOfFairValueFairValueDisclosureMember",
     "presentation": [
      "http://www.tecogen.com/role/FairValueMeasurementsScheduleofAssetReportedinConsolidatedBalanceSheetMeasuredatFairValueonRecurringBasisDetails",
      "http://www.tecogen.com/role/FairValueMeasuresandDisclosuresScheduleofChangesinLevel2AssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Estimate of Fair Value Measurement",
        "label": "Estimate of Fair Value Measurement [Member]",
        "documentation": "Measured as an estimate of fair value."
       }
      }
     },
     "auth_ref": [
      "r387",
      "r550",
      "r775",
      "r776"
     ]
    },
    "tgen_EurositePowerIncMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "EurositePowerIncMember",
     "presentation": [
      "http://www.tecogen.com/role/CommitmentsandcontingenciesDetails",
      "http://www.tecogen.com/role/FairValueMeasurementsScheduleofAssetReportedinConsolidatedBalanceSheetMeasuredatFairValueonRecurringBasisDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Eurosite Power Inc.",
        "label": "Eurosite Power Inc [Member]",
        "documentation": "EuroSite Power Inc."
       }
      }
     },
     "auth_ref": []
    },
    "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": {
        "terseLabel": "Executive Category:",
        "label": "Executive Category [Axis]"
       }
      }
     },
     "auth_ref": [
      "r900"
     ]
    },
    "tgen_ExercisePricePerShareAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "ExercisePricePerShareAbstract",
     "presentation": [
      "http://www.tecogen.com/role/StockholdersequityStockOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Exercise Price Per Share [Abstract]",
        "label": "Exercise Price Per Share [Abstract]",
        "documentation": "Exercise Price Per Share [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems",
     "presentation": [
      "http://www.tecogen.com/role/FairValueMeasurementsNarrativeDetails",
      "http://www.tecogen.com/role/FairValueMeasurementsScheduleofAssetReportedinConsolidatedBalanceSheetMeasuredatFairValueonRecurringBasisDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]",
        "label": "Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]",
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table."
       }
      }
     },
     "auth_ref": [
      "r528",
      "r529",
      "r542",
      "r800"
     ]
    },
    "us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable",
     "presentation": [
      "http://www.tecogen.com/role/FairValueMeasurementsNarrativeDetails",
      "http://www.tecogen.com/role/FairValueMeasurementsScheduleofAssetReportedinConsolidatedBalanceSheetMeasuredatFairValueonRecurringBasisDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Fair Value, Recurring and Nonrecurring [Table]",
        "label": "Fair Value, Recurring and Nonrecurring [Table]",
        "documentation": "Disclosure of information about asset and liability measured at fair value on recurring and nonrecurring basis."
       }
      }
     },
     "auth_ref": [
      "r528",
      "r529",
      "r542",
      "r800"
     ]
    },
    "us-gaap_FairValueAssetsMeasuredOnRecurringBasisTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FairValueAssetsMeasuredOnRecurringBasisTextBlock",
     "presentation": [
      "http://www.tecogen.com/role/FairValueMeasurementsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Fair Value, Assets Measured on Recurring Basis",
        "label": "Fair Value, Assets Measured on Recurring Basis [Table Text Block]",
        "documentation": "Tabular disclosure of assets, including [financial] instruments measured at fair value that are classified in stockholders' equity, if any, by class that are measured at fair value on a recurring basis. The disclosures contemplated herein include the fair value measurements at the reporting date by the level within the fair value hierarchy in which the fair value measurements in their entirety fall, segregating fair value measurements using quoted prices in active markets for identical assets (Level 1), significant other observable inputs (Level 2), and significant unobservable inputs (Level 3)."
       }
      }
     },
     "auth_ref": [
      "r1075",
      "r1076"
     ]
    },
    "us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward",
     "presentation": [
      "http://www.tecogen.com/role/FairValueMeasuresandDisclosuresScheduleofChangesinLevel2AssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Fair Value, Assets Measured on Recurring Basis, Unobservable Input Reconciliation, Calculation [Roll Forward]",
        "label": "Fair Value, Assets Measured on Recurring Basis, Unobservable Input Reconciliation, Calculation [Roll Forward]",
        "documentation": "A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems",
     "presentation": [
      "http://www.tecogen.com/role/FairValueMeasuresandDisclosuresScheduleofChangesinLevel2AssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Fair Value, Assets Measured on Recurring Basis, Unobservable Input Reconciliation [Line Items]",
        "label": "Fair Value, Assets Measured on Recurring Basis, Unobservable Input Reconciliation [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": [
      "r533",
      "r534",
      "r535",
      "r536",
      "r537",
      "r538",
      "r543",
      "r803"
     ]
    },
    "us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationTable",
     "presentation": [
      "http://www.tecogen.com/role/FairValueMeasuresandDisclosuresScheduleofChangesinLevel2AssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Fair Value, Assets Measured on Recurring Basis, Unobservable Input Reconciliation [Table]",
        "label": "Fair Value, Assets Measured on Recurring Basis, Unobservable Input Reconciliation [Table]",
        "documentation": "Disclosure of information about financial instrument asset measured at fair value on recurring basis using unobservable input."
       }
      }
     },
     "auth_ref": [
      "r533",
      "r534",
      "r535",
      "r536",
      "r537",
      "r538",
      "r543",
      "r803"
     ]
    },
    "us-gaap_FairValueByFairValueHierarchyLevelAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FairValueByFairValueHierarchyLevelAxis",
     "presentation": [
      "http://www.tecogen.com/role/FairValueMeasurementsScheduleofAssetReportedinConsolidatedBalanceSheetMeasuredatFairValueonRecurringBasisDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Fair Value Hierarchy and NAV [Axis]",
        "label": "Fair Value Hierarchy and NAV [Axis]",
        "documentation": "Information by level within fair value hierarchy and fair value measured at net asset value per share as practical expedient."
       }
      }
     },
     "auth_ref": [
      "r387",
      "r416",
      "r417",
      "r418",
      "r419",
      "r420",
      "r421",
      "r527",
      "r529",
      "r530",
      "r531",
      "r532",
      "r541",
      "r542",
      "r544",
      "r593",
      "r594",
      "r595",
      "r775",
      "r776",
      "r787",
      "r788",
      "r789",
      "r800",
      "r805"
     ]
    },
    "us-gaap_FairValueByLiabilityClassAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FairValueByLiabilityClassAxis",
     "presentation": [
      "http://www.tecogen.com/role/FairValueMeasurementsScheduleofAssetReportedinConsolidatedBalanceSheetMeasuredatFairValueonRecurringBasisDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Liability Class [Axis]",
        "label": "Liability Class [Axis]",
        "documentation": "Information by class of liability."
       }
      }
     },
     "auth_ref": [
      "r533",
      "r534",
      "r535",
      "r536",
      "r537",
      "r538",
      "r543"
     ]
    },
    "us-gaap_FairValueByMeasurementBasisAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FairValueByMeasurementBasisAxis",
     "presentation": [
      "http://www.tecogen.com/role/FairValueMeasurementsScheduleofAssetReportedinConsolidatedBalanceSheetMeasuredatFairValueonRecurringBasisDetails",
      "http://www.tecogen.com/role/FairValueMeasuresandDisclosuresScheduleofChangesinLevel2AssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Measurement Basis [Axis]",
        "label": "Measurement Basis [Axis]",
        "documentation": "Information by measurement basis."
       }
      }
     },
     "auth_ref": [
      "r387",
      "r775",
      "r776"
     ]
    },
    "us-gaap_FairValueByMeasurementFrequencyAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FairValueByMeasurementFrequencyAxis",
     "presentation": [
      "http://www.tecogen.com/role/FairValueMeasurementsScheduleofAssetReportedinConsolidatedBalanceSheetMeasuredatFairValueonRecurringBasisDetails",
      "http://www.tecogen.com/role/FairValueMeasuresandDisclosuresScheduleofChangesinLevel2AssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Measurement Frequency [Axis]",
        "label": "Measurement Frequency [Axis]",
        "documentation": "Information by measurement frequency."
       }
      }
     },
     "auth_ref": [
      "r528",
      "r529",
      "r530",
      "r532",
      "r800",
      "r1078",
      "r1080"
     ]
    },
    "us-gaap_FairValueDisclosureItemAmountsDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FairValueDisclosureItemAmountsDomain",
     "presentation": [
      "http://www.tecogen.com/role/FairValueMeasurementsScheduleofAssetReportedinConsolidatedBalanceSheetMeasuredatFairValueonRecurringBasisDetails",
      "http://www.tecogen.com/role/FairValueMeasuresandDisclosuresScheduleofChangesinLevel2AssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Fair Value Measurement [Domain]",
        "label": "Fair Value Measurement [Domain]",
        "documentation": "Measurement basis, for example, but not limited to, reported value, fair value, portion at fair value, portion at other than fair value."
       }
      }
     },
     "auth_ref": [
      "r387",
      "r775",
      "r776"
     ]
    },
    "us-gaap_FairValueDisclosuresAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FairValueDisclosuresAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Fair Value Disclosures [Abstract]",
        "label": "Fair Value Disclosures [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_FairValueDisclosuresTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FairValueDisclosuresTextBlock",
     "presentation": [
      "http://www.tecogen.com/role/FairValueMeasurementsNotes"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Fair Value Measurements",
        "label": "Fair Value Disclosures [Text Block]",
        "documentation": "The entire disclosure for the fair value of financial instruments (as defined), including financial assets and financial liabilities (collectively, as defined), and the measurements of those instruments as well as disclosures related to the fair value of non-financial assets and liabilities. Such disclosures about the financial instruments, assets, and liabilities would include: (1) the fair value of the required items together with their carrying amounts (as appropriate); (2) for items for which it is not practicable to estimate fair value, disclosure would include: (a) information pertinent to estimating fair value (including, carrying amount, effective interest rate, and maturity, and (b) the reasons why it is not practicable to estimate fair value; (3) significant concentrations of credit risk including: (a) information about the activity, region, or economic characteristics identifying a concentration, (b) the maximum amount of loss the entity is exposed to based on the gross fair value of the related item, (c) policy for requiring collateral or other security and information as to accessing such collateral or security, and (d) the nature and brief description of such collateral or security; (4) quantitative information about market risks and how such risks are managed; (5) for items measured on both a recurring and nonrecurring basis information regarding the inputs used to develop the fair value measurement; and (6) for items presented in the financial statement for which fair value measurement is elected: (a) information necessary to understand the reasons for the election, (b) discussion of the effect of fair value changes on earnings, (c) a description of [similar groups] items for which the election is made and the relation thereof to the balance sheet, the aggregate carrying value of items included in the balance sheet that are not eligible for the election; (7) all other required (as defined) and desired information."
       }
      }
     },
     "auth_ref": [
      "r537",
      "r539",
      "r540",
      "r541",
      "r544",
      "r545",
      "r546",
      "r547",
      "r548",
      "r608",
      "r800",
      "r806"
     ]
    },
    "us-gaap_FairValueInputsLevel1Member": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FairValueInputsLevel1Member",
     "presentation": [
      "http://www.tecogen.com/role/FairValueMeasurementsScheduleofAssetReportedinConsolidatedBalanceSheetMeasuredatFairValueonRecurringBasisDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Level 1",
        "label": "Fair Value, Inputs, Level 1 [Member]",
        "documentation": "Quoted prices in active markets for identical assets or liabilities that the reporting entity can access at the measurement date."
       }
      }
     },
     "auth_ref": [
      "r387",
      "r416",
      "r421",
      "r529",
      "r542",
      "r593",
      "r787",
      "r788",
      "r789",
      "r800"
     ]
    },
    "us-gaap_FairValueInputsLevel2Member": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FairValueInputsLevel2Member",
     "presentation": [
      "http://www.tecogen.com/role/FairValueMeasurementsScheduleofAssetReportedinConsolidatedBalanceSheetMeasuredatFairValueonRecurringBasisDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Level 2",
        "label": "Fair Value, Inputs, Level 2 [Member]",
        "documentation": "Inputs other than quoted prices included within level 1 that are observable for an asset or liability, either directly or indirectly, including, but not limited to, quoted prices for similar assets or liabilities in active markets, or quoted prices for identical or similar assets or liabilities in inactive markets."
       }
      }
     },
     "auth_ref": [
      "r387",
      "r416",
      "r421",
      "r529",
      "r530",
      "r542",
      "r594",
      "r775",
      "r776",
      "r787",
      "r788",
      "r789",
      "r800"
     ]
    },
    "us-gaap_FairValueInputsLevel3Member": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FairValueInputsLevel3Member",
     "presentation": [
      "http://www.tecogen.com/role/FairValueMeasurementsScheduleofAssetReportedinConsolidatedBalanceSheetMeasuredatFairValueonRecurringBasisDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Level 3",
        "label": "Fair Value, Inputs, Level 3 [Member]",
        "documentation": "Unobservable inputs that reflect the entity's own assumption about the assumptions market participants would use in pricing."
       }
      }
     },
     "auth_ref": [
      "r387",
      "r416",
      "r417",
      "r418",
      "r419",
      "r420",
      "r421",
      "r529",
      "r530",
      "r531",
      "r532",
      "r542",
      "r595",
      "r775",
      "r776",
      "r787",
      "r788",
      "r789",
      "r800",
      "r805"
     ]
    },
    "us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationByLiabilityClassDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationByLiabilityClassDomain",
     "presentation": [
      "http://www.tecogen.com/role/FairValueMeasurementsScheduleofAssetReportedinConsolidatedBalanceSheetMeasuredatFairValueonRecurringBasisDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Fair Value by Liability Class [Domain]",
        "label": "Fair Value by Liability Class [Domain]",
        "documentation": "Represents classes of liabilities measured and disclosed at fair value."
       }
      }
     },
     "auth_ref": [
      "r533",
      "r534",
      "r535",
      "r536",
      "r537",
      "r538",
      "r543"
     ]
    },
    "us-gaap_FairValueMeasurementFrequencyDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FairValueMeasurementFrequencyDomain",
     "presentation": [
      "http://www.tecogen.com/role/FairValueMeasurementsScheduleofAssetReportedinConsolidatedBalanceSheetMeasuredatFairValueonRecurringBasisDetails",
      "http://www.tecogen.com/role/FairValueMeasuresandDisclosuresScheduleofChangesinLevel2AssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Measurement Frequency [Domain]",
        "label": "Measurement Frequency [Domain]",
        "documentation": "Measurement frequency."
       }
      }
     },
     "auth_ref": [
      "r528",
      "r529",
      "r530",
      "r532",
      "r800",
      "r1078",
      "r1080"
     ]
    },
    "us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInEarnings1": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInEarnings1",
     "crdr": "credit",
     "presentation": [
      "http://www.tecogen.com/role/FairValueMeasuresandDisclosuresScheduleofChangesinLevel2AssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Unrealized gain (loss)",
        "label": "Fair Value, Measurement with Unobservable Inputs Reconciliation, Recurring Basis, Asset, Gain (Loss) Included in Earnings",
        "documentation": "Amount of gain (loss) recognized in income from asset measured at fair value on recurring basis using unobservable input (level 3)."
       }
      }
     },
     "auth_ref": [
      "r534",
      "r543",
      "r803",
      "r804"
     ]
    },
    "us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSales": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSales",
     "crdr": "credit",
     "presentation": [
      "http://www.tecogen.com/role/FairValueMeasuresandDisclosuresScheduleofChangesinLevel2AssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Sales",
        "label": "Fair Value, Measurement with Unobservable Inputs Reconciliation, Recurring Basis, Asset, Sales",
        "documentation": "Amount of sale of financial instrument classified as an asset measured using unobservable inputs that reflect the entity's own assumption about the assumptions market participants would use in pricing."
       }
      }
     },
     "auth_ref": [
      "r536",
      "r543",
      "r803"
     ]
    },
    "us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings",
     "crdr": "credit",
     "presentation": [
      "http://www.tecogen.com/role/FairValueMeasurementsScheduleofAssetReportedinConsolidatedBalanceSheetMeasuredatFairValueonRecurringBasisDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Total gains (losses)",
        "label": "Fair Value, Measurement with Unobservable Inputs Reconciliation, Recurring Basis, Liability, Gain (Loss) Included in Earnings",
        "documentation": "Amount of gain (loss) recognized in income from liability measured at fair value on recurring basis using unobservable input (level 3)."
       }
      }
     },
     "auth_ref": [
      "r534",
      "r543"
     ]
    },
    "us-gaap_FairValueMeasurementsFairValueHierarchyDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FairValueMeasurementsFairValueHierarchyDomain",
     "presentation": [
      "http://www.tecogen.com/role/FairValueMeasurementsScheduleofAssetReportedinConsolidatedBalanceSheetMeasuredatFairValueonRecurringBasisDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Fair Value Hierarchy and NAV [Domain]",
        "label": "Fair Value Hierarchy and NAV [Domain]",
        "documentation": "Categories used to prioritize the inputs to valuation techniques to measure fair value."
       }
      }
     },
     "auth_ref": [
      "r387",
      "r416",
      "r417",
      "r418",
      "r419",
      "r420",
      "r421",
      "r527",
      "r529",
      "r530",
      "r531",
      "r532",
      "r541",
      "r542",
      "r544",
      "r593",
      "r594",
      "r595",
      "r775",
      "r776",
      "r787",
      "r788",
      "r789",
      "r800",
      "r805"
     ]
    },
    "us-gaap_FairValueMeasurementsRecurringMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FairValueMeasurementsRecurringMember",
     "presentation": [
      "http://www.tecogen.com/role/FairValueMeasurementsScheduleofAssetReportedinConsolidatedBalanceSheetMeasuredatFairValueonRecurringBasisDetails",
      "http://www.tecogen.com/role/FairValueMeasuresandDisclosuresScheduleofChangesinLevel2AssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Fair Value, Measurements, Recurring",
        "label": "Fair Value, Recurring [Member]",
        "documentation": "Frequent fair value measurement. Includes, but is not limited to, fair value adjustment for impairment of asset, liability or equity, frequently measured at fair value."
       }
      }
     },
     "auth_ref": [
      "r800",
      "r1075",
      "r1076",
      "r1077",
      "r1078",
      "r1079",
      "r1080"
     ]
    },
    "us-gaap_FairValueOfFinancialInstrumentsPolicy": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FairValueOfFinancialInstrumentsPolicy",
     "presentation": [
      "http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Fair Value of Financial Instruments",
        "label": "Fair Value of Financial Instruments, Policy [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for determining the fair value of financial instruments."
       }
      }
     },
     "auth_ref": [
      "r8"
     ]
    },
    "tgen_FavorableContractAssetMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "FavorableContractAssetMember",
     "presentation": [
      "http://www.tecogen.com/role/IntangibleassetsandliabilitiesotherthangoodwillNarrativeDetails",
      "http://www.tecogen.com/role/IntangibleassetsotherthangoodwillScheduleofIntangibleAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Favorable contract assets",
        "label": "Favorable Contract Asset [Member]",
        "documentation": "Favorable Contract Asset [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "tgen_FinanceLeaseExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "FinanceLeaseExpense",
     "crdr": "debit",
     "presentation": [
      "http://www.tecogen.com/role/LeasesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Finance lease, expense",
        "label": "Finance Lease, Expense",
        "documentation": "Finance Lease, Expense"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_FinanceLeaseLiability": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FinanceLeaseLiability",
     "crdr": "credit",
     "calculation": {
      "http://www.tecogen.com/role/LeasesSupplementalBalanceSheetInformationDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/LeasesFutureMinimumLeaseCommitmentsDetails",
      "http://www.tecogen.com/role/LeasesSupplementalBalanceSheetInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total finance lease liability",
        "label": "Finance Lease, Liability",
        "documentation": "Present value of lessee's discounted obligation for lease payments from finance lease."
       }
      }
     },
     "auth_ref": [
      "r566",
      "r579"
     ]
    },
    "us-gaap_FinanceLeaseLiabilityCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FinanceLeaseLiabilityCurrent",
     "crdr": "credit",
     "calculation": {
      "http://www.tecogen.com/role/LeasesSupplementalBalanceSheetInformationDetails": {
       "parentTag": "us-gaap_FinanceLeaseLiability",
       "weight": 1.0,
       "order": 1.0
      },
      "http://www.tecogen.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_LiabilitiesCurrent",
       "weight": 1.0,
       "order": 8.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedBalanceSheets",
      "http://www.tecogen.com/role/LeasesSupplementalBalanceSheetInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Finance lease obligations, current",
        "label": "Finance Lease, Liability, Current",
        "documentation": "Present value of lessee's discounted obligation for lease payments from finance lease, classified as current."
       }
      }
     },
     "auth_ref": [
      "r566"
     ]
    },
    "us-gaap_FinanceLeaseLiabilityNoncurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FinanceLeaseLiabilityNoncurrent",
     "crdr": "credit",
     "calculation": {
      "http://www.tecogen.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_Liabilities",
       "weight": 1.0,
       "order": 1.0
      },
      "http://www.tecogen.com/role/LeasesSupplementalBalanceSheetInformationDetails": {
       "parentTag": "us-gaap_FinanceLeaseLiability",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedBalanceSheets",
      "http://www.tecogen.com/role/LeasesSupplementalBalanceSheetInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Finance lease obligations, net of current portion",
        "label": "Finance Lease, Liability, Noncurrent",
        "documentation": "Present value of lessee's discounted obligation for lease payments from finance lease, classified as noncurrent."
       }
      }
     },
     "auth_ref": [
      "r566"
     ]
    },
    "us-gaap_FinanceLeaseLiabilityPaymentsDue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FinanceLeaseLiabilityPaymentsDue",
     "crdr": "credit",
     "calculation": {
      "http://www.tecogen.com/role/LeasesFutureMinimumLeaseCommitmentsDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/LeasesFutureMinimumLeaseCommitmentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total lease payments",
        "label": "Finance Lease, Liability, to be Paid",
        "documentation": "Amount of lessee's undiscounted obligation for lease payments for finance lease."
       }
      }
     },
     "auth_ref": [
      "r579"
     ]
    },
    "us-gaap_FinanceLeaseLiabilityPaymentsDueAfterYearFive": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FinanceLeaseLiabilityPaymentsDueAfterYearFive",
     "crdr": "credit",
     "calculation": {
      "http://www.tecogen.com/role/LeasesFutureMinimumLeaseCommitmentsDetails": {
       "parentTag": "us-gaap_FinanceLeaseLiabilityPaymentsDue",
       "weight": 1.0,
       "order": 6.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/LeasesFutureMinimumLeaseCommitmentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Thereafter",
        "label": "Finance Lease, Liability, to be Paid, after Year Five",
        "documentation": "Amount of lessee's undiscounted obligation for lease payment for finance lease to be paid 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": [
      "r579"
     ]
    },
    "us-gaap_FinanceLeaseLiabilityPaymentsDueNextTwelveMonths": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FinanceLeaseLiabilityPaymentsDueNextTwelveMonths",
     "crdr": "credit",
     "calculation": {
      "http://www.tecogen.com/role/LeasesFutureMinimumLeaseCommitmentsDetails": {
       "parentTag": "us-gaap_FinanceLeaseLiabilityPaymentsDue",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/LeasesFutureMinimumLeaseCommitmentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "2025",
        "label": "Finance Lease, Liability, to be Paid, Year One",
        "documentation": "Amount of lessee's undiscounted obligation for lease payment for finance lease to be paid in next fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)."
       }
      }
     },
     "auth_ref": [
      "r579"
     ]
    },
    "us-gaap_FinanceLeaseLiabilityPaymentsDueYearFive": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FinanceLeaseLiabilityPaymentsDueYearFive",
     "crdr": "credit",
     "calculation": {
      "http://www.tecogen.com/role/LeasesFutureMinimumLeaseCommitmentsDetails": {
       "parentTag": "us-gaap_FinanceLeaseLiabilityPaymentsDue",
       "weight": 1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/LeasesFutureMinimumLeaseCommitmentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "2029",
        "label": "Finance Lease, Liability, to be Paid, Year Five",
        "documentation": "Amount of lessee's undiscounted obligation for lease payment for finance 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": [
      "r579"
     ]
    },
    "us-gaap_FinanceLeaseLiabilityPaymentsDueYearFour": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FinanceLeaseLiabilityPaymentsDueYearFour",
     "crdr": "credit",
     "calculation": {
      "http://www.tecogen.com/role/LeasesFutureMinimumLeaseCommitmentsDetails": {
       "parentTag": "us-gaap_FinanceLeaseLiabilityPaymentsDue",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/LeasesFutureMinimumLeaseCommitmentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "2028",
        "label": "Finance Lease, Liability, to be Paid, Year Four",
        "documentation": "Amount of lessee's undiscounted obligation for lease payment for finance lease to be paid in fourth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)."
       }
      }
     },
     "auth_ref": [
      "r579"
     ]
    },
    "us-gaap_FinanceLeaseLiabilityPaymentsDueYearThree": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FinanceLeaseLiabilityPaymentsDueYearThree",
     "crdr": "credit",
     "calculation": {
      "http://www.tecogen.com/role/LeasesFutureMinimumLeaseCommitmentsDetails": {
       "parentTag": "us-gaap_FinanceLeaseLiabilityPaymentsDue",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/LeasesFutureMinimumLeaseCommitmentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "2027",
        "label": "Finance Lease, Liability, to be Paid, Year Three",
        "documentation": "Amount of lessee's undiscounted obligation for lease payment for finance lease to be paid in third fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)."
       }
      }
     },
     "auth_ref": [
      "r579"
     ]
    },
    "us-gaap_FinanceLeaseLiabilityPaymentsDueYearTwo": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FinanceLeaseLiabilityPaymentsDueYearTwo",
     "crdr": "credit",
     "calculation": {
      "http://www.tecogen.com/role/LeasesFutureMinimumLeaseCommitmentsDetails": {
       "parentTag": "us-gaap_FinanceLeaseLiabilityPaymentsDue",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/LeasesFutureMinimumLeaseCommitmentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "2026",
        "label": "Finance Lease, Liability, to be Paid, Year Two",
        "documentation": "Amount of lessee's undiscounted obligation for lease payment for finance lease to be paid in second fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)."
       }
      }
     },
     "auth_ref": [
      "r579"
     ]
    },
    "us-gaap_FinanceLeaseLiabilityUndiscountedExcessAmount": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FinanceLeaseLiabilityUndiscountedExcessAmount",
     "crdr": "credit",
     "presentation": [
      "http://www.tecogen.com/role/LeasesFutureMinimumLeaseCommitmentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Less: imputed interest",
        "label": "Finance Lease, Liability, Undiscounted Excess Amount",
        "documentation": "Amount of lessee's undiscounted obligation for lease payments in excess of discounted obligation for lease payments for finance lease."
       }
      }
     },
     "auth_ref": [
      "r579"
     ]
    },
    "us-gaap_FinanceLeasePrincipalPayments": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FinanceLeasePrincipalPayments",
     "crdr": "credit",
     "calculation": {
      "http://www.tecogen.com/role/ConsolidatedStatementsofCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": -1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Finance lease principal payments",
        "label": "Finance Lease, Principal Payments",
        "documentation": "Amount of cash outflow for principal payment on finance lease."
       }
      }
     },
     "auth_ref": [
      "r568",
      "r575"
     ]
    },
    "tgen_FinanceLeasePrincipalPaymentsAndOtherCosts": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "FinanceLeasePrincipalPaymentsAndOtherCosts",
     "crdr": "credit",
     "presentation": [
      "http://www.tecogen.com/role/LeasesSupplementalInformationforFinanceLeasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cash paid for amounts included in the measurement of finance lease liabilities",
        "label": "Finance Lease, Principal Payments And Other Costs",
        "documentation": "Finance Lease, Principal Payments And Other Costs"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_FinanceLeaseRightOfUseAsset": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FinanceLeaseRightOfUseAsset",
     "crdr": "debit",
     "calculation": {
      "http://www.tecogen.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_Assets",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedBalanceSheets",
      "http://www.tecogen.com/role/LeasesSupplementalBalanceSheetInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Right of use assets - finance leases",
        "label": "Finance Lease, Right-of-Use Asset, after Accumulated Amortization",
        "documentation": "Amount, after accumulated amortization, of right-of-use asset from finance lease."
       }
      }
     },
     "auth_ref": [
      "r565"
     ]
    },
    "us-gaap_FinanceLeaseRightOfUseAssetAmortization": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FinanceLeaseRightOfUseAssetAmortization",
     "crdr": "debit",
     "presentation": [
      "http://www.tecogen.com/role/LeasesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Depreciation and amortization expense on right-of-use finance lease assets",
        "label": "Finance Lease, Right-of-Use Asset, Amortization",
        "documentation": "Amount of amortization expense attributable to right-of-use asset from finance lease."
       }
      }
     },
     "auth_ref": [
      "r567",
      "r573",
      "r810"
     ]
    },
    "us-gaap_FinanceLeaseWeightedAverageDiscountRatePercent": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FinanceLeaseWeightedAverageDiscountRatePercent",
     "presentation": [
      "http://www.tecogen.com/role/LeasesSupplementalInformationforFinanceLeasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Weighted-average discount rate - finance leases",
        "label": "Finance Lease, Weighted Average Discount Rate, Percent",
        "documentation": "Weighted average discount rate for finance lease calculated at point in time."
       }
      }
     },
     "auth_ref": [
      "r578",
      "r810"
     ]
    },
    "us-gaap_FinanceLeaseWeightedAverageRemainingLeaseTerm1": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FinanceLeaseWeightedAverageRemainingLeaseTerm1",
     "presentation": [
      "http://www.tecogen.com/role/LeasesSupplementalInformationforFinanceLeasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Weighted-average remaining lease term - finance leases",
        "label": "Finance Lease, Weighted Average Remaining Lease Term",
        "documentation": "Weighted average remaining lease term for finance lease, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days."
       }
      }
     },
     "auth_ref": [
      "r577",
      "r810"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetUsefulLife": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FiniteLivedIntangibleAssetUsefulLife",
     "presentation": [
      "http://www.tecogen.com/role/IntangibleassetsandliabilitiesotherthangoodwillNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Finited lived intangible assets, estimated useful life",
        "label": "Finite-Lived Intangible Asset, Useful Life",
        "documentation": "Useful life of finite-lived intangible assets, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FiniteLivedIntangibleAssetsAccumulatedAmortization",
     "crdr": "credit",
     "calculation": {
      "http://www.tecogen.com/role/IntangibleassetsotherthangoodwillScheduleofIntangibleAssetsDetails": {
       "parentTag": "us-gaap_IntangibleAssetsNetExcludingGoodwill",
       "weight": -1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/IntangibleassetsotherthangoodwillScheduleofIntangibleAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Less - accumulated amortization",
        "label": "Finite-Lived Intangible Assets, Accumulated Amortization",
        "documentation": "Accumulated amount of amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life."
       }
      }
     },
     "auth_ref": [
      "r180",
      "r302",
      "r326",
      "r772"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextRollingTwelveMonths": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseNextRollingTwelveMonths",
     "crdr": "debit",
     "calculation": {
      "http://www.tecogen.com/role/IntangibleassetsandliabilitiesotherthangoodwillScheduleofAggregateFutureAmortizationDetails": {
       "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet",
       "weight": 1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/IntangibleassetsandliabilitiesotherthangoodwillScheduleofAggregateFutureAmortizationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "2025",
        "label": "Finite-Lived Intangible Assets, Amortization Expense, Next Rolling 12 Months",
        "documentation": "Amount of amortization expense for assets, excluding financial assets and goodwill, lacking physical substance with a finite life expected to be recognized in the next rolling twelve months following the latest balance sheet. For interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRollingAfterYearFive": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseRollingAfterYearFive",
     "crdr": "debit",
     "calculation": {
      "http://www.tecogen.com/role/IntangibleassetsandliabilitiesotherthangoodwillScheduleofAggregateFutureAmortizationDetails": {
       "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/IntangibleassetsandliabilitiesotherthangoodwillScheduleofAggregateFutureAmortizationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Thereafter",
        "label": "Finite-Lived Intangible Assets, Amortization Expense, Rolling after Year Five",
        "documentation": "Amount of amortization expense for assets, excluding financial assets and goodwill, lacking physical substance with a finite life expected to be recognized after the fifth rolling twelve months following the latest balance sheet. For interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRollingYearFive": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseRollingYearFive",
     "crdr": "debit",
     "calculation": {
      "http://www.tecogen.com/role/IntangibleassetsandliabilitiesotherthangoodwillScheduleofAggregateFutureAmortizationDetails": {
       "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/IntangibleassetsandliabilitiesotherthangoodwillScheduleofAggregateFutureAmortizationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "2029",
        "label": "Finite-Lived Intangible Assets, Amortization Expense, Rolling Year Five",
        "documentation": "Amount of amortization expense for assets, excluding financial assets and goodwill, lacking physical substance with a finite life expected to be recognized in the fifth rolling twelve months following the latest balance sheet. For interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRollingYearFour": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseRollingYearFour",
     "crdr": "debit",
     "calculation": {
      "http://www.tecogen.com/role/IntangibleassetsandliabilitiesotherthangoodwillScheduleofAggregateFutureAmortizationDetails": {
       "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/IntangibleassetsandliabilitiesotherthangoodwillScheduleofAggregateFutureAmortizationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "2028",
        "label": "Finite-Lived Intangible Assets, Amortization Expense, Rolling Year Four",
        "documentation": "Amount of amortization expense for assets, excluding financial assets and goodwill, lacking physical substance with a finite life expected to be recognized in the fourth rolling twelve months following the latest balance sheet. For interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRollingYearThree": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseRollingYearThree",
     "crdr": "debit",
     "calculation": {
      "http://www.tecogen.com/role/IntangibleassetsandliabilitiesotherthangoodwillScheduleofAggregateFutureAmortizationDetails": {
       "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet",
       "weight": 1.0,
       "order": 6.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/IntangibleassetsandliabilitiesotherthangoodwillScheduleofAggregateFutureAmortizationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "2027",
        "label": "Finite-Lived Intangible Assets, Amortization Expense, Rolling Year Three",
        "documentation": "Amount of amortization expense for assets, excluding financial assets and goodwill, lacking physical substance with a finite life expected to be recognized in the third rolling twelve months following the latest balance sheet. For interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRollingYearTwo": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseRollingYearTwo",
     "crdr": "debit",
     "calculation": {
      "http://www.tecogen.com/role/IntangibleassetsandliabilitiesotherthangoodwillScheduleofAggregateFutureAmortizationDetails": {
       "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/IntangibleassetsandliabilitiesotherthangoodwillScheduleofAggregateFutureAmortizationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "2026",
        "label": "Finite-Lived Intangible Assets, Amortization Expense, Rolling Year Two",
        "documentation": "Amount of amortization expense for assets, excluding financial assets and goodwill, lacking physical substance with a finite life expected to be recognized in the second rolling twelve months following the latest balance sheet. For interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date."
       }
      }
     },
     "auth_ref": []
    },
    "tgen_FiniteLivedIntangibleAssetsAndLiabilitiesNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "FiniteLivedIntangibleAssetsAndLiabilitiesNet",
     "crdr": "debit",
     "calculation": {
      "http://www.tecogen.com/role/IntangibleassetsandliabilitiesotherthangoodwillScheduleofAggregateFutureAmortizationDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/IntangibleassetsandliabilitiesotherthangoodwillScheduleofAggregateFutureAmortizationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total",
        "label": "Finite-Lived Intangible Assets And Liabilities, Net",
        "documentation": "Finite-Lived Intangible Assets And Liabilities, Net"
       }
      }
     },
     "auth_ref": []
    },
    "tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseNextRolling12Months": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseNextRolling12Months",
     "crdr": "debit",
     "calculation": {
      "http://www.tecogen.com/role/IntangibleassetsandliabilitiesotherthangoodwillScheduleofAggregateFutureAmortizationDetails": {
       "parentTag": "tgen_FiniteLivedIntangibleAssetsAndLiabilitiesNet",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/IntangibleassetsandliabilitiesotherthangoodwillScheduleofAggregateFutureAmortizationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "2025",
        "label": "Finite-Lived Intangible Assets And Liability, Net, Amortization Expense, Next Rolling 12 Months",
        "documentation": "Finite-Lived Intangible Assets And Liability, Net, Amortization Expense, Next Rolling 12 Months"
       }
      }
     },
     "auth_ref": []
    },
    "tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingAfterYearFive": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingAfterYearFive",
     "crdr": "debit",
     "calculation": {
      "http://www.tecogen.com/role/IntangibleassetsandliabilitiesotherthangoodwillScheduleofAggregateFutureAmortizationDetails": {
       "parentTag": "tgen_FiniteLivedIntangibleAssetsAndLiabilitiesNet",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/IntangibleassetsandliabilitiesotherthangoodwillScheduleofAggregateFutureAmortizationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Thereafter",
        "label": "Finite-Lived Intangible Assets And Liability, Net, Amortization Expense, Rolling After Year Five",
        "documentation": "Finite-Lived Intangible Assets And Liability, Net, Amortization Expense, Rolling After Year Five"
       }
      }
     },
     "auth_ref": []
    },
    "tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingMaturityAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingMaturityAbstract",
     "presentation": [
      "http://www.tecogen.com/role/IntangibleassetsandliabilitiesotherthangoodwillScheduleofAggregateFutureAmortizationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Finite-Lived Intangible Assets And Liability, Net, Amortization Expense, Rolling Maturity [Abstract]",
        "label": "Finite-Lived Intangible Assets And Liability, Net, Amortization Expense, Rolling Maturity [Abstract]",
        "documentation": "Finite-Lived Intangible Assets And Liability, Net, Amortization Expense, Rolling Maturity"
       }
      }
     },
     "auth_ref": []
    },
    "tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearFive": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearFive",
     "crdr": "debit",
     "calculation": {
      "http://www.tecogen.com/role/IntangibleassetsandliabilitiesotherthangoodwillScheduleofAggregateFutureAmortizationDetails": {
       "parentTag": "tgen_FiniteLivedIntangibleAssetsAndLiabilitiesNet",
       "weight": 1.0,
       "order": 6.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/IntangibleassetsandliabilitiesotherthangoodwillScheduleofAggregateFutureAmortizationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "2029",
        "label": "Finite-Lived Intangible Assets And Liability, Net, Amortization Expense, Rolling Year Five",
        "documentation": "Finite-Lived Intangible Assets And Liability, Net, Amortization Expense, Rolling Year Five"
       }
      }
     },
     "auth_ref": []
    },
    "tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearFour": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearFour",
     "crdr": "debit",
     "calculation": {
      "http://www.tecogen.com/role/IntangibleassetsandliabilitiesotherthangoodwillScheduleofAggregateFutureAmortizationDetails": {
       "parentTag": "tgen_FiniteLivedIntangibleAssetsAndLiabilitiesNet",
       "weight": 1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/IntangibleassetsandliabilitiesotherthangoodwillScheduleofAggregateFutureAmortizationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "2028",
        "label": "Finite-Lived Intangible Assets And Liability, Net, Amortization Expense, Rolling Year Four",
        "documentation": "Finite-Lived Intangible Assets And Liability, Net, Amortization Expense, Rolling Year Four"
       }
      }
     },
     "auth_ref": []
    },
    "tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearThree": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearThree",
     "crdr": "debit",
     "calculation": {
      "http://www.tecogen.com/role/IntangibleassetsandliabilitiesotherthangoodwillScheduleofAggregateFutureAmortizationDetails": {
       "parentTag": "tgen_FiniteLivedIntangibleAssetsAndLiabilitiesNet",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/IntangibleassetsandliabilitiesotherthangoodwillScheduleofAggregateFutureAmortizationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "2027",
        "label": "Finite-Lived Intangible Assets And Liability, Net, Amortization Expense, Rolling Year Three",
        "documentation": "Finite-Lived Intangible Assets And Liability, Net, Amortization Expense, Rolling Year Three"
       }
      }
     },
     "auth_ref": []
    },
    "tgen_FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearTwo": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearTwo",
     "crdr": "debit",
     "calculation": {
      "http://www.tecogen.com/role/IntangibleassetsandliabilitiesotherthangoodwillScheduleofAggregateFutureAmortizationDetails": {
       "parentTag": "tgen_FiniteLivedIntangibleAssetsAndLiabilitiesNet",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/IntangibleassetsandliabilitiesotherthangoodwillScheduleofAggregateFutureAmortizationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "2026",
        "label": "Finite-Lived Intangible Assets And Liability, Net, Amortization Expense, Rolling Year Two",
        "documentation": "Finite-Lived Intangible Assets And Liability, Net, Amortization Expense, Rolling Year Two"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FiniteLivedIntangibleAssetsByMajorClassAxis",
     "presentation": [
      "http://www.tecogen.com/role/IntangibleassetsandliabilitiesotherthangoodwillNarrativeDetails",
      "http://www.tecogen.com/role/IntangibleassetsandliabilitiesotherthangoodwillScheduleofAggregateFutureAmortizationDetails",
      "http://www.tecogen.com/role/IntangibleassetsotherthangoodwillScheduleofIntangibleAssetsDetails",
      "http://www.tecogen.com/role/NatureofbusinessandoperationsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Finite-Lived Intangible Assets by Major Class [Axis]",
        "label": "Finite-Lived Intangible Assets by Major Class [Axis]",
        "documentation": "Information by major type or class of finite-lived intangible assets."
       }
      }
     },
     "auth_ref": [
      "r319",
      "r321",
      "r322",
      "r323",
      "r325",
      "r326",
      "r329",
      "r330",
      "r606",
      "r607",
      "r741"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FiniteLivedIntangibleAssetsLineItems",
     "presentation": [
      "http://www.tecogen.com/role/IntangibleassetsandliabilitiesotherthangoodwillScheduleofAggregateFutureAmortizationDetails",
      "http://www.tecogen.com/role/IntangibleassetsotherthangoodwillScheduleofIntangibleAssetsDetails",
      "http://www.tecogen.com/role/NatureofbusinessandoperationsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Finite-Lived Intangible Assets [Line Items]",
        "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": [
      "r319",
      "r326",
      "r329",
      "r330",
      "r333",
      "r606",
      "r741",
      "r772"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FiniteLivedIntangibleAssetsMajorClassNameDomain",
     "presentation": [
      "http://www.tecogen.com/role/IntangibleassetsandliabilitiesotherthangoodwillNarrativeDetails",
      "http://www.tecogen.com/role/IntangibleassetsandliabilitiesotherthangoodwillScheduleofAggregateFutureAmortizationDetails",
      "http://www.tecogen.com/role/IntangibleassetsotherthangoodwillScheduleofIntangibleAssetsDetails",
      "http://www.tecogen.com/role/NatureofbusinessandoperationsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Finite-Lived Intangible Assets, Major Class Name [Domain]",
        "label": "Finite-Lived Intangible Assets, Major Class Name [Domain]",
        "documentation": "The major class of finite-lived intangible asset (for example, patents, trademarks, copyrights, etc.) A major class is composed of intangible assets that can be grouped together because they are similar, either by their nature or by their use in the operations of a company."
       }
      }
     },
     "auth_ref": [
      "r319",
      "r321",
      "r322",
      "r323",
      "r325",
      "r326",
      "r329",
      "r330",
      "r741"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FiniteLivedIntangibleAssetsNet",
     "crdr": "debit",
     "calculation": {
      "http://www.tecogen.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_Assets",
       "weight": 1.0,
       "order": 3.0
      },
      "http://www.tecogen.com/role/IntangibleassetsandliabilitiesotherthangoodwillScheduleofAggregateFutureAmortizationDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedBalanceSheets",
      "http://www.tecogen.com/role/IntangibleassetsandliabilitiesotherthangoodwillScheduleofAggregateFutureAmortizationDetails",
      "http://www.tecogen.com/role/NatureofbusinessandoperationsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Intangible assets, net",
        "totalLabel": "Total",
        "label": "Finite-Lived Intangible Assets, Net",
        "documentation": "Amount after amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life."
       }
      }
     },
     "auth_ref": [
      "r606",
      "r1007"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsNetAmortizationExpenseRollingMaturityAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FiniteLivedIntangibleAssetsNetAmortizationExpenseRollingMaturityAbstract",
     "presentation": [
      "http://www.tecogen.com/role/IntangibleassetsandliabilitiesotherthangoodwillScheduleofAggregateFutureAmortizationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Finite-Lived Intangible Assets, Net, Amortization Expense, Rolling Maturity [Abstract]",
        "label": "Finite-Lived Intangible Assets, Net, Amortization Expense, Rolling Maturity [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_FiniteLivedIntangibleAssetsPeriodIncreaseDecrease": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FiniteLivedIntangibleAssetsPeriodIncreaseDecrease",
     "presentation": [
      "http://www.tecogen.com/role/NatureofbusinessandoperationsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Change in intangible assets",
        "label": "Finite-Lived Intangible Assets, Period Increase (Decrease)",
        "documentation": "Amount of increase (decrease) in carrying value of assets, excluding financial assets and goodwill, lacking physical substance with a finite life."
       }
      }
     },
     "auth_ref": []
    },
    "tgen_FiniteLivedIntangibleLiabilitiesAccumulatedAmortization": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "FiniteLivedIntangibleLiabilitiesAccumulatedAmortization",
     "crdr": "debit",
     "calculation": {
      "http://www.tecogen.com/role/IntangibleassetsotherthangoodwillScheduleofIntangibleAssetsDetails": {
       "parentTag": "tgen_IntangibleLiabilitiesNet",
       "weight": -1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/IntangibleassetsotherthangoodwillScheduleofIntangibleAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Less - accumulated amortization",
        "label": "Finite-Lived Intangible Liabilities, Accumulated Amortization",
        "documentation": "Finite-Lived Intangible Liabilities, Accumulated Amortization"
       }
      }
     },
     "auth_ref": []
    },
    "tgen_FiniteLivedIntangibleLiabilityAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "FiniteLivedIntangibleLiabilityAxis",
     "presentation": [
      "http://www.tecogen.com/role/IntangibleassetsotherthangoodwillScheduleofIntangibleAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Finite-Lived Intangible Liability [Axis]",
        "label": "Finite-Lived Intangible Liability [Axis]",
        "documentation": "Finite-Lived Intangible Liability [Axis]"
       }
      }
     },
     "auth_ref": []
    },
    "tgen_FiniteLivedIntangibleLiabilityDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "FiniteLivedIntangibleLiabilityDomain",
     "presentation": [
      "http://www.tecogen.com/role/IntangibleassetsotherthangoodwillScheduleofIntangibleAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Finite-Lived Intangible Liability [Domain]",
        "label": "Finite-Lived Intangible Liability [Domain]",
        "documentation": "[Domain] for Finite-Lived Intangible Liability [Axis]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_FinitelivedIntangibleAssetsAcquired1": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FinitelivedIntangibleAssetsAcquired1",
     "crdr": "debit",
     "calculation": {
      "http://www.tecogen.com/role/AegisContractandRelatedAssetAcquisitionDetails": {
       "parentTag": "tgen_AssetAcquisitionAssetsAcquired",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/AegisContractandRelatedAssetAcquisitionDetails",
      "http://www.tecogen.com/role/IntangibleassetsandliabilitiesotherthangoodwillNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Capitalized finited lived intangible assets",
        "label": "Finite-Lived Intangible Assets Acquired",
        "documentation": "Amount of increase in assets, excluding financial assets, lacking physical substance with a definite life, from an acquisition."
       }
      }
     },
     "auth_ref": [
      "r321"
     ]
    },
    "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": {
        "terseLabel": "Forgone Recovery due to Disqualification of Tax Benefits, Amount",
        "label": "Forgone Recovery due to Disqualification of Tax Benefits, Amount"
       }
      }
     },
     "auth_ref": [
      "r855",
      "r866",
      "r876",
      "r909"
     ]
    },
    "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": {
        "terseLabel": "Forgone Recovery due to Expense of Enforcement, Amount",
        "label": "Forgone Recovery due to Expense of Enforcement, Amount"
       }
      }
     },
     "auth_ref": [
      "r855",
      "r866",
      "r876",
      "r909"
     ]
    },
    "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": {
        "terseLabel": "Forgone Recovery due to Violation of Home Country Law, Amount",
        "label": "Forgone Recovery due to Violation of Home Country Law, Amount"
       }
      }
     },
     "auth_ref": [
      "r855",
      "r866",
      "r876",
      "r909"
     ]
    },
    "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": {
        "terseLabel": "Forgone Recovery, Explanation of Impracticability",
        "label": "Forgone Recovery, Explanation of Impracticability [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r855",
      "r866",
      "r876",
      "r909"
     ]
    },
    "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": {
        "terseLabel": "Name",
        "label": "Forgone Recovery, Individual Name"
       }
      }
     },
     "auth_ref": [
      "r855",
      "r866",
      "r876",
      "r909"
     ]
    },
    "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": {
        "terseLabel": "Prior Year End Fair Value of Equity Awards Granted in Any Prior Year that Fail to Meet Applicable Vesting Conditions During Covered Year",
        "label": "Prior Year End Fair Value of Equity Awards Granted in Any Prior Year that Fail to Meet Applicable Vesting Conditions During Covered Year [Member]"
       }
      }
     },
     "auth_ref": [
      "r889"
     ]
    },
    "us-gaap_FurnitureAndFixturesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FurnitureAndFixturesMember",
     "presentation": [
      "http://www.tecogen.com/role/PropertyplantandequipmentSummaryofPropertyandEquipmentDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Furniture and Fixtures",
        "label": "Furniture and Fixtures [Member]",
        "documentation": "Equipment commonly used in offices and stores that have no permanent connection to the structure of a building or utilities. Examples include, but are not limited to, desks, chairs, tables, and bookcases."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_GainLossOnContractTermination": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "GainLossOnContractTermination",
     "crdr": "credit",
     "calculation": {
      "http://www.tecogen.com/role/ConsolidatedStatementsofCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0,
       "order": 13.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedStatementsofCashFlows",
      "http://www.tecogen.com/role/IntangibleassetsandliabilitiesotherthangoodwillNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Long-lived asset impairment",
        "terseLabel": "Reversal of unfavorable contract liability",
        "label": "Gain (Loss) on Contract Termination",
        "documentation": "Gain (loss) related to the termination of a contract between the parties. The termination may be due to many causes including early termination of a lease by a lessee, a breach of contract by one party, or a failure to perform."
       }
      }
     },
     "auth_ref": [
      "r105"
     ]
    },
    "us-gaap_GainLossOnDispositionOfAssets1": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "GainLossOnDispositionOfAssets1",
     "crdr": "credit",
     "calculation": {
      "http://www.tecogen.com/role/ConsolidatedStatementsofOperations": {
       "parentTag": "us-gaap_OperatingExpenses",
       "weight": -1.0,
       "order": 4.0
      },
      "http://www.tecogen.com/role/ConsolidatedStatementsofCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedStatementsofCashFlows",
      "http://www.tecogen.com/role/ConsolidatedStatementsofOperations",
      "http://www.tecogen.com/role/PropertyplantandequipmentNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Gain on sale of assets",
        "negatedLabel": "Gain on sale of assets",
        "label": "Gain (Loss) on Disposition of Assets",
        "documentation": "Amount of gain (loss) on sale or disposal of assets, including but not limited to property plant and equipment, intangible assets and equity in securities of subsidiaries or equity method investee."
       }
      }
     },
     "auth_ref": [
      "r963"
     ]
    },
    "us-gaap_GeneralAndAdministrativeExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "GeneralAndAdministrativeExpense",
     "crdr": "debit",
     "calculation": {
      "http://www.tecogen.com/role/ConsolidatedStatementsofOperations": {
       "parentTag": "us-gaap_OperatingExpenses",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedStatementsofOperations"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "General and administrative",
        "label": "General and Administrative Expense",
        "documentation": "The aggregate total of expenses of managing and administering the affairs of an entity, including affiliates of the reporting entity, which are not directly or indirectly associated with the manufacture, sale or creation of a product or product line."
       }
      }
     },
     "auth_ref": [
      "r98",
      "r708"
     ]
    },
    "us-gaap_GeneralAndAdministrativeExpenseMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "GeneralAndAdministrativeExpenseMember",
     "presentation": [
      "http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "General and Administrative Expense",
        "label": "General and Administrative Expense [Member]",
        "documentation": "Primary financial statement caption encompassing general and administrative expense."
       }
      }
     },
     "auth_ref": [
      "r98"
     ]
    },
    "us-gaap_Goodwill": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "Goodwill",
     "crdr": "debit",
     "calculation": {
      "http://www.tecogen.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_Assets",
       "weight": 1.0,
       "order": 6.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/AcquisitionofAmericanDGEnergyIncDetails",
      "http://www.tecogen.com/role/ConsolidatedBalanceSheets",
      "http://www.tecogen.com/role/GoodwillScheduleofGoodwillDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Goodwill",
        "periodStartLabel": "Goodwill, beginning",
        "periodEndLabel": "Goodwill, ending",
        "label": "Goodwill",
        "documentation": "Amount, after accumulated impairment loss, of asset representing future economic benefit arising from other asset acquired in business combination or from joint venture formation or both, that is not individually identified and separately recognized."
       }
      }
     },
     "auth_ref": [
      "r179",
      "r304",
      "r609",
      "r765",
      "r771",
      "r802",
      "r811",
      "r989",
      "r996"
     ]
    },
    "us-gaap_GoodwillAcquiredDuringPeriod": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "GoodwillAcquiredDuringPeriod",
     "crdr": "debit",
     "presentation": [
      "http://www.tecogen.com/role/AegisContractandRelatedAssetAcquisitionDetails",
      "http://www.tecogen.com/role/GoodwillScheduleofGoodwillDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Acquisition",
        "label": "Goodwill, Acquired During Period",
        "documentation": "Amount of increase in asset representing future economic benefits arising from other assets acquired in a business combination that are not individually identified and separately recognized resulting from a business combination."
       }
      }
     },
     "auth_ref": [
      "r308",
      "r771"
     ]
    },
    "us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "GoodwillAndIntangibleAssetsDisclosureAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Goodwill and Intangible Assets Disclosure [Abstract]",
        "label": "Goodwill and Intangible Assets Disclosure [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "GoodwillAndIntangibleAssetsGoodwillPolicy",
     "presentation": [
      "http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Goodwill",
        "label": "Goodwill and Intangible Assets, Goodwill, Policy [Policy Text Block]",
        "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": [
      "r303",
      "r317",
      "r771"
     ]
    },
    "us-gaap_GoodwillDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "GoodwillDisclosureTextBlock",
     "presentation": [
      "http://www.tecogen.com/role/GoodwillNotes"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Goodwill",
        "label": "Goodwill Disclosure [Text Block]",
        "documentation": "The entire disclosure for goodwill."
       }
      }
     },
     "auth_ref": [
      "r303",
      "r306",
      "r316",
      "r771"
     ]
    },
    "us-gaap_GoodwillImpairmentLoss": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "GoodwillImpairmentLoss",
     "crdr": "debit",
     "calculation": {
      "http://www.tecogen.com/role/ConsolidatedStatementsofOperations": {
       "parentTag": "us-gaap_OperatingExpenses",
       "weight": 1.0,
       "order": 3.0
      },
      "http://www.tecogen.com/role/ConsolidatedStatementsofCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 19.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedStatementsofCashFlows",
      "http://www.tecogen.com/role/ConsolidatedStatementsofOperations",
      "http://www.tecogen.com/role/GoodwillNarrativeDetails",
      "http://www.tecogen.com/role/GoodwillScheduleofGoodwillDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Goodwill impairment",
        "negatedTerseLabel": "Impairment",
        "label": "Goodwill, Impairment Loss",
        "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": [
      "r6",
      "r305",
      "r311",
      "r317",
      "r771",
      "r802"
     ]
    },
    "us-gaap_GoodwillLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "GoodwillLineItems",
     "presentation": [
      "http://www.tecogen.com/role/GoodwillNarrativeDetails",
      "http://www.tecogen.com/role/GoodwillScheduleofGoodwillDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Goodwill [Line Items]",
        "label": "Goodwill [Line Items]",
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table."
       }
      }
     },
     "auth_ref": [
      "r306",
      "r307",
      "r308",
      "r309",
      "r310",
      "r311",
      "r312",
      "r313",
      "r314",
      "r315",
      "r317",
      "r771"
     ]
    },
    "us-gaap_GoodwillPurchaseAccountingAdjustments": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "GoodwillPurchaseAccountingAdjustments",
     "crdr": "debit",
     "presentation": [
      "http://www.tecogen.com/role/GoodwillScheduleofGoodwillDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Acquisition - adjustment",
        "label": "Goodwill, Measurement Period Adjustment",
        "documentation": "Amount of increase (decrease) from measurement period adjustment 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": [
      "r1",
      "r995"
     ]
    },
    "us-gaap_GoodwillRollForward": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "GoodwillRollForward",
     "presentation": [
      "http://www.tecogen.com/role/GoodwillScheduleofGoodwillDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Goodwill [Roll Forward]",
        "label": "Goodwill [Roll Forward]",
        "documentation": "A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_GrossProfit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "GrossProfit",
     "crdr": "credit",
     "calculation": {
      "http://www.tecogen.com/role/ConsolidatedStatementsofOperations": {
       "parentTag": "us-gaap_OperatingIncomeLoss",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedStatementsofOperations",
      "http://www.tecogen.com/role/SegmentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Gross profit",
        "label": "Gross Profit",
        "documentation": "Aggregate revenue less cost of goods and services sold or operating expenses directly attributable to the revenue generation activity."
       }
      }
     },
     "auth_ref": [
      "r92",
      "r96",
      "r147",
      "r206",
      "r289",
      "r362",
      "r363",
      "r365",
      "r366",
      "r367",
      "r368",
      "r369",
      "r371",
      "r372",
      "r551",
      "r758",
      "r764",
      "r973",
      "r976",
      "r977",
      "r978",
      "r979",
      "r1029"
     ]
    },
    "us-gaap_GuaranteesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "GuaranteesAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Guarantees [Abstract]",
        "label": "Guarantees [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "dei_IcfrAuditorAttestationFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "IcfrAuditorAttestationFlag",
     "presentation": [
      "http://www.tecogen.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "ICFR Auditor Attestation Flag",
        "label": "ICFR Auditor Attestation Flag"
       }
      }
     },
     "auth_ref": [
      "r834",
      "r835",
      "r858"
     ]
    },
    "us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ImpairmentOfIntangibleAssetsExcludingGoodwill",
     "crdr": "debit",
     "presentation": [
      "http://www.tecogen.com/role/IntangibleassetsandliabilitiesotherthangoodwillNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Long-lived asset impairment",
        "label": "Impairment of Intangible Assets (Excluding Goodwill)",
        "documentation": "The amount of impairment loss recognized in the period resulting from the write-down of the carrying amount of an intangible asset (excluding goodwill) to fair value."
       }
      }
     },
     "auth_ref": [
      "r6",
      "r320",
      "r332"
     ]
    },
    "us-gaap_ImpairmentOfLongLivedAssetsHeldForUse": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ImpairmentOfLongLivedAssetsHeldForUse",
     "crdr": "debit",
     "calculation": {
      "http://www.tecogen.com/role/ConsolidatedStatementsofOperations": {
       "parentTag": "us-gaap_OperatingExpenses",
       "weight": 1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedStatementsofOperations",
      "http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Impairment of long-lived assets",
        "label": "Impairment, Long-Lived Asset, Held-for-Use",
        "documentation": "The aggregate amount of write-downs for impairments recognized during the period for long lived assets held for use (including those held for disposal by means other than sale)."
       }
      }
     },
     "auth_ref": [
      "r6",
      "r36",
      "r112",
      "r801"
     ]
    },
    "us-gaap_ImpairmentOrDisposalOfLongLivedAssetsPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ImpairmentOrDisposalOfLongLivedAssetsPolicyTextBlock",
     "presentation": [
      "http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Impairment of Long-Lived Assets",
        "label": "Impairment or Disposal of Long-Lived Assets, Policy [Policy Text Block]",
        "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",
      "r114"
     ]
    },
    "us-gaap_InProcessResearchAndDevelopmentMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "InProcessResearchAndDevelopmentMember",
     "presentation": [
      "http://www.tecogen.com/role/IntangibleassetsotherthangoodwillScheduleofIntangibleAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "In process R&amp;D",
        "label": "In Process Research and Development [Member]",
        "documentation": "In process investigation of new knowledge useful in developing new product or service or new process or technique or improvement to existing product or process, and translation of knowledge into plan or design for new product or process or for improvement to existing product or process."
       }
      }
     },
     "auth_ref": [
      "r1000",
      "r1001",
      "r1002",
      "r1003",
      "r1004",
      "r1005",
      "r1007",
      "r1009",
      "r1010",
      "r1011"
     ]
    },
    "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest",
     "crdr": "credit",
     "calculation": {
      "http://www.tecogen.com/role/ConsolidatedStatementsofOperations": {
       "parentTag": "us-gaap_ProfitLoss",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedStatementsofOperations",
      "http://www.tecogen.com/role/IncometaxesReconciliationofFederalStatutoryIncomeTaxProvisiontoCompanysActualProvisionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Loss before income taxes",
        "terseLabel": "Pre-tax book income",
        "label": "Income (Loss) from Continuing Operations before Income Taxes, Noncontrolling Interest",
        "documentation": "Amount of income (loss) from continuing operations, including income (loss) from equity method investments, before deduction of income tax expense (benefit), and income (loss) attributable to noncontrolling interest."
       }
      }
     },
     "auth_ref": [
      "r93",
      "r143",
      "r147",
      "r612",
      "r626",
      "r758",
      "r764",
      "r973",
      "r976",
      "r977",
      "r978",
      "r979"
     ]
    },
    "us-gaap_IncomeStatementAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncomeStatementAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Income Statement [Abstract]",
        "label": "Income Statement [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsLineItems",
     "presentation": [
      "http://www.tecogen.com/role/SaleofADGAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Income Statement, Balance Sheet and Additional Disclosures by Disposal Groups, Including Discontinued Operations [Line Items]",
        "label": "Income Statement, Balance Sheet and Additional Disclosures by Disposal Groups, Including Discontinued Operations [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_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsTable",
     "presentation": [
      "http://www.tecogen.com/role/SaleofADGAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Disposal Groups, Including Discontinued Operations [Table]",
        "label": "Disposal Groups, Including Discontinued Operations [Table]",
        "documentation": "Disclosure of information about a disposal group. Includes, but is not limited to, a discontinued operation, disposal classified as held-for-sale or disposed of by means other than sale or disposal of an individually significant component."
       }
      }
     },
     "auth_ref": [
      "r9",
      "r14",
      "r17",
      "r63",
      "r64",
      "r65",
      "r66",
      "r67",
      "r68",
      "r69",
      "r70",
      "r71",
      "r113"
     ]
    },
    "us-gaap_IncomeStatementLocationAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncomeStatementLocationAxis",
     "presentation": [
      "http://www.tecogen.com/role/IncometaxesNarrativeDetails",
      "http://www.tecogen.com/role/IncometaxesReconciliationofFederalStatutoryIncomeTaxProvisiontoCompanysActualProvisionDetails",
      "http://www.tecogen.com/role/IntangibleassetsandliabilitiesotherthangoodwillNarrativeDetails",
      "http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Statement of Income Location, Balance [Axis]",
        "label": "Statement of Income Location, Balance [Axis]",
        "documentation": "Information by location in statement of income where disaggregated amount has been reported."
       }
      }
     },
     "auth_ref": [
      "r336",
      "r343",
      "r344",
      "r534",
      "r538",
      "r543",
      "r652",
      "r654",
      "r711",
      "r741",
      "r804",
      "r1104"
     ]
    },
    "us-gaap_IncomeStatementLocationDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncomeStatementLocationDomain",
     "presentation": [
      "http://www.tecogen.com/role/IncometaxesNarrativeDetails",
      "http://www.tecogen.com/role/IncometaxesReconciliationofFederalStatutoryIncomeTaxProvisiontoCompanysActualProvisionDetails",
      "http://www.tecogen.com/role/IntangibleassetsandliabilitiesotherthangoodwillNarrativeDetails",
      "http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Statement of Income Location, Balance [Domain]",
        "label": "Statement of Income Location, Balance [Domain]",
        "documentation": "Location in statement of income where disaggregated amount has been reported."
       }
      }
     },
     "auth_ref": [
      "r343",
      "r344",
      "r534",
      "r538",
      "r543",
      "r652",
      "r654",
      "r711",
      "r741",
      "r804",
      "r1104"
     ]
    },
    "us-gaap_IncomeTaxAuthorityAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncomeTaxAuthorityAxis",
     "presentation": [
      "http://www.tecogen.com/role/IncometaxesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Income Tax Jurisdiction [Axis]",
        "label": "Income Tax Jurisdiction [Axis]",
        "documentation": "Information by income tax jurisdiction."
       }
      }
     },
     "auth_ref": [
      "r203",
      "r474",
      "r475",
      "r481",
      "r488",
      "r796",
      "r1068"
     ]
    },
    "us-gaap_IncomeTaxAuthorityDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncomeTaxAuthorityDomain",
     "presentation": [
      "http://www.tecogen.com/role/IncometaxesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Income Tax Jurisdiction [Domain]",
        "label": "Income Tax Jurisdiction [Domain]",
        "documentation": "Income tax jurisdiction."
       }
      }
     },
     "auth_ref": [
      "r203",
      "r474",
      "r475",
      "r481",
      "r488",
      "r796",
      "r1068"
     ]
    },
    "us-gaap_IncomeTaxDisclosureAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncomeTaxDisclosureAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Income Tax Disclosure [Abstract]",
        "label": "Income Tax Disclosure [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "tgen_IncomeTaxDisclosureLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "IncomeTaxDisclosureLineItems",
     "presentation": [
      "http://www.tecogen.com/role/IncometaxesReconciliationofFederalStatutoryIncomeTaxProvisiontoCompanysActualProvisionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Income Tax Disclosure [Line Items]",
        "label": "Income Tax Disclosure [Line Items]",
        "documentation": "[Line Items] for Income Tax Disclosure [Table]"
       }
      }
     },
     "auth_ref": []
    },
    "tgen_IncomeTaxDisclosureTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "IncomeTaxDisclosureTable",
     "presentation": [
      "http://www.tecogen.com/role/IncometaxesReconciliationofFederalStatutoryIncomeTaxProvisiontoCompanysActualProvisionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Income Tax Disclosure [Table]",
        "label": "Income Tax Disclosure [Table]",
        "documentation": "Income Tax Disclosure [Table]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_IncomeTaxDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncomeTaxDisclosureTextBlock",
     "presentation": [
      "http://www.tecogen.com/role/Incometaxes"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Income taxes",
        "label": "Income Tax Disclosure [Text Block]",
        "documentation": "The entire disclosure for income tax."
       }
      }
     },
     "auth_ref": [
      "r207",
      "r470",
      "r474",
      "r478",
      "r479",
      "r480",
      "r482",
      "r487",
      "r494",
      "r496",
      "r497",
      "r498",
      "r671",
      "r796"
     ]
    },
    "us-gaap_IncomeTaxExpenseBenefit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncomeTaxExpenseBenefit",
     "crdr": "debit",
     "calculation": {
      "http://www.tecogen.com/role/IncometaxesReconciliationofFederalStatutoryIncomeTaxProvisiontoCompanysActualProvisionDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/IncometaxesReconciliationofFederalStatutoryIncomeTaxProvisiontoCompanysActualProvisionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Income tax provision",
        "label": "Income Tax Expense (Benefit)",
        "documentation": "Amount of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations."
       }
      }
     },
     "auth_ref": [
      "r152",
      "r166",
      "r227",
      "r228",
      "r243",
      "r257",
      "r278",
      "r473",
      "r474",
      "r495",
      "r632",
      "r796"
     ]
    },
    "tgen_IncomeTaxExpenseBenefitState": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "IncomeTaxExpenseBenefitState",
     "crdr": "debit",
     "calculation": {
      "http://www.tecogen.com/role/ConsolidatedStatementsofOperations": {
       "parentTag": "us-gaap_ProfitLoss",
       "weight": -1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedStatementsofOperations"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "State income tax provision",
        "label": "Income Tax Expense (Benefit), State",
        "documentation": "Income Tax Expense (Benefit), State"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_IncomeTaxPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncomeTaxPolicyTextBlock",
     "presentation": [
      "http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Income Taxes",
        "label": "Income Tax, Policy [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for income taxes, which may include its accounting policies for recognizing and measuring deferred tax assets and liabilities and related valuation allowances, recognizing investment tax credits, operating loss carryforwards, tax credit carryforwards, and other carryforwards, methodologies for determining its effective income tax rate and the characterization of interest and penalties in the financial statements."
       }
      }
     },
     "auth_ref": [
      "r192",
      "r471",
      "r472",
      "r482",
      "r483",
      "r486",
      "r490",
      "r669"
     ]
    },
    "us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance",
     "crdr": "debit",
     "calculation": {
      "http://www.tecogen.com/role/IncometaxesReconciliationofFederalStatutoryIncomeTaxProvisiontoCompanysActualProvisionDetails": {
       "parentTag": "us-gaap_IncomeTaxExpenseBenefit",
       "weight": 1.0,
       "order": 10.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/IncometaxesNarrativeDetails",
      "http://www.tecogen.com/role/IncometaxesReconciliationofFederalStatutoryIncomeTaxProvisiontoCompanysActualProvisionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Change in valuation allowance",
        "label": "Effective Income Tax Rate Reconciliation, Change in Deferred Tax Assets Valuation Allowance, Amount",
        "documentation": "Amount 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 increase (decrease) in the valuation allowance for deferred tax assets."
       }
      }
     },
     "auth_ref": [
      "r477",
      "r796",
      "r1062"
     ]
    },
    "us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate",
     "crdr": "debit",
     "calculation": {
      "http://www.tecogen.com/role/IncometaxesReconciliationofFederalStatutoryIncomeTaxProvisiontoCompanysActualProvisionDetails": {
       "parentTag": "us-gaap_IncomeTaxExpenseBenefit",
       "weight": 1.0,
       "order": 9.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/IncometaxesReconciliationofFederalStatutoryIncomeTaxProvisiontoCompanysActualProvisionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Expected tax at 21%",
        "label": "Effective Income Tax Rate Reconciliation at Federal Statutory Income Tax Rate, Amount",
        "documentation": "The amount of income tax expense or benefit for the period computed by applying the domestic federal statutory tax rates to pretax income from continuing operations."
       }
      }
     },
     "auth_ref": [
      "r474",
      "r796"
     ]
    },
    "us-gaap_IncomeTaxReconciliationNondeductibleExpenseAmortization": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncomeTaxReconciliationNondeductibleExpenseAmortization",
     "crdr": "debit",
     "calculation": {
      "http://www.tecogen.com/role/IncometaxesReconciliationofFederalStatutoryIncomeTaxProvisiontoCompanysActualProvisionDetails": {
       "parentTag": "us-gaap_IncomeTaxExpenseBenefit",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/IncometaxesReconciliationofFederalStatutoryIncomeTaxProvisiontoCompanysActualProvisionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Intangible amortization",
        "label": "Effective Income Tax Rate Reconciliation, Nondeductible Expense, Amortization, Amount",
        "documentation": "Amount 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 nondeductible amortization."
       }
      }
     },
     "auth_ref": [
      "r1062",
      "r1064"
     ]
    },
    "us-gaap_IncomeTaxReconciliationNondeductibleExpenseImpairmentLosses": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncomeTaxReconciliationNondeductibleExpenseImpairmentLosses",
     "crdr": "debit",
     "calculation": {
      "http://www.tecogen.com/role/IncometaxesReconciliationofFederalStatutoryIncomeTaxProvisiontoCompanysActualProvisionDetails": {
       "parentTag": "us-gaap_IncomeTaxExpenseBenefit",
       "weight": 1.0,
       "order": 8.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/IncometaxesReconciliationofFederalStatutoryIncomeTaxProvisiontoCompanysActualProvisionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Goodwill impairment",
        "label": "Effective Income Tax Rate Reconciliation, Nondeductible Expense, Impairment Losses, Amount",
        "documentation": "Amount 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 nondeductible impairment loss."
       }
      }
     },
     "auth_ref": [
      "r796",
      "r1062",
      "r1064"
     ]
    },
    "us-gaap_IncomeTaxReconciliationNondeductibleExpenseOther": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncomeTaxReconciliationNondeductibleExpenseOther",
     "crdr": "debit",
     "calculation": {
      "http://www.tecogen.com/role/IncometaxesReconciliationofFederalStatutoryIncomeTaxProvisiontoCompanysActualProvisionDetails": {
       "parentTag": "us-gaap_IncomeTaxExpenseBenefit",
       "weight": 1.0,
       "order": 11.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/IncometaxesReconciliationofFederalStatutoryIncomeTaxProvisiontoCompanysActualProvisionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Other",
        "label": "Effective Income Tax Rate Reconciliation, Nondeductible Expense, Other, Amount",
        "documentation": "Amount 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 other nondeductible expenses."
       }
      }
     },
     "auth_ref": [
      "r796",
      "r1062",
      "r1064"
     ]
    },
    "us-gaap_IncomeTaxReconciliationNondeductibleExpenseResearchAndDevelopment": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncomeTaxReconciliationNondeductibleExpenseResearchAndDevelopment",
     "crdr": "debit",
     "calculation": {
      "http://www.tecogen.com/role/IncometaxesReconciliationofFederalStatutoryIncomeTaxProvisiontoCompanysActualProvisionDetails": {
       "parentTag": "us-gaap_IncomeTaxExpenseBenefit",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/IncometaxesReconciliationofFederalStatutoryIncomeTaxProvisiontoCompanysActualProvisionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Capitalized research and development expenses",
        "label": "Effective Income Tax Rate Reconciliation, Nondeductible Expense, Research and Development, Amount",
        "documentation": "Amount 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 nondeductible research and development expense."
       }
      }
     },
     "auth_ref": [
      "r1062",
      "r1064"
     ]
    },
    "us-gaap_IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost",
     "crdr": "debit",
     "presentation": [
      "http://www.tecogen.com/role/IncometaxesReconciliationofFederalStatutoryIncomeTaxProvisiontoCompanysActualProvisionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Paycheck protection program loan forgiveness",
        "label": "Effective Income Tax Rate Reconciliation, Nondeductible Expense, Share-Based Payment Arrangement, Amount",
        "documentation": "Amount of reported income tax expense (benefit) in excess of (less than) expected income tax expense (benefit) computed by applying domestic federal statutory income tax rate to pretax income (loss) from continuing operation, attributable to nondeductible expense for award under share-based payment arrangement. Includes, but is not limited to, expense determined to be nondeductible upon grant or after for award under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r796",
      "r1062",
      "r1064"
     ]
    },
    "us-gaap_IncomeTaxReconciliationPriorYearIncomeTaxes": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncomeTaxReconciliationPriorYearIncomeTaxes",
     "crdr": "debit",
     "calculation": {
      "http://www.tecogen.com/role/IncometaxesReconciliationofFederalStatutoryIncomeTaxProvisiontoCompanysActualProvisionDetails": {
       "parentTag": "us-gaap_IncomeTaxExpenseBenefit",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/IncometaxesReconciliationofFederalStatutoryIncomeTaxProvisiontoCompanysActualProvisionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Deferred tax past year true-up's",
        "label": "Effective Income Tax Rate Reconciliation, Prior Year Income Taxes, Amount",
        "documentation": "Amount 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 revisions of previously reported income tax expense (benefit)."
       }
      }
     },
     "auth_ref": [
      "r1062",
      "r1063"
     ]
    },
    "us-gaap_IncomeTaxReconciliationTaxCreditsResearch": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncomeTaxReconciliationTaxCreditsResearch",
     "crdr": "credit",
     "calculation": {
      "http://www.tecogen.com/role/IncometaxesReconciliationofFederalStatutoryIncomeTaxProvisiontoCompanysActualProvisionDetails": {
       "parentTag": "us-gaap_IncomeTaxExpenseBenefit",
       "weight": -1.0,
       "order": 12.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/IncometaxesReconciliationofFederalStatutoryIncomeTaxProvisiontoCompanysActualProvisionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Federal research and development credits",
        "label": "Effective Income Tax Rate Reconciliation, Tax Credit, Research, Amount",
        "documentation": "Amount 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 research tax credit."
       }
      }
     },
     "auth_ref": [
      "r796",
      "r1062",
      "r1064"
     ]
    },
    "tgen_IncomeTaxReconciliationUnbenefitedOperatingLosses": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "IncomeTaxReconciliationUnbenefitedOperatingLosses",
     "crdr": "debit",
     "calculation": {
      "http://www.tecogen.com/role/IncometaxesReconciliationofFederalStatutoryIncomeTaxProvisiontoCompanysActualProvisionDetails": {
       "parentTag": "us-gaap_IncomeTaxExpenseBenefit",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/IncometaxesReconciliationofFederalStatutoryIncomeTaxProvisiontoCompanysActualProvisionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Other",
        "label": "Income Tax Reconciliation, Unbenefited Operating Losses",
        "documentation": "Income Tax Reconciliation, Unbenefited Operating Losses"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_IncomeTaxesPaid": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncomeTaxesPaid",
     "crdr": "credit",
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cash paid for taxes",
        "label": "Income Taxes Paid",
        "documentation": "Amount, before refund, of cash paid to foreign, federal, state, and local jurisdictions as income tax."
       }
      }
     },
     "auth_ref": [
      "r23",
      "r104",
      "r964",
      "r1066",
      "r1067"
     ]
    },
    "us-gaap_IncreaseDecreaseInAccountsPayable": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncreaseDecreaseInAccountsPayable",
     "crdr": "debit",
     "calculation": {
      "http://www.tecogen.com/role/ConsolidatedStatementsofCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 10.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accounts payable",
        "label": "Increase (Decrease) in Accounts Payable",
        "documentation": "The increase (decrease) during the reporting period in the aggregate amount of liabilities incurred (and for which invoices have typically been received) and payable to vendors for goods and services received that are used in an entity's business."
       }
      }
     },
     "auth_ref": [
      "r5"
     ]
    },
    "us-gaap_IncreaseDecreaseInAccountsReceivable": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncreaseDecreaseInAccountsReceivable",
     "crdr": "credit",
     "calculation": {
      "http://www.tecogen.com/role/ConsolidatedStatementsofCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0,
       "order": 14.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Accounts receivable",
        "label": "Increase (Decrease) in Accounts Receivable",
        "documentation": "The increase (decrease) during the reporting period in amount due within one year (or one business cycle) from customers for the credit sale of goods and services."
       }
      }
     },
     "auth_ref": [
      "r5"
     ]
    },
    "us-gaap_IncreaseDecreaseInAccruedLiabilities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncreaseDecreaseInAccruedLiabilities",
     "crdr": "debit",
     "calculation": {
      "http://www.tecogen.com/role/ConsolidatedStatementsofCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 7.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accrued expenses",
        "label": "Increase (Decrease) in Accrued Liabilities",
        "documentation": "The increase (decrease) during the reporting period in the aggregate amount of expenses incurred but not yet paid."
       }
      }
     },
     "auth_ref": [
      "r5"
     ]
    },
    "tgen_IncreaseDecreaseInBacklog": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "IncreaseDecreaseInBacklog",
     "crdr": "credit",
     "presentation": [
      "http://www.tecogen.com/role/NatureofbusinessandoperationsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Increase in backlog",
        "label": "Increase (Decrease) In Backlog",
        "documentation": "Increase (Decrease) In Backlog"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_IncreaseDecreaseInContractWithCustomerLiability": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncreaseDecreaseInContractWithCustomerLiability",
     "crdr": "debit",
     "calculation": {
      "http://www.tecogen.com/role/ConsolidatedStatementsofCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 9.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Unbilled revenue",
        "label": "Increase (Decrease) in Contract with Customer, Liability",
        "documentation": "Amount of increase (decrease) in obligation to transfer good or service to customer for which consideration has been received or is receivable."
       }
      }
     },
     "auth_ref": [
      "r600",
      "r962"
     ]
    },
    "us-gaap_IncreaseDecreaseInDeferredRevenue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncreaseDecreaseInDeferredRevenue",
     "crdr": "debit",
     "calculation": {
      "http://www.tecogen.com/role/ConsolidatedStatementsofCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 16.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Deferred revenue",
        "label": "Increase (Decrease) in 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": [
      "r742"
     ]
    },
    "us-gaap_IncreaseDecreaseInInventories": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncreaseDecreaseInInventories",
     "crdr": "credit",
     "calculation": {
      "http://www.tecogen.com/role/ConsolidatedStatementsofCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Inventory, net",
        "label": "Increase (Decrease) in Inventories",
        "documentation": "The increase (decrease) during the reporting period in the aggregate value of all inventory held by the reporting entity, associated with underlying transactions that are classified as operating activities."
       }
      }
     },
     "auth_ref": [
      "r5"
     ]
    },
    "us-gaap_IncreaseDecreaseInOperatingAssetsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncreaseDecreaseInOperatingAssetsAbstract",
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "(Increase) decrease in:",
        "label": "Increase (Decrease) in Operating Assets [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_IncreaseDecreaseInOperatingLiabilitiesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncreaseDecreaseInOperatingLiabilitiesAbstract",
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Increase (decrease) in:",
        "label": "Increase (Decrease) in Operating Liabilities [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_IncreaseDecreaseInOtherCurrentLiabilities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncreaseDecreaseInOtherCurrentLiabilities",
     "crdr": "debit",
     "calculation": {
      "http://www.tecogen.com/role/ConsolidatedStatementsofCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 18.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Other current liabilities",
        "label": "Increase (Decrease) in Other Current Liabilities",
        "documentation": "Amount of increase (decrease) in current liabilities classified as other."
       }
      }
     },
     "auth_ref": [
      "r962"
     ]
    },
    "us-gaap_IncreaseDecreaseInOtherOperatingAssets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncreaseDecreaseInOtherOperatingAssets",
     "crdr": "credit",
     "calculation": {
      "http://www.tecogen.com/role/ConsolidatedStatementsofCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0,
       "order": 15.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Other non-current assets",
        "label": "Increase (Decrease) in Other Operating Assets",
        "documentation": "Amount of increase (decrease) in operating assets classified as other."
       }
      }
     },
     "auth_ref": [
      "r5"
     ]
    },
    "tgen_IncreaseDecreaseInPrepaidExpenseAndOtherCurrentAssets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "IncreaseDecreaseInPrepaidExpenseAndOtherCurrentAssets",
     "crdr": "credit",
     "calculation": {
      "http://www.tecogen.com/role/ConsolidatedStatementsofCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Prepaid assets and other current assets",
        "label": "Increase (Decrease) in Prepaid Expense and Other Current Assets",
        "documentation": "Increase (Decrease) in Prepaid Expense and Other Current Assets"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_IncreaseDecreaseInStockholdersEquityRollForward": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncreaseDecreaseInStockholdersEquityRollForward",
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedStatementsofStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Increase (Decrease) in Stockholders' Equity [Roll Forward]",
        "label": "Increase (Decrease) in Stockholders' Equity [Roll Forward]",
        "documentation": "A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period."
       }
      }
     },
     "auth_ref": []
    },
    "tgen_IncreaseDecreaseInWorkingCapital": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "IncreaseDecreaseInWorkingCapital",
     "crdr": "credit",
     "presentation": [
      "http://www.tecogen.com/role/NatureofbusinessandoperationsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Decrease in working capital",
        "label": "Increase (Decrease) in Working Capital",
        "documentation": "Increase (Decrease) in Working Capital"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_IndefiniteLivedIntangibleAssetsByMajorClassAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IndefiniteLivedIntangibleAssetsByMajorClassAxis",
     "presentation": [
      "http://www.tecogen.com/role/IntangibleassetsandliabilitiesotherthangoodwillNarrativeDetails",
      "http://www.tecogen.com/role/IntangibleassetsotherthangoodwillScheduleofIntangibleAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Indefinite-lived Intangible Assets [Axis]",
        "label": "Indefinite-Lived Intangible Assets [Axis]",
        "documentation": "Information by type or class of assets, excluding financial assets and goodwill, lacking physical substance and having a projected indefinite period of benefit."
       }
      }
     },
     "auth_ref": [
      "r319",
      "r324",
      "r328",
      "r772"
     ]
    },
    "us-gaap_IndefiniteLivedIntangibleAssetsMajorClassNameDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IndefiniteLivedIntangibleAssetsMajorClassNameDomain",
     "presentation": [
      "http://www.tecogen.com/role/IntangibleassetsandliabilitiesotherthangoodwillNarrativeDetails",
      "http://www.tecogen.com/role/IntangibleassetsotherthangoodwillScheduleofIntangibleAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Indefinite-lived Intangible Assets, Major Class Name [Domain]",
        "label": "Indefinite-Lived Intangible Assets, Major Class Name [Domain]",
        "documentation": "The major class of indefinite-lived intangible asset (for example, trade names, etc. but not all-inclusive), excluding goodwill. 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 the company."
       }
      }
     },
     "auth_ref": [
      "r319",
      "r324",
      "r328",
      "r772"
     ]
    },
    "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": {
        "terseLabel": "Individual:",
        "label": "Individual [Axis]"
       }
      }
     },
     "auth_ref": [
      "r855",
      "r866",
      "r876",
      "r900",
      "r909",
      "r913",
      "r921"
     ]
    },
    "ecd_InsiderTradingArrLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "InsiderTradingArrLineItems",
     "lang": {
      "en-us": {
       "role": {
        "label": "Insider Trading Arrangements [Line Items]"
       }
      }
     },
     "auth_ref": [
      "r919"
     ]
    },
    "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]"
       }
      }
     },
     "auth_ref": [
      "r836",
      "r925"
     ]
    },
    "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": {
        "terseLabel": "Insider Trading Policies and Procedures Adopted",
        "label": "Insider Trading Policies and Procedures Adopted [Flag]"
       }
      }
     },
     "auth_ref": [
      "r836",
      "r925"
     ]
    },
    "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": {
        "terseLabel": "Insider Trading Policies and Procedures Not Adopted",
        "label": "Insider Trading Policies and Procedures Not Adopted [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r836",
      "r925"
     ]
    },
    "tgen_InstallationServicesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "InstallationServicesMember",
     "presentation": [
      "http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesRevenueDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Installation Services [Member]",
        "label": "Installation Services [Member]",
        "documentation": "Installation Services [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_IntangibleAssetsDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IntangibleAssetsDisclosureTextBlock",
     "presentation": [
      "http://www.tecogen.com/role/Intangibleassetsandliabilitiesotherthangoodwill"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Intangible assets and liabilities other than goodwill",
        "label": "Intangible Assets Disclosure [Text Block]",
        "documentation": "The entire disclosure for all or part of the information related to intangible assets."
       }
      }
     },
     "auth_ref": [
      "r318",
      "r331",
      "r334",
      "r740",
      "r741"
     ]
    },
    "us-gaap_IntangibleAssetsFiniteLivedPolicy": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IntangibleAssetsFiniteLivedPolicy",
     "presentation": [
      "http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Intangible Assets",
        "label": "Intangible Assets, Finite-Lived, Policy [Policy Text Block]",
        "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": [
      "r602",
      "r603",
      "r604",
      "r606",
      "r754",
      "r999"
     ]
    },
    "us-gaap_IntangibleAssetsGrossExcludingGoodwill": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IntangibleAssetsGrossExcludingGoodwill",
     "crdr": "debit",
     "calculation": {
      "http://www.tecogen.com/role/IntangibleassetsotherthangoodwillScheduleofIntangibleAssetsDetails": {
       "parentTag": "us-gaap_IntangibleAssetsNetExcludingGoodwill",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/IntangibleassetsotherthangoodwillScheduleofIntangibleAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Intangible assets",
        "label": "Intangible Assets, Gross (Excluding Goodwill)",
        "documentation": "Amount before accumulated amortization of intangible assets, excluding goodwill."
       }
      }
     },
     "auth_ref": [
      "r179"
     ]
    },
    "tgen_IntangibleAssetsMeasurementInput": {
     "xbrltype": "percentItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "IntangibleAssetsMeasurementInput",
     "presentation": [
      "http://www.tecogen.com/role/AegisContractandRelatedAssetAcquisitionDetails",
      "http://www.tecogen.com/role/FairValueMeasurementsNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Intangible assets, measurement input",
        "label": "Intangible Assets, Measurement Input",
        "documentation": "Intangible Assets, Measurement Input"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_IntangibleAssetsNetExcludingGoodwill": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IntangibleAssetsNetExcludingGoodwill",
     "crdr": "debit",
     "calculation": {
      "http://www.tecogen.com/role/IntangibleassetsotherthangoodwillScheduleofIntangibleAssetsDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/IntangibleassetsotherthangoodwillScheduleofIntangibleAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Intangible Assets, Net",
        "label": "Intangible Assets, Net (Excluding Goodwill)",
        "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": [
      "r319",
      "r1007",
      "r1009"
     ]
    },
    "us-gaap_IntangibleAssetsNetExcludingGoodwillAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IntangibleAssetsNetExcludingGoodwillAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Intangible Assets, Net (Excluding Goodwill) [Abstract]",
        "label": "Intangible Assets, Net (Excluding Goodwill) [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "tgen_IntangibleLiabilitiesNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "IntangibleLiabilitiesNet",
     "crdr": "credit",
     "calculation": {
      "http://www.tecogen.com/role/IntangibleassetsotherthangoodwillScheduleofIntangibleAssetsDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/IntangibleassetsotherthangoodwillScheduleofIntangibleAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Intangible Liabilities, Net",
        "label": "Intangible Liabilities, Net",
        "documentation": "Intangible Liabilities, Net"
       }
      }
     },
     "auth_ref": []
    },
    "tgen_IntangibleLiabilityGross": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "IntangibleLiabilityGross",
     "crdr": "credit",
     "calculation": {
      "http://www.tecogen.com/role/IntangibleassetsotherthangoodwillScheduleofIntangibleAssetsDetails": {
       "parentTag": "tgen_IntangibleLiabilitiesNet",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/IntangibleassetsotherthangoodwillScheduleofIntangibleAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Intangible liability",
        "label": "Intangible Liability, Gross",
        "documentation": "Intangible Liability, Gross"
       }
      }
     },
     "auth_ref": []
    },
    "tgen_InterestAndOtherIncomeExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "InterestAndOtherIncomeExpense",
     "crdr": "credit",
     "calculation": {
      "http://www.tecogen.com/role/ConsolidatedStatementsofOperations": {
       "parentTag": "us-gaap_NonoperatingIncomeExpense",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedStatementsofOperations"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Interest and other income (expense)",
        "label": "Interest and Other Income (Expense)",
        "documentation": "Interest and Other Income (Expense)"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_InterestExpenseNonoperating": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "InterestExpenseNonoperating",
     "crdr": "debit",
     "calculation": {
      "http://www.tecogen.com/role/ConsolidatedStatementsofOperations": {
       "parentTag": "us-gaap_NonoperatingIncomeExpense",
       "weight": -1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedStatementsofOperations"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Interest expense",
        "label": "Interest Expense, Nonoperating",
        "documentation": "Amount of interest expense classified as nonoperating."
       }
      }
     },
     "auth_ref": [
      "r253",
      "r960"
     ]
    },
    "us-gaap_InterestPaidNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "InterestPaidNet",
     "crdr": "credit",
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cash paid for interest",
        "label": "Interest Paid, Excluding Capitalized Interest, Operating Activities",
        "documentation": "Amount of cash paid for interest, excluding capitalized interest, classified as operating activity. Includes, but is not limited to, payment to settle zero-coupon bond for accreted interest of debt discount and debt instrument with insignificant coupon interest rate in relation to effective interest rate of borrowing attributable to accreted interest of debt discount."
       }
      }
     },
     "auth_ref": [
      "r198",
      "r201",
      "r202"
     ]
    },
    "us-gaap_InterestPayableCurrentAndNoncurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "InterestPayableCurrentAndNoncurrent",
     "crdr": "credit",
     "presentation": [
      "http://www.tecogen.com/role/RelatedPartyNotesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Interest Payable",
        "label": "Interest Payable",
        "documentation": "Amount of interest payable on debt, including, but not limited to, trade payables."
       }
      }
     },
     "auth_ref": [
      "r138",
      "r1100"
     ]
    },
    "us-gaap_InternalRevenueServiceIRSMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "InternalRevenueServiceIRSMember",
     "presentation": [
      "http://www.tecogen.com/role/IncometaxesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Internal Revenue Service (IRS)",
        "label": "Internal Revenue Service (IRS) [Member]",
        "documentation": "Designated tax department of the United States of America government entitled to levy and collect income taxes from the entity."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_IntersegmentEliminationMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IntersegmentEliminationMember",
     "presentation": [
      "http://www.tecogen.com/role/SegmentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Intersegment Eliminations",
        "label": "Intersegment Eliminations [Member]",
        "documentation": "Eliminating entries used in operating segment consolidation."
       }
      }
     },
     "auth_ref": [
      "r146",
      "r243",
      "r251",
      "r272",
      "r273",
      "r274",
      "r275",
      "r276",
      "r278",
      "r279",
      "r764"
     ]
    },
    "us-gaap_InventoryDisclosureAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "InventoryDisclosureAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Inventory Disclosure [Abstract]",
        "label": "Inventory Disclosure [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_InventoryDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "InventoryDisclosureTextBlock",
     "presentation": [
      "http://www.tecogen.com/role/Inventory"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Inventory",
        "label": "Inventory Disclosure [Text Block]",
        "documentation": "The entire disclosure for inventory. Includes, but is not limited to, the basis of stating inventory, the method of determining inventory cost, the classes of inventory, and the nature of the cost elements included in inventory."
       }
      }
     },
     "auth_ref": [
      "r298"
     ]
    },
    "us-gaap_InventoryFinishedGoodsNetOfReserves": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "InventoryFinishedGoodsNetOfReserves",
     "crdr": "debit",
     "calculation": {
      "http://www.tecogen.com/role/InventorySummaryofInventoryDetails": {
       "parentTag": "us-gaap_InventoryNet",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/InventorySummaryofInventoryDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Finished goods",
        "label": "Inventory, Finished Goods, Net of Reserves",
        "documentation": "Carrying amount, net of valuation reserves and adjustments, as of the balance sheet date of merchandise or goods held by the company that are readily available for sale."
       }
      }
     },
     "auth_ref": [
      "r109",
      "r748"
     ]
    },
    "us-gaap_InventoryNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "InventoryNet",
     "crdr": "debit",
     "calculation": {
      "http://www.tecogen.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0,
       "order": 6.0
      },
      "http://www.tecogen.com/role/InventorySummaryofInventoryDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedBalanceSheets",
      "http://www.tecogen.com/role/InventorySummaryofInventoryDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Inventory, net",
        "totalLabel": "Inventory, Net",
        "label": "Inventory, Net",
        "documentation": "Amount after valuation and LIFO reserves of inventory expected to be sold, or consumed within one year or operating cycle, if longer."
       }
      }
     },
     "auth_ref": [
      "r185",
      "r747",
      "r811"
     ]
    },
    "us-gaap_InventoryPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "InventoryPolicyTextBlock",
     "presentation": [
      "http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Inventory",
        "label": "Inventory, Policy [Policy Text Block]",
        "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": [
      "r153",
      "r175",
      "r184",
      "r298",
      "r299",
      "r301",
      "r601",
      "r755"
     ]
    },
    "us-gaap_InventoryRawMaterialsNetOfReserves": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "InventoryRawMaterialsNetOfReserves",
     "crdr": "debit",
     "calculation": {
      "http://www.tecogen.com/role/InventorySummaryofInventoryDetails": {
       "parentTag": "us-gaap_InventoryNet",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/InventorySummaryofInventoryDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Raw materials, net",
        "label": "Inventory, Raw Materials, Net of Reserves",
        "documentation": "Carrying amount, net of valuation reserves and adjustments, as of the balance sheet date of unprocessed items to be consumed in the manufacturing or production process."
       }
      }
     },
     "auth_ref": [
      "r109",
      "r750"
     ]
    },
    "us-gaap_InventoryWorkInProcessNetOfReserves": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "InventoryWorkInProcessNetOfReserves",
     "crdr": "debit",
     "calculation": {
      "http://www.tecogen.com/role/InventorySummaryofInventoryDetails": {
       "parentTag": "us-gaap_InventoryNet",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/InventorySummaryofInventoryDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Work-in-process",
        "label": "Inventory, Work in Process, Net of Reserves",
        "documentation": "Carrying amount, net of reserves and adjustments, as of the balance sheet date of merchandise or goods which are partially completed. This inventory is generally comprised of raw materials, labor and factory overhead costs, which require further materials, labor and overhead to be converted into finished goods, and which generally require the use of estimates to determine percentage complete and pricing."
       }
      }
     },
     "auth_ref": [
      "r109",
      "r749"
     ]
    },
    "us-gaap_InventoryWriteDown": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "InventoryWriteDown",
     "crdr": "debit",
     "calculation": {
      "http://www.tecogen.com/role/ConsolidatedStatementsofCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Provision for inventory reserve",
        "label": "Inventory Write-down",
        "documentation": "Amount of loss from reductions in inventory due to subsequent measurement adjustments, including, but not limited to, physical deterioration, obsolescence, or changes in price levels."
       }
      }
     },
     "auth_ref": [
      "r300"
     ]
    },
    "tgen_JohnN.HatsopoulosAndEarlR.LewisIIIMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "JohnN.HatsopoulosAndEarlR.LewisIIIMember",
     "presentation": [
      "http://www.tecogen.com/role/NatureofbusinessandoperationsDetails",
      "http://www.tecogen.com/role/RelatedPartyNotesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "John N. Hatsopoulos and Earl R. Lewis, III",
        "label": "John N. Hatsopoulos and Earl R. Lewis, III [Member]",
        "documentation": "John N. Hatsopoulos and Earl R. Lewis, III"
       }
      }
     },
     "auth_ref": []
    },
    "tgen_JohnN.HatsopoulosMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "JohnN.HatsopoulosMember",
     "presentation": [
      "http://www.tecogen.com/role/RelatedPartyNotesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "John N. Hatsopoulos",
        "label": "John N. Hatsopoulos [Member]",
        "documentation": "John N. Hatsopoulos"
       }
      }
     },
     "auth_ref": []
    },
    "tgen_July2024PromissoryNoteMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "July2024PromissoryNoteMember",
     "presentation": [
      "http://www.tecogen.com/role/RelatedPartyNotesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "July 2024 Promissory Note",
        "label": "July 2024 Promissory Note [Member]",
        "documentation": "July 2024 Promissory Note"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LeaseCost": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LeaseCost",
     "crdr": "debit",
     "presentation": [
      "http://www.tecogen.com/role/LeasesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Lease cost",
        "label": "Lease, Cost",
        "documentation": "Amount of lease cost recognized by lessee for lease contract."
       }
      }
     },
     "auth_ref": [
      "r572",
      "r810"
     ]
    },
    "us-gaap_LeaseCostTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LeaseCostTableTextBlock",
     "presentation": [
      "http://www.tecogen.com/role/LeasesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Supplemental Information Related to Leases",
        "label": "Lease, Cost [Table Text Block]",
        "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": [
      "r1087"
     ]
    },
    "us-gaap_LeaseholdImprovementsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LeaseholdImprovementsMember",
     "presentation": [
      "http://www.tecogen.com/role/PropertyplantandequipmentSummaryofPropertyandEquipmentDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Leasehold improvements",
        "label": "Leasehold Improvements [Member]",
        "documentation": "Additions or improvements to assets held under a lease arrangement."
       }
      }
     },
     "auth_ref": [
      "r111",
      "r580"
     ]
    },
    "us-gaap_LeasesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LeasesAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Leases [Abstract]",
        "label": "Leases [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "dei_LegalEntityAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "LegalEntityAxis",
     "presentation": [
      "http://www.tecogen.com/role/CommitmentsandcontingenciesDetails",
      "http://www.tecogen.com/role/FairValueMeasurementsScheduleofAssetReportedinConsolidatedBalanceSheetMeasuredatFairValueonRecurringBasisDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Legal Entity [Axis]",
        "label": "Legal Entity [Axis]",
        "documentation": "The set of legal entities associated with a report."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LesseeLeaseDescriptionLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LesseeLeaseDescriptionLineItems",
     "presentation": [
      "http://www.tecogen.com/role/LeasesSupplementalBalanceSheetInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Lessee, Lease, Description [Line Items]",
        "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": [
      "r571",
      "r581"
     ]
    },
    "us-gaap_LesseeLeaseDescriptionTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LesseeLeaseDescriptionTable",
     "presentation": [
      "http://www.tecogen.com/role/LeasesSupplementalBalanceSheetInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Lessee, Lease, Description [Table]",
        "label": "Lessee, Lease, Description [Table]",
        "documentation": "Disclosure of information about lessee's leases."
       }
      }
     },
     "auth_ref": [
      "r571",
      "r581"
     ]
    },
    "us-gaap_LesseeLeasesPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LesseeLeasesPolicyTextBlock",
     "presentation": [
      "http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Leases",
        "label": "Lessee, Leases [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for leasing arrangement entered into by lessee."
       }
      }
     },
     "auth_ref": [
      "r570"
     ]
    },
    "us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LesseeOperatingLeaseLiabilityMaturityTableTextBlock",
     "presentation": [
      "http://www.tecogen.com/role/LeasesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Future Minimum Lease Commitments",
        "label": "Lessee, Operating Lease, Liability, to be Paid, Maturity [Table Text Block]",
        "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": [
      "r1088"
     ]
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDue",
     "crdr": "credit",
     "calculation": {
      "http://www.tecogen.com/role/LeasesFutureMinimumLeaseCommitmentsDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      },
      "http://www.tecogen.com/role/LeasesFutureMinimumLeaseCommitmentsDetails_1": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/LeasesFutureMinimumLeaseCommitmentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total lease payments",
        "label": "Lessee, Operating Lease, Liability, to be Paid",
        "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease."
       }
      }
     },
     "auth_ref": [
      "r579"
     ]
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive",
     "crdr": "credit",
     "calculation": {
      "http://www.tecogen.com/role/LeasesFutureMinimumLeaseCommitmentsDetails_1": {
       "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
       "weight": 1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/LeasesFutureMinimumLeaseCommitmentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Thereafter",
        "label": "Lessee, Operating Lease, Liability, to be Paid, after Year Five",
        "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": [
      "r579"
     ]
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths",
     "crdr": "credit",
     "calculation": {
      "http://www.tecogen.com/role/LeasesFutureMinimumLeaseCommitmentsDetails_1": {
       "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/LeasesFutureMinimumLeaseCommitmentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "2025",
        "label": "Lessee, Operating Lease, Liability, to be Paid, Year One",
        "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": [
      "r579"
     ]
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearFive",
     "crdr": "credit",
     "calculation": {
      "http://www.tecogen.com/role/LeasesFutureMinimumLeaseCommitmentsDetails_1": {
       "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/LeasesFutureMinimumLeaseCommitmentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "2029",
        "label": "Lessee, Operating Lease, Liability, to be Paid, Year Five",
        "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": [
      "r579"
     ]
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearFour",
     "crdr": "credit",
     "calculation": {
      "http://www.tecogen.com/role/LeasesFutureMinimumLeaseCommitmentsDetails_1": {
       "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/LeasesFutureMinimumLeaseCommitmentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "2028",
        "label": "Lessee, Operating Lease, Liability, to be Paid, Year Four",
        "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": [
      "r579"
     ]
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearThree",
     "crdr": "credit",
     "calculation": {
      "http://www.tecogen.com/role/LeasesFutureMinimumLeaseCommitmentsDetails_1": {
       "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/LeasesFutureMinimumLeaseCommitmentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "2027",
        "label": "Lessee, Operating Lease, Liability, to be Paid, Year Three",
        "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": [
      "r579"
     ]
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearTwo",
     "crdr": "credit",
     "calculation": {
      "http://www.tecogen.com/role/LeasesFutureMinimumLeaseCommitmentsDetails_1": {
       "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
       "weight": 1.0,
       "order": 6.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/LeasesFutureMinimumLeaseCommitmentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "2026",
        "label": "Lessee, Operating Lease, Liability, to be Paid, Year Two",
        "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": [
      "r579"
     ]
    },
    "us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LesseeOperatingLeaseLiabilityUndiscountedExcessAmount",
     "crdr": "credit",
     "calculation": {
      "http://www.tecogen.com/role/LeasesFutureMinimumLeaseCommitmentsDetails": {
       "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/LeasesFutureMinimumLeaseCommitmentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Less: imputed interest",
        "label": "Lessee, Operating Lease, Liability, Undiscounted Excess Amount",
        "documentation": "Amount of lessee's undiscounted obligation for lease payments in excess of discounted obligation for lease payments for operating lease."
       }
      }
     },
     "auth_ref": [
      "r579"
     ]
    },
    "tgen_LesseeOperatingLeaseNumberOfBuildings": {
     "xbrltype": "integerItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "LesseeOperatingLeaseNumberOfBuildings",
     "presentation": [
      "http://www.tecogen.com/role/LeasesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Number of buildings in lease agreements",
        "label": "Lessee, Operating Lease, Number Of Buildings",
        "documentation": "Lessee, Operating Lease, Number Of Buildings"
       }
      }
     },
     "auth_ref": []
    },
    "tgen_LesseeOperatingLeaseNumberOfLeaseAgreements": {
     "xbrltype": "integerItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "LesseeOperatingLeaseNumberOfLeaseAgreements",
     "presentation": [
      "http://www.tecogen.com/role/LeasesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Number of lease agreements",
        "label": "Lessee, Operating Lease, Number Of Lease Agreements",
        "documentation": "Lessee, Operating Lease, Number Of Lease Agreements"
       }
      }
     },
     "auth_ref": []
    },
    "tgen_LesseeOperatingLeaseOptionToExtendMonthlyRent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "LesseeOperatingLeaseOptionToExtendMonthlyRent",
     "crdr": "credit",
     "presentation": [
      "http://www.tecogen.com/role/LeasesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Option to extend lease, monthly rent",
        "label": "Lessee, Operating Lease, Option To Extend, Monthly Rent",
        "documentation": "Lessee, Operating Lease, Option To Extend, Monthly Rent"
       }
      }
     },
     "auth_ref": []
    },
    "tgen_LesseeOperatingLeaseOptionToExtendNumberOfOptions": {
     "xbrltype": "integerItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "LesseeOperatingLeaseOptionToExtendNumberOfOptions",
     "presentation": [
      "http://www.tecogen.com/role/LeasesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Number of options to extend lease",
        "label": "Lessee, Operating Lease, Option To Extend, Number Of Options",
        "documentation": "Lessee, Operating Lease, Option To Extend, Number Of Options"
       }
      }
     },
     "auth_ref": []
    },
    "tgen_LesseeOperatingLeaseOptionToExtendPeriod": {
     "xbrltype": "durationItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "LesseeOperatingLeaseOptionToExtendPeriod",
     "presentation": [
      "http://www.tecogen.com/role/LeasesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Option to extend, period",
        "label": "Lessee, Operating Lease, Option To Extend, Period",
        "documentation": "Lessee, Operating Lease, Option To Extend, Period"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LesseeOperatingLeaseRemainingLeaseTerm": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LesseeOperatingLeaseRemainingLeaseTerm",
     "presentation": [
      "http://www.tecogen.com/role/LeasesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Remaining lease term",
        "label": "Lessee, Operating Lease, Remaining Lease Term",
        "documentation": "Remaining lease term of operating lease, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days."
       }
      }
     },
     "auth_ref": [
      "r581",
      "r1085"
     ]
    },
    "us-gaap_LesseeOperatingLeaseRenewalTerm": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LesseeOperatingLeaseRenewalTerm",
     "presentation": [
      "http://www.tecogen.com/role/LeasesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Lease renewal term",
        "label": "Lessee, Operating Lease, Renewal Term",
        "documentation": "Term of lessee's operating lease renewal, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days."
       }
      }
     },
     "auth_ref": [
      "r1086"
     ]
    },
    "tgen_LesseeOperatingLeaseSquareFeet": {
     "xbrltype": "integerItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "LesseeOperatingLeaseSquareFeet",
     "presentation": [
      "http://www.tecogen.com/role/LeasesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Square feet of lease",
        "label": "Lessee, Operating Lease, Square Feet",
        "documentation": "Lessee, Operating Lease, Square Feet"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LesseeOperatingLeaseTermOfContract": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LesseeOperatingLeaseTermOfContract",
     "presentation": [
      "http://www.tecogen.com/role/LeasesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Operating lease, term of contract",
        "label": "Lessee, Operating Lease, Term of Contract",
        "documentation": "Term of lessee's operating lease, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days."
       }
      }
     },
     "auth_ref": [
      "r1086"
     ]
    },
    "us-gaap_LesseeOperatingLeasesTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LesseeOperatingLeasesTextBlock",
     "presentation": [
      "http://www.tecogen.com/role/Leases"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Leases",
        "label": "Lessee, Operating Leases [Text Block]",
        "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": [
      "r563"
     ]
    },
    "us-gaap_LessorLeaseDescriptionLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LessorLeaseDescriptionLineItems",
     "presentation": [
      "http://www.tecogen.com/role/LeasesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Lessor, Lease, Description [Line Items]",
        "label": "Lessor, 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": [
      "r582"
     ]
    },
    "us-gaap_LessorLeaseDescriptionTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LessorLeaseDescriptionTable",
     "presentation": [
      "http://www.tecogen.com/role/LeasesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Lessor, Lease, Description [Table]",
        "label": "Lessor, Lease, Description [Table]",
        "documentation": "Disclosure of information about lessor's leases."
       }
      }
     },
     "auth_ref": [
      "r582"
     ]
    },
    "us-gaap_Liabilities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "Liabilities",
     "crdr": "credit",
     "calculation": {
      "http://www.tecogen.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total liabilities",
        "label": "Liabilities",
        "documentation": "Amount of liability recognized for present obligation requiring transfer or otherwise providing economic benefit to others."
       }
      }
     },
     "auth_ref": [
      "r16",
      "r74",
      "r75",
      "r76",
      "r78",
      "r79",
      "r80",
      "r81",
      "r206",
      "r289",
      "r362",
      "r363",
      "r365",
      "r366",
      "r367",
      "r368",
      "r369",
      "r371",
      "r372",
      "r512",
      "r515",
      "r516",
      "r551",
      "r684",
      "r757",
      "r830",
      "r1029",
      "r1091",
      "r1092"
     ]
    },
    "us-gaap_LiabilitiesAndStockholdersEquity": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LiabilitiesAndStockholdersEquity",
     "crdr": "credit",
     "calculation": {
      "http://www.tecogen.com/role/ConsolidatedBalanceSheets": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "TOTAL LIABILITIES AND STOCKHOLDERS\u2019 EQUITY",
        "label": "Liabilities and Equity",
        "documentation": "Amount of liabilities and equity items, including the portion of equity attributable to noncontrolling interests, if any."
       }
      }
     },
     "auth_ref": [
      "r88",
      "r142",
      "r621",
      "r811",
      "r966",
      "r987",
      "r1081"
     ]
    },
    "us-gaap_LiabilitiesAndStockholdersEquityAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LiabilitiesAndStockholdersEquityAbstract",
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "LIABILITIES AND STOCKHOLDERS\u2019 EQUITY",
        "label": "Liabilities and Equity [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LiabilitiesCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LiabilitiesCurrent",
     "crdr": "credit",
     "calculation": {
      "http://www.tecogen.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_Liabilities",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total current liabilities",
        "label": "Liabilities, Current",
        "documentation": "Total obligations incurred as part of normal operations that are expected to be paid during the following twelve months or within one business cycle, if longer."
       }
      }
     },
     "auth_ref": [
      "r76",
      "r174",
      "r206",
      "r289",
      "r362",
      "r363",
      "r365",
      "r366",
      "r367",
      "r368",
      "r369",
      "r371",
      "r372",
      "r512",
      "r515",
      "r516",
      "r551",
      "r811",
      "r1029",
      "r1091",
      "r1092"
     ]
    },
    "us-gaap_LiabilitiesCurrentAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LiabilitiesCurrentAbstract",
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Current liabilities:",
        "label": "Liabilities, Current [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LiabilitiesFairValueDisclosure": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LiabilitiesFairValueDisclosure",
     "crdr": "credit",
     "calculation": {
      "http://www.tecogen.com/role/FairValueMeasurementsScheduleofAssetReportedinConsolidatedBalanceSheetMeasuredatFairValueonRecurringBasisDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/FairValueMeasurementsScheduleofAssetReportedinConsolidatedBalanceSheetMeasuredatFairValueonRecurringBasisDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total recurring fair value measurements",
        "label": "Liabilities, Fair Value Disclosure",
        "documentation": "Fair value of financial and nonfinancial obligations."
       }
      }
     },
     "auth_ref": [
      "r529",
      "r1075"
     ]
    },
    "us-gaap_LiabilitiesNoncurrentAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LiabilitiesNoncurrentAbstract",
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Long-term liabilities:",
        "label": "Liabilities, Noncurrent [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LineOfCreditFacilityAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LineOfCreditFacilityAxis",
     "presentation": [
      "http://www.tecogen.com/role/IncometaxesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Lender Name [Axis]",
        "label": "Lender Name [Axis]",
        "documentation": "Information by name of lender, which may be a single entity (for example, but not limited to, a bank, pension fund, venture capital firm) or a group of entities that participate in the line of credit."
       }
      }
     },
     "auth_ref": [
      "r73",
      "r77",
      "r965",
      "r1026",
      "r1027"
     ]
    },
    "us-gaap_LineOfCreditFacilityLenderDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LineOfCreditFacilityLenderDomain",
     "presentation": [
      "http://www.tecogen.com/role/IncometaxesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Line of Credit Facility, Lender [Domain]",
        "label": "Line of Credit Facility, Lender [Domain]",
        "documentation": "Identification of the lender, which may be a single entity (for example, a bank, pension fund, venture capital firm) or a group of entities that participate in the line of credit, including a letter of credit facility."
       }
      }
     },
     "auth_ref": [
      "r73",
      "r77",
      "r965",
      "r1026"
     ]
    },
    "srt_LitigationCaseAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/srt/2024",
     "localname": "LitigationCaseAxis",
     "presentation": [
      "http://www.tecogen.com/role/CommitmentsandcontingenciesDetails",
      "http://www.tecogen.com/role/SubsequentEventsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Litigation Case [Axis]",
        "label": "Litigation Case [Axis]"
       }
      }
     },
     "auth_ref": []
    },
    "srt_LitigationCaseTypeDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2024",
     "localname": "LitigationCaseTypeDomain",
     "presentation": [
      "http://www.tecogen.com/role/CommitmentsandcontingenciesDetails",
      "http://www.tecogen.com/role/SubsequentEventsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Litigation Case [Domain]",
        "label": "Litigation Case [Domain]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LitigationReserve": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LitigationReserve",
     "crdr": "credit",
     "presentation": [
      "http://www.tecogen.com/role/CommitmentsandcontingenciesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Reserve for anticipated damages",
        "label": "Estimated Litigation Liability",
        "documentation": "Aggregate carrying amount of the estimated litigation liability for known or estimated probable loss from litigation, which may include attorneys' fees and other litigation costs."
       }
      }
     },
     "auth_ref": [
      "r80",
      "r1017"
     ]
    },
    "tgen_LitigationSettlementFeeExpenseBenefit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "LitigationSettlementFeeExpenseBenefit",
     "crdr": "credit",
     "presentation": [
      "http://www.tecogen.com/role/SubsequentEventsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Litigation settlement fee expense, benefit",
        "label": "Litigation Settlement Fee Expense, Benefit",
        "documentation": "Litigation Settlement Fee Expense, Benefit"
       }
      }
     },
     "auth_ref": []
    },
    "dei_LocalPhoneNumber": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "LocalPhoneNumber",
     "presentation": [
      "http://www.tecogen.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Local Phone Number",
        "label": "Local Phone Number",
        "documentation": "Local phone number for entity."
       }
      }
     },
     "auth_ref": []
    },
    "tgen_LongLivedAssetImpairmentMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "LongLivedAssetImpairmentMember",
     "presentation": [
      "http://www.tecogen.com/role/IntangibleassetsandliabilitiesotherthangoodwillNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Long-lived Asset Impairment",
        "label": "Long-lived Asset Impairment [Member]",
        "documentation": "Long-lived Asset Impairment"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LossContingenciesLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LossContingenciesLineItems",
     "presentation": [
      "http://www.tecogen.com/role/CommitmentsandcontingenciesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Loss Contingencies [Line Items]",
        "label": "Loss Contingencies [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": [
      "r347",
      "r348",
      "r349",
      "r352",
      "r466",
      "r773",
      "r1018",
      "r1019"
     ]
    },
    "us-gaap_LossContingenciesTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LossContingenciesTable",
     "presentation": [
      "http://www.tecogen.com/role/CommitmentsandcontingenciesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Loss Contingencies [Table]",
        "label": "Loss Contingencies [Table]",
        "documentation": "Disclosure of information about loss contingency. Excludes environmental contingency, warranty, and unconditional purchase obligation."
       }
      }
     },
     "auth_ref": [
      "r347",
      "r348",
      "r349",
      "r352",
      "r466",
      "r773",
      "r1018",
      "r1019"
     ]
    },
    "us-gaap_LossContingencyAccrualProvision": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LossContingencyAccrualProvision",
     "crdr": "debit",
     "calculation": {
      "http://www.tecogen.com/role/ConsolidatedStatementsofCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 17.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Provision for litigation",
        "label": "Loss Contingency Accrual, Provision",
        "documentation": "Amount charged against operating income increasing loss contingency liability, after adjustments to reduce previously estimated charges."
       }
      }
     },
     "auth_ref": [
      "r1017"
     ]
    },
    "us-gaap_LossContingencyDamagesAwardedValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LossContingencyDamagesAwardedValue",
     "crdr": "debit",
     "presentation": [
      "http://www.tecogen.com/role/CommitmentsandcontingenciesDetails",
      "http://www.tecogen.com/role/SubsequentEventsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Loss contingency, damages awarded",
        "label": "Loss Contingency, Damages Awarded, Value",
        "documentation": "Amount of damages awarded to the plaintiff in the legal matter."
       }
      }
     },
     "auth_ref": [
      "r1017",
      "r1018",
      "r1019"
     ]
    },
    "us-gaap_LossContingencyDamagesPaidValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LossContingencyDamagesPaidValue",
     "crdr": "credit",
     "presentation": [
      "http://www.tecogen.com/role/CommitmentsandcontingenciesDetails",
      "http://www.tecogen.com/role/SubsequentEventsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Loss contingency, damages paid",
        "label": "Loss Contingency, Damages Paid, Value",
        "documentation": "Amount of damages paid to the plaintiff in the legal matter."
       }
      }
     },
     "auth_ref": [
      "r1017",
      "r1018",
      "r1019"
     ]
    },
    "us-gaap_LossContingencyDamagesSoughtValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LossContingencyDamagesSoughtValue",
     "crdr": "debit",
     "presentation": [
      "http://www.tecogen.com/role/CommitmentsandcontingenciesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Loss contingency, damages sought",
        "label": "Loss Contingency, Damages Sought, Value",
        "documentation": "The value (monetary amount) of the award the plaintiff seeks in the legal matter."
       }
      }
     },
     "auth_ref": [
      "r1017",
      "r1018",
      "r1019"
     ]
    },
    "us-gaap_MachineryAndEquipmentMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "MachineryAndEquipmentMember",
     "presentation": [
      "http://www.tecogen.com/role/PropertyplantandequipmentSummaryofPropertyandEquipmentDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Machinery and Equipment",
        "label": "Machinery and Equipment [Member]",
        "documentation": "Tangible personal property used to produce goods and services, including, but is not limited to, tools, dies and molds, computer and office equipment."
       }
      }
     },
     "auth_ref": []
    },
    "tgen_MaintenanceAgreementsApplicablePercentage": {
     "xbrltype": "percentItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "MaintenanceAgreementsApplicablePercentage",
     "presentation": [
      "http://www.tecogen.com/role/FairValueMeasurementsNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Maintenance agreements, applicable percentage",
        "label": "Maintenance Agreements, Applicable Percentage",
        "documentation": "Maintenance Agreements, Applicable Percentage"
       }
      }
     },
     "auth_ref": []
    },
    "tgen_MaintenanceServiceMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "MaintenanceServiceMember",
     "presentation": [
      "http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesRevenueDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Maintenance Service [Member]",
        "label": "Maintenance Service [Member]",
        "documentation": "Maintenance Service [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "srt_MajorCustomersAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/srt/2024",
     "localname": "MajorCustomersAxis",
     "presentation": [
      "http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesConcentrationofCreditRiskDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Customer [Axis]",
        "label": "Customer [Axis]"
       }
      }
     },
     "auth_ref": [
      "r285",
      "r782",
      "r813",
      "r817",
      "r1034",
      "r1103",
      "r1105",
      "r1106",
      "r1108",
      "r1109",
      "r1110",
      "r1111",
      "r1112",
      "r1113",
      "r1114",
      "r1115",
      "r1116",
      "r1117",
      "r1118",
      "r1119",
      "r1120",
      "r1121",
      "r1122",
      "r1123",
      "r1124",
      "r1125",
      "r1126",
      "r1127",
      "r1128",
      "r1129",
      "r1130",
      "r1131",
      "r1132"
     ]
    },
    "srt_MaximumMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2024",
     "localname": "MaximumMember",
     "presentation": [
      "http://www.tecogen.com/role/AegisContractandRelatedAssetAcquisitionDetails",
      "http://www.tecogen.com/role/FairValueMeasurementsNarrativeDetails",
      "http://www.tecogen.com/role/IntangibleassetsandliabilitiesotherthangoodwillNarrativeDetails",
      "http://www.tecogen.com/role/LeasesNarrativeDetails",
      "http://www.tecogen.com/role/PropertyplantandequipmentSummaryofPropertyandEquipmentDetails",
      "http://www.tecogen.com/role/StockholdersequityStockBasedCompensationDetails",
      "http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesPropertyPlantandEquipmentDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Maximum",
        "label": "Maximum [Member]"
       }
      }
     },
     "auth_ref": [
      "r348",
      "r349",
      "r350",
      "r351",
      "r424",
      "r466",
      "r532",
      "r599",
      "r651",
      "r653",
      "r665",
      "r676",
      "r677",
      "r730",
      "r731",
      "r732",
      "r733",
      "r734",
      "r738",
      "r739",
      "r770",
      "r779",
      "r792",
      "r805",
      "r806",
      "r807",
      "r808",
      "r814",
      "r1033",
      "r1093",
      "r1094",
      "r1095",
      "r1096",
      "r1097",
      "r1098"
     ]
    },
    "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": {
        "terseLabel": "Measure:",
        "label": "Measure [Axis]"
       }
      }
     },
     "auth_ref": [
      "r892"
     ]
    },
    "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": {
        "terseLabel": "Name",
        "label": "Measure Name"
       }
      }
     },
     "auth_ref": [
      "r892"
     ]
    },
    "us-gaap_MeasurementInputDiscountRateMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "MeasurementInputDiscountRateMember",
     "presentation": [
      "http://www.tecogen.com/role/AegisContractandRelatedAssetAcquisitionDetails",
      "http://www.tecogen.com/role/FairValueMeasurementsNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Measurement Input, Discount Rate",
        "label": "Measurement Input, Discount Rate [Member]",
        "documentation": "Measurement input using interest rate to determine present value of future cash flows."
       }
      }
     },
     "auth_ref": [
      "r1077",
      "r1078",
      "r1079"
     ]
    },
    "us-gaap_MeasurementInputTypeAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "MeasurementInputTypeAxis",
     "presentation": [
      "http://www.tecogen.com/role/AegisContractandRelatedAssetAcquisitionDetails",
      "http://www.tecogen.com/role/FairValueMeasurementsNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Measurement Input Type [Axis]",
        "label": "Measurement Input Type [Axis]",
        "documentation": "Information by type of measurement input used to determine value of asset and liability."
       }
      }
     },
     "auth_ref": [
      "r530",
      "r531",
      "r532",
      "r805"
     ]
    },
    "us-gaap_MeasurementInputTypeDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "MeasurementInputTypeDomain",
     "presentation": [
      "http://www.tecogen.com/role/AegisContractandRelatedAssetAcquisitionDetails",
      "http://www.tecogen.com/role/FairValueMeasurementsNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Measurement Input Type [Domain]",
        "label": "Measurement Input Type [Domain]",
        "documentation": "Measurement input used to determine value of asset and liability."
       }
      }
     },
     "auth_ref": [
      "r530",
      "r531",
      "r532",
      "r805"
     ]
    },
    "tgen_MeasurementInputWACCMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "MeasurementInputWACCMember",
     "presentation": [
      "http://www.tecogen.com/role/AegisContractandRelatedAssetAcquisitionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Measurement Input, WACC",
        "label": "Measurement Input, WACC [Member]",
        "documentation": "Measurement Input, WACC"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_MergersAcquisitionsAndDispositionsDisclosuresTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "MergersAcquisitionsAndDispositionsDisclosuresTextBlock",
     "presentation": [
      "http://www.tecogen.com/role/AcquisitionofAmericanDGEnergyIncNotes"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Acquisition of American DG Energy Inc.",
        "label": "Mergers, Acquisitions and Dispositions Disclosures [Text Block]",
        "documentation": "The entire disclosure for business combinations, including leverage buyout transactions (as applicable), and divestitures. This may include a description of a business combination or divestiture (or series of individually immaterial business combinations or divestitures) completed during the period, including background, timing, and assets and liabilities recognized and reclassified or sold. This element does not include fixed asset sales and plant closings."
       }
      }
     },
     "auth_ref": [
      "r62",
      "r127"
     ]
    },
    "srt_MinimumMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2024",
     "localname": "MinimumMember",
     "presentation": [
      "http://www.tecogen.com/role/AegisContractandRelatedAssetAcquisitionDetails",
      "http://www.tecogen.com/role/FairValueMeasurementsNarrativeDetails",
      "http://www.tecogen.com/role/IntangibleassetsandliabilitiesotherthangoodwillNarrativeDetails",
      "http://www.tecogen.com/role/LeasesNarrativeDetails",
      "http://www.tecogen.com/role/PropertyplantandequipmentSummaryofPropertyandEquipmentDetails",
      "http://www.tecogen.com/role/StockholdersequityStockBasedCompensationDetails",
      "http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesPropertyPlantandEquipmentDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Minimum",
        "label": "Minimum [Member]"
       }
      }
     },
     "auth_ref": [
      "r348",
      "r349",
      "r350",
      "r351",
      "r424",
      "r466",
      "r532",
      "r599",
      "r651",
      "r653",
      "r665",
      "r676",
      "r677",
      "r730",
      "r731",
      "r732",
      "r733",
      "r734",
      "r738",
      "r739",
      "r770",
      "r779",
      "r792",
      "r805",
      "r806",
      "r807",
      "r814",
      "r1033",
      "r1093",
      "r1094",
      "r1095",
      "r1096",
      "r1097",
      "r1098"
     ]
    },
    "us-gaap_MinorityInterest": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "MinorityInterest",
     "crdr": "credit",
     "calculation": {
      "http://www.tecogen.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "netLabel": "Noncontrolling interest",
        "label": "Equity, Attributable to Noncontrolling Interest",
        "documentation": "Amount of equity (deficit) attributable to noncontrolling interest. Excludes temporary equity."
       }
      }
     },
     "auth_ref": [
      "r87",
      "r141",
      "r206",
      "r289",
      "r362",
      "r365",
      "r366",
      "r367",
      "r371",
      "r372",
      "r551",
      "r620",
      "r688"
     ]
    },
    "us-gaap_MinorityInterestDecreaseFromDistributionsToNoncontrollingInterestHolders": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "MinorityInterestDecreaseFromDistributionsToNoncontrollingInterestHolders",
     "crdr": "debit",
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedStatementsofStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Distributions to noncontrolling interest",
        "label": "Noncontrolling Interest, Decrease from Distributions to Noncontrolling Interest Holders",
        "documentation": "Decrease in noncontrolling interest balance from payment of dividends or other distributions by the non-wholly owned subsidiary or partially owned entity, included in the consolidation of the parent entity, to the noncontrolling interest holders."
       }
      }
     },
     "auth_ref": [
      "r119"
     ]
    },
    "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": {
        "terseLabel": "MNPI Disclosure Timed for Compensation Value",
        "label": "MNPI Disclosure Timed for Compensation Value [Flag]"
       }
      }
     },
     "auth_ref": [
      "r912"
     ]
    },
    "us-gaap_MovementInStandardProductWarrantyAccrualRollForward": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "MovementInStandardProductWarrantyAccrualRollForward",
     "presentation": [
      "http://www.tecogen.com/role/ProductwarrantyScheduleofProductWarrantyReserveDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Product Warranty Reserve [Roll Forward]",
        "label": "Movement in Standard Product Warranty Accrual [Roll Forward]",
        "documentation": "A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period."
       }
      }
     },
     "auth_ref": []
    },
    "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": {
        "terseLabel": "Material Terms of Trading Arrangement",
        "label": "Material Terms of Trading Arrangement [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r920"
     ]
    },
    "srt_NameOfMajorCustomerDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2024",
     "localname": "NameOfMajorCustomerDomain",
     "presentation": [
      "http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesConcentrationofCreditRiskDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Customer [Domain]",
        "label": "Customer [Domain]"
       }
      }
     },
     "auth_ref": [
      "r285",
      "r782",
      "r813",
      "r817",
      "r1034",
      "r1103",
      "r1105",
      "r1106",
      "r1108",
      "r1109",
      "r1110",
      "r1111",
      "r1112",
      "r1113",
      "r1114",
      "r1115",
      "r1116",
      "r1117",
      "r1118",
      "r1119",
      "r1120",
      "r1121",
      "r1122",
      "r1123",
      "r1124",
      "r1125",
      "r1126",
      "r1127",
      "r1128",
      "r1129",
      "r1130",
      "r1131",
      "r1132"
     ]
    },
    "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": {
        "terseLabel": "Named Executive Officers, Footnote",
        "label": "Named Executive Officers, Footnote [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r893"
     ]
    },
    "us-gaap_NatureOfOperations": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "NatureOfOperations",
     "presentation": [
      "http://www.tecogen.com/role/Natureofbusinessandoperations"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Nature of business and operations",
        "label": "Nature of Operations [Text Block]",
        "documentation": "The entire disclosure for the nature of an entity's business, major products or services, principal markets including location, and the relative importance of its operations in each business and the basis for the determination, including but not limited to, assets, revenues, or earnings. For an entity that has not commenced principal operations, disclosures about the risks and uncertainties related to the activities in which the entity is currently engaged and an understanding of what those activities are being directed toward."
       }
      }
     },
     "auth_ref": [
      "r154",
      "r167"
     ]
    },
    "us-gaap_NetCashProvidedByUsedInFinancingActivities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "NetCashProvidedByUsedInFinancingActivities",
     "crdr": "debit",
     "calculation": {
      "http://www.tecogen.com/role/ConsolidatedStatementsofCashFlows": {
       "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Net cash provided by financing activities",
        "label": "Net Cash Provided by (Used in) 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": [
      "r200"
     ]
    },
    "us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "NetCashProvidedByUsedInFinancingActivitiesAbstract",
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "CASH FLOWS FROM FINANCING ACTIVITIES:",
        "label": "Net Cash Provided by (Used in) Financing Activities [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_NetCashProvidedByUsedInInvestingActivities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "NetCashProvidedByUsedInInvestingActivities",
     "crdr": "debit",
     "calculation": {
      "http://www.tecogen.com/role/ConsolidatedStatementsofCashFlows": {
       "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Net used in investing activities",
        "label": "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": [
      "r200"
     ]
    },
    "us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "NetCashProvidedByUsedInInvestingActivitiesAbstract",
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "CASH FLOWS FROM INVESTING ACTIVITIES:",
        "label": "Net Cash Provided by (Used in) Investing Activities [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_NetCashProvidedByUsedInOperatingActivities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "NetCashProvidedByUsedInOperatingActivities",
     "calculation": {
      "http://www.tecogen.com/role/ConsolidatedStatementsofCashFlows": {
       "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedStatementsofCashFlows",
      "http://www.tecogen.com/role/NatureofbusinessandoperationsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Net cash provided by (used in) operating activities",
        "terseLabel": "Cash used in operating activities",
        "label": "Net Cash Provided by (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": [
      "r102",
      "r103",
      "r105"
     ]
    },
    "us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "NetCashProvidedByUsedInOperatingActivitiesAbstract",
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "CASH FLOWS FROM OPERATING ACTIVITIES:",
        "label": "Net Cash Provided by (Used in) Operating Activities [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_NetIncomeLoss": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "NetIncomeLoss",
     "crdr": "credit",
     "calculation": {
      "http://www.tecogen.com/role/ConsolidatedStatementsofOperations": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedStatementsofOperations",
      "http://www.tecogen.com/role/LosspercommonshareScheduleofLossPerCommonShareBasicandDilutedDetails",
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Net loss attributable to Tecogen Inc.",
        "terseLabel": "Net Income (Loss) Attributable to Parent",
        "label": "Net Income (Loss) Attributable to Parent",
        "documentation": "The portion of profit or loss for the period, net of income taxes, which is attributable to the parent."
       }
      }
     },
     "auth_ref": [
      "r97",
      "r105",
      "r144",
      "r172",
      "r190",
      "r191",
      "r195",
      "r206",
      "r216",
      "r218",
      "r219",
      "r221",
      "r222",
      "r223",
      "r227",
      "r228",
      "r234",
      "r289",
      "r362",
      "r363",
      "r365",
      "r366",
      "r367",
      "r368",
      "r369",
      "r371",
      "r372",
      "r502",
      "r509",
      "r526",
      "r551",
      "r629",
      "r706",
      "r724",
      "r725",
      "r828",
      "r1029"
     ]
    },
    "us-gaap_NetIncomeLossAttributableToNoncontrollingInterest": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "NetIncomeLossAttributableToNoncontrollingInterest",
     "crdr": "debit",
     "calculation": {
      "http://www.tecogen.com/role/ConsolidatedStatementsofOperations": {
       "parentTag": "us-gaap_NetIncomeLoss",
       "weight": -1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedStatementsofOperations"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Income attributable to the noncontrolling interest",
        "label": "Net Income (Loss) Attributable to Noncontrolling Interest",
        "documentation": "Amount of Net Income (Loss) attributable to noncontrolling interest."
       }
      }
     },
     "auth_ref": [
      "r56",
      "r134",
      "r190",
      "r191",
      "r223",
      "r227",
      "r228",
      "r628",
      "r959"
     ]
    },
    "us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "NewAccountingPronouncementsPolicyPolicyTextBlock",
     "presentation": [
      "http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Recent Accounting Pronouncements",
        "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": []
    },
    "tgen_NonContractRelatedIntangibleAssetsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "NonContractRelatedIntangibleAssetsMember",
     "presentation": [
      "http://www.tecogen.com/role/IntangibleassetsandliabilitiesotherthangoodwillScheduleofAggregateFutureAmortizationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Non-contract related intangibles",
        "label": "Non-Contract Related Intangible Assets [Member]",
        "documentation": "Non-Contract Related Intangible Assets"
       }
      }
     },
     "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": {
        "terseLabel": "Non-GAAP Measure Description",
        "label": "Non-GAAP Measure Description [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r892"
     ]
    },
    "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": {
        "terseLabel": "Non-NEOs",
        "label": "Non-NEOs [Member]"
       }
      }
     },
     "auth_ref": [
      "r855",
      "r866",
      "r876",
      "r900",
      "r909"
     ]
    },
    "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": {
        "terseLabel": "Non-PEO NEO Average Compensation Actually Paid Amount",
        "label": "Non-PEO NEO Average Compensation Actually Paid Amount"
       }
      }
     },
     "auth_ref": [
      "r883"
     ]
    },
    "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": {
        "terseLabel": "Non-PEO NEO Average Total Compensation Amount",
        "label": "Non-PEO NEO Average Total Compensation Amount"
       }
      }
     },
     "auth_ref": [
      "r882"
     ]
    },
    "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": {
        "terseLabel": "Non-PEO NEO",
        "label": "Non-PEO NEO [Member]"
       }
      }
     },
     "auth_ref": [
      "r900"
     ]
    },
    "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": {
        "terseLabel": "Non-Rule 10b5-1 Arrangement Adopted",
        "label": "Non-Rule 10b5-1 Arrangement Adopted [Flag]"
       }
      }
     },
     "auth_ref": [
      "r920"
     ]
    },
    "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": {
        "terseLabel": "Non-Rule 10b5-1 Arrangement Terminated",
        "label": "Non-Rule 10b5-1 Arrangement Terminated [Flag]"
       }
      }
     },
     "auth_ref": [
      "r920"
     ]
    },
    "tgen_NoncashInterestExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "NoncashInterestExpense",
     "crdr": "debit",
     "calculation": {
      "http://www.tecogen.com/role/ConsolidatedStatementsofCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 20.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Non-cash interest expense",
        "label": "Non-cash Interest Expense",
        "documentation": "Non-cash Interest Expense"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_NoncontrollingInterestMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "NoncontrollingInterestMember",
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedStatementsofStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Noncontrolling Interest",
        "label": "Noncontrolling Interest [Member]",
        "documentation": "This element represents that portion of equity (net assets) in a subsidiary not attributable, directly or indirectly, to the parent. A noncontrolling interest is sometimes called a minority interest."
       }
      }
     },
     "auth_ref": [
      "r53",
      "r401",
      "r967",
      "r968",
      "r969",
      "r971",
      "r1136"
     ]
    },
    "us-gaap_NonoperatingIncomeExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "NonoperatingIncomeExpense",
     "crdr": "credit",
     "calculation": {
      "http://www.tecogen.com/role/ConsolidatedStatementsofOperations": {
       "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedStatementsofOperations"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total other expense, net",
        "label": "Nonoperating Income (Expense)",
        "documentation": "The aggregate amount of income or expense from ancillary business-related activities (that is to say, excluding major activities considered part of the normal operations of the business)."
       }
      }
     },
     "auth_ref": [
      "r99"
     ]
    },
    "us-gaap_NotesPayable": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "NotesPayable",
     "crdr": "credit",
     "calculation": {
      "http://www.tecogen.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_LiabilitiesCurrent",
       "weight": 1.0,
       "order": 6.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedBalanceSheets",
      "http://www.tecogen.com/role/NatureofbusinessandoperationsDetails",
      "http://www.tecogen.com/role/RelatedPartyNotesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Related party notes payable",
        "label": "Notes Payable",
        "documentation": "Including the current and noncurrent portions, aggregate carrying amount of all types of notes payable, as of the balance sheet date, with initial maturities beyond one year or beyond the normal operating cycle, if longer."
       }
      }
     },
     "auth_ref": [
      "r16",
      "r139",
      "r1101",
      "r1102"
     ]
    },
    "us-gaap_NotesPayableToBank": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "NotesPayableToBank",
     "crdr": "credit",
     "presentation": [
      "http://www.tecogen.com/role/IncometaxesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Notes payable",
        "label": "Notes Payable to Bank",
        "documentation": "Including the current and noncurrent portions, the carrying value as of the balance sheet date of notes payable to banks, excluding mortgage notes, initially due beyond one year or beyond the operating cycle if longer."
       }
      }
     },
     "auth_ref": [
      "r16",
      "r139",
      "r1101"
     ]
    },
    "tgen_NumberOfAssetsAcquired": {
     "xbrltype": "integerItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "NumberOfAssetsAcquired",
     "presentation": [
      "http://www.tecogen.com/role/AegisContractandRelatedAssetAcquisitionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Assets acquired",
        "label": "Number of Assets Acquired",
        "documentation": "Number of Assets Acquired"
       }
      }
     },
     "auth_ref": []
    },
    "tgen_NumberOfEmployeesAcquired": {
     "xbrltype": "integerItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "NumberOfEmployeesAcquired",
     "presentation": [
      "http://www.tecogen.com/role/AegisContractandRelatedAssetAcquisitionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Employees acquired",
        "label": "Number of Employees Acquired",
        "documentation": "Number of Employees Acquired"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_NumberOfOperatingSegments": {
     "xbrltype": "integerItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "NumberOfOperatingSegments",
     "presentation": [
      "http://www.tecogen.com/role/NatureofbusinessandoperationsDetails",
      "http://www.tecogen.com/role/SegmentsDetails",
      "http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Number of operating segments",
        "label": "Number of Operating Segments",
        "documentation": "Number of operating segments. An operating segment is a component of an enterprise: (a) that engages in business activities from which it may earn revenues and incur expenses (including revenues and expenses relating to transactions with other components of the same enterprise), (b) whose operating results are regularly reviewed by the enterprise's chief operating decision maker to make decisions about resources to be allocated to the segment and assess its performance, and (c) for which discrete financial information is available. An operating segment may engage in business activities for which it has yet to earn revenues, for example, start-up operations may be operating segments before earning revenues."
       }
      }
     },
     "auth_ref": [
      "r765",
      "r975"
     ]
    },
    "tgen_October2023PromissoryNoteMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "October2023PromissoryNoteMember",
     "presentation": [
      "http://www.tecogen.com/role/RelatedPartyNotesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "October 2023 Promissory Note",
        "label": "October 2023 Promissory Note [Member]",
        "documentation": "October 2023 Promissory Note"
       }
      }
     },
     "auth_ref": []
    },
    "tgen_OfficeSpaceAndWarehouseFacilitiesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "OfficeSpaceAndWarehouseFacilitiesMember",
     "presentation": [
      "http://www.tecogen.com/role/CommitmentsandcontingenciesDetails",
      "http://www.tecogen.com/role/LeasesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Office space and warehouse facilities",
        "label": "Office Space and Warehouse Facilities [Member]",
        "documentation": "Office Space and Warehouse Facilities [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "tgen_OneCustomerMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "OneCustomerMember",
     "presentation": [
      "http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesConcentrationofCreditRiskDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "One Customer",
        "label": "One Customer [Member]",
        "documentation": "One Customer"
       }
      }
     },
     "auth_ref": []
    },
    "tgen_OperatingAndFinanceLeaseLiability": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "OperatingAndFinanceLeaseLiability",
     "crdr": "credit",
     "presentation": [
      "http://www.tecogen.com/role/LeasesFutureMinimumLeaseCommitmentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Total",
        "label": "Operating and Finance Lease, Liability",
        "documentation": "Operating and Finance Lease, Liability"
       }
      }
     },
     "auth_ref": []
    },
    "tgen_OperatingAndFinanceLeaseLiabilityToBePaid": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "OperatingAndFinanceLeaseLiabilityToBePaid",
     "crdr": "credit",
     "calculation": {
      "http://www.tecogen.com/role/LeasesFutureMinimumLeaseCommitmentsDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/LeasesFutureMinimumLeaseCommitmentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total lease payments",
        "label": "Operating and Finance Lease, Liability, to be Paid",
        "documentation": "Operating and Finance Lease, Liability, to be Paid"
       }
      }
     },
     "auth_ref": []
    },
    "tgen_OperatingAndFinanceLeaseLiabilityToBePaidAfterYearFive": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "OperatingAndFinanceLeaseLiabilityToBePaidAfterYearFive",
     "crdr": "credit",
     "calculation": {
      "http://www.tecogen.com/role/LeasesFutureMinimumLeaseCommitmentsDetails": {
       "parentTag": "tgen_OperatingAndFinanceLeaseLiabilityToBePaid",
       "weight": 1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/LeasesFutureMinimumLeaseCommitmentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Thereafter",
        "label": "Operating and Finance Lease, Liability, to be Paid, After Year Five",
        "documentation": "Operating and Finance Lease, Liability, to be Paid, After Year Five"
       }
      }
     },
     "auth_ref": []
    },
    "tgen_OperatingAndFinanceLeaseLiabilityToBePaidYearFive": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "OperatingAndFinanceLeaseLiabilityToBePaidYearFive",
     "crdr": "credit",
     "calculation": {
      "http://www.tecogen.com/role/LeasesFutureMinimumLeaseCommitmentsDetails": {
       "parentTag": "tgen_OperatingAndFinanceLeaseLiabilityToBePaid",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/LeasesFutureMinimumLeaseCommitmentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "2029",
        "label": "Operating and Finance Lease, Liability, to be Paid, Year Five",
        "documentation": "Operating and Finance Lease, Liability, to be Paid, Year Five"
       }
      }
     },
     "auth_ref": []
    },
    "tgen_OperatingAndFinanceLeaseLiabilityToBePaidYearFour": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "OperatingAndFinanceLeaseLiabilityToBePaidYearFour",
     "crdr": "credit",
     "calculation": {
      "http://www.tecogen.com/role/LeasesFutureMinimumLeaseCommitmentsDetails": {
       "parentTag": "tgen_OperatingAndFinanceLeaseLiabilityToBePaid",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/LeasesFutureMinimumLeaseCommitmentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "2028",
        "label": "Operating and Finance Lease, Liability, to be Paid, Year Four",
        "documentation": "Operating and Finance Lease, Liability, to be Paid, Year Four"
       }
      }
     },
     "auth_ref": []
    },
    "tgen_OperatingAndFinanceLeaseLiabilityToBePaidYearOne": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "OperatingAndFinanceLeaseLiabilityToBePaidYearOne",
     "crdr": "credit",
     "calculation": {
      "http://www.tecogen.com/role/LeasesFutureMinimumLeaseCommitmentsDetails": {
       "parentTag": "tgen_OperatingAndFinanceLeaseLiabilityToBePaid",
       "weight": 1.0,
       "order": 6.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/LeasesFutureMinimumLeaseCommitmentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "2025",
        "label": "Operating and Finance Lease, Liability, to be Paid, Year One",
        "documentation": "Operating and Finance Lease, Liability, to be Paid, Year One"
       }
      }
     },
     "auth_ref": []
    },
    "tgen_OperatingAndFinanceLeaseLiabilityToBePaidYearThree": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "OperatingAndFinanceLeaseLiabilityToBePaidYearThree",
     "crdr": "credit",
     "calculation": {
      "http://www.tecogen.com/role/LeasesFutureMinimumLeaseCommitmentsDetails": {
       "parentTag": "tgen_OperatingAndFinanceLeaseLiabilityToBePaid",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/LeasesFutureMinimumLeaseCommitmentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "2027",
        "label": "Operating and Finance Lease, Liability, to be Paid, Year Three",
        "documentation": "Operating and Finance Lease, Liability, to be Paid, Year Three"
       }
      }
     },
     "auth_ref": []
    },
    "tgen_OperatingAndFinanceLeaseLiabilityToBePaidYearTwo": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "OperatingAndFinanceLeaseLiabilityToBePaidYearTwo",
     "crdr": "credit",
     "calculation": {
      "http://www.tecogen.com/role/LeasesFutureMinimumLeaseCommitmentsDetails": {
       "parentTag": "tgen_OperatingAndFinanceLeaseLiabilityToBePaid",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/LeasesFutureMinimumLeaseCommitmentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "2026",
        "label": "Operating and Finance Lease, Liability, to be Paid, Year Two",
        "documentation": "Operating and Finance Lease, Liability, to be Paid, Year Two"
       }
      }
     },
     "auth_ref": []
    },
    "tgen_OperatingAndFinanceLeaseLiabilityUndiscountedExcessAmount": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "OperatingAndFinanceLeaseLiabilityUndiscountedExcessAmount",
     "crdr": "credit",
     "presentation": [
      "http://www.tecogen.com/role/LeasesFutureMinimumLeaseCommitmentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Less: imputed interest",
        "label": "Operating and Finance Lease, Liability, Undiscounted Excess Amount",
        "documentation": "Operating and Finance Lease, Liability, Undiscounted Excess Amount"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OperatingExpenses": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OperatingExpenses",
     "crdr": "debit",
     "calculation": {
      "http://www.tecogen.com/role/ConsolidatedStatementsofOperations": {
       "parentTag": "us-gaap_OperatingIncomeLoss",
       "weight": -1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedStatementsofOperations",
      "http://www.tecogen.com/role/SegmentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Operating Expenses",
        "terseLabel": "Operating expenses",
        "label": "Operating Expenses",
        "documentation": "Generally recurring costs associated with normal operations except for the portion of these expenses which can be clearly related to production and included in cost of sales or services. Includes selling, general and administrative expense."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OperatingExpensesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OperatingExpensesAbstract",
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedStatementsofOperations"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Operating expenses",
        "label": "Operating Expenses [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OperatingIncomeLoss": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OperatingIncomeLoss",
     "crdr": "credit",
     "calculation": {
      "http://www.tecogen.com/role/ConsolidatedStatementsofOperations": {
       "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedStatementsofOperations",
      "http://www.tecogen.com/role/NatureofbusinessandoperationsDetails",
      "http://www.tecogen.com/role/SegmentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Loss from operations",
        "terseLabel": "Loss from operations",
        "label": "Operating Income (Loss)",
        "documentation": "The net result for the period of deducting operating expenses from operating revenues."
       }
      }
     },
     "auth_ref": [
      "r147",
      "r758",
      "r973",
      "r976",
      "r977",
      "r978",
      "r979"
     ]
    },
    "tgen_OperatingLeaseAssetsAndLiabilitiesLesseeAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "OperatingLeaseAssetsAndLiabilitiesLesseeAbstract",
     "presentation": [
      "http://www.tecogen.com/role/LeasesSupplementalBalanceSheetInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Operating leases",
        "label": "Operating Lease, Assets And Liabilities, Lessee [Abstract]",
        "documentation": "Operating Lease, Assets And Liabilities, Lessee"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OperatingLeaseCost": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OperatingLeaseCost",
     "crdr": "debit",
     "presentation": [
      "http://www.tecogen.com/role/CommitmentsandcontingenciesDetails",
      "http://www.tecogen.com/role/LeasesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Lease expense",
        "label": "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": [
      "r574",
      "r810"
     ]
    },
    "us-gaap_OperatingLeaseExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OperatingLeaseExpense",
     "crdr": "debit",
     "presentation": [
      "http://www.tecogen.com/role/LeasesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Operating lease, expense",
        "label": "Operating Lease, Expense",
        "documentation": "Amount of operating lease expense. Excludes sublease income."
       }
      }
     },
     "auth_ref": [
      "r1084"
     ]
    },
    "us-gaap_OperatingLeaseLiability": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OperatingLeaseLiability",
     "crdr": "credit",
     "calculation": {
      "http://www.tecogen.com/role/LeasesFutureMinimumLeaseCommitmentsDetails": {
       "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
       "weight": 1.0,
       "order": 2.0
      },
      "http://www.tecogen.com/role/LeasesSupplementalBalanceSheetInformationDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/LeasesFutureMinimumLeaseCommitmentsDetails",
      "http://www.tecogen.com/role/LeasesSupplementalBalanceSheetInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total operating lease liability",
        "verboseLabel": "Total",
        "label": "Operating Lease, Liability",
        "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease."
       }
      }
     },
     "auth_ref": [
      "r566"
     ]
    },
    "us-gaap_OperatingLeaseLiabilityCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OperatingLeaseLiabilityCurrent",
     "crdr": "credit",
     "calculation": {
      "http://www.tecogen.com/role/LeasesSupplementalBalanceSheetInformationDetails": {
       "parentTag": "us-gaap_OperatingLeaseLiability",
       "weight": 1.0,
       "order": 2.0
      },
      "http://www.tecogen.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_LiabilitiesCurrent",
       "weight": 1.0,
       "order": 7.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedBalanceSheets",
      "http://www.tecogen.com/role/LeasesSupplementalBalanceSheetInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Operating lease liability, current",
        "label": "Operating Lease, Liability, Current",
        "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease, classified as current."
       }
      }
     },
     "auth_ref": [
      "r566"
     ]
    },
    "us-gaap_OperatingLeaseLiabilityNoncurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OperatingLeaseLiabilityNoncurrent",
     "crdr": "credit",
     "calculation": {
      "http://www.tecogen.com/role/LeasesSupplementalBalanceSheetInformationDetails": {
       "parentTag": "us-gaap_OperatingLeaseLiability",
       "weight": 1.0,
       "order": 1.0
      },
      "http://www.tecogen.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_Liabilities",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedBalanceSheets",
      "http://www.tecogen.com/role/LeasesSupplementalBalanceSheetInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Operating lease liability, long-term",
        "label": "Operating Lease, Liability, Noncurrent",
        "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease, classified as noncurrent."
       }
      }
     },
     "auth_ref": [
      "r566"
     ]
    },
    "us-gaap_OperatingLeasePayments": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OperatingLeasePayments",
     "crdr": "credit",
     "presentation": [
      "http://www.tecogen.com/role/LeasesSupplementalInformationforOperatingLeasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cash paid for amounts included in the measurement of operating lease liabilities",
        "label": "Operating Lease, Payments",
        "documentation": "Amount of cash outflow from operating lease, excluding payments to bring another asset to condition and location necessary for its intended use."
       }
      }
     },
     "auth_ref": [
      "r569",
      "r575"
     ]
    },
    "us-gaap_OperatingLeaseRightOfUseAsset": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OperatingLeaseRightOfUseAsset",
     "crdr": "debit",
     "calculation": {
      "http://www.tecogen.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_Assets",
       "weight": 1.0,
       "order": 7.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedBalanceSheets",
      "http://www.tecogen.com/role/LeasesSupplementalBalanceSheetInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Right of use assets - operating leases",
        "label": "Operating Lease, Right-of-Use Asset",
        "documentation": "Amount of lessee's right to use underlying asset under operating lease."
       }
      }
     },
     "auth_ref": [
      "r565"
     ]
    },
    "us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OperatingLeaseWeightedAverageDiscountRatePercent",
     "presentation": [
      "http://www.tecogen.com/role/LeasesSupplementalInformationforOperatingLeasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Weighted-average discount rate - operating leases (percent)",
        "label": "Operating Lease, Weighted Average Discount Rate, Percent",
        "documentation": "Weighted average discount rate for operating lease calculated at point in time."
       }
      }
     },
     "auth_ref": [
      "r578",
      "r810"
     ]
    },
    "us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OperatingLeaseWeightedAverageRemainingLeaseTerm1",
     "presentation": [
      "http://www.tecogen.com/role/LeasesSupplementalInformationforOperatingLeasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Weighted-average remaining lease term - operating leases",
        "label": "Operating Lease, Weighted Average Remaining Lease Term",
        "documentation": "Weighted average remaining lease term for operating lease, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days."
       }
      }
     },
     "auth_ref": [
      "r577",
      "r810"
     ]
    },
    "us-gaap_OperatingLossCarryforwards": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OperatingLossCarryforwards",
     "crdr": "debit",
     "presentation": [
      "http://www.tecogen.com/role/IncometaxesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Operating loss carryforwards",
        "label": "Operating Loss Carryforwards",
        "documentation": "Amount of operating loss carryforward, before tax effects, available to reduce future taxable income under enacted tax laws."
       }
      }
     },
     "auth_ref": [
      "r489"
     ]
    },
    "tgen_OperatingLossCarryforwardsExpired": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "OperatingLossCarryforwardsExpired",
     "crdr": "debit",
     "presentation": [
      "http://www.tecogen.com/role/IncometaxesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Operating loss carryforwards, expired",
        "label": "Operating Loss Carryforwards, Expired",
        "documentation": "Operating Loss Carryforwards, Expired"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OperatingLossCarryforwardsLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OperatingLossCarryforwardsLineItems",
     "presentation": [
      "http://www.tecogen.com/role/IncometaxesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Operating Loss Carryforwards [Line Items]",
        "label": "Operating Loss Carryforwards [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": [
      "r489"
     ]
    },
    "us-gaap_OperatingLossCarryforwardsTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OperatingLossCarryforwardsTable",
     "presentation": [
      "http://www.tecogen.com/role/IncometaxesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Operating Loss Carryforwards [Table]",
        "label": "Operating Loss Carryforwards [Table]",
        "documentation": "Disclosure of information about operating loss carryforward. Includes, but is not limited to, tax authority, amount and expiration date of operating loss carryforward, and likelihood of utilization."
       }
      }
     },
     "auth_ref": [
      "r489"
     ]
    },
    "us-gaap_OperatingSegmentsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OperatingSegmentsMember",
     "presentation": [
      "http://www.tecogen.com/role/SegmentsDetails",
      "http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesRevenueDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Operating Segments",
        "label": "Operating Segments [Member]",
        "documentation": "Identifies components of an entity that engage in business activities from which they may earn revenue and incur expenses, including transactions with other components of the same entity."
       }
      }
     },
     "auth_ref": [
      "r272",
      "r273",
      "r274",
      "r275",
      "r276",
      "r279",
      "r764",
      "r765"
     ]
    },
    "us-gaap_OrderOrProductionBacklogMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OrderOrProductionBacklogMember",
     "presentation": [
      "http://www.tecogen.com/role/NatureofbusinessandoperationsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Order or Production Backlog",
        "label": "Order or Production Backlog [Member]",
        "documentation": "Order or production backlog arising from contract acquired in business combination, asset acquisition, and from joint venture formation."
       }
      }
     },
     "auth_ref": [
      "r49",
      "r1000",
      "r1001",
      "r1002",
      "r1003",
      "r1005",
      "r1007",
      "r1010",
      "r1011"
     ]
    },
    "tgen_OrderOrProductionBacklogValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "OrderOrProductionBacklogValue",
     "crdr": "debit",
     "presentation": [
      "http://www.tecogen.com/role/NatureofbusinessandoperationsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Order or Production Backlog, Value",
        "label": "Order or Production Backlog, Value",
        "documentation": "Order or Production Backlog, Value"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Organization, Consolidation and Presentation of Financial Statements [Abstract]",
        "label": "Organization, Consolidation and Presentation of Financial Statements [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OtherAssetsNoncurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OtherAssetsNoncurrent",
     "crdr": "debit",
     "calculation": {
      "http://www.tecogen.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_Assets",
       "weight": 1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Other assets",
        "label": "Other Assets, Noncurrent",
        "documentation": "Amount of noncurrent assets classified as other."
       }
      }
     },
     "auth_ref": [
      "r181"
     ]
    },
    "us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax",
     "crdr": "credit",
     "calculation": {
      "http://www.tecogen.com/role/ConsolidatedStatementsofCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedStatementsofCashFlows",
      "http://www.tecogen.com/role/FairValueMeasurementsScheduleofAssetReportedinConsolidatedBalanceSheetMeasuredatFairValueonRecurringBasisDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Unrealized gain on investment securities",
        "terseLabel": "Unrealized gain (loss)",
        "label": "OCI, Debt Securities, Available-for-Sale, Gain (Loss), after Adjustment and Tax",
        "documentation": "Amount, after tax and adjustment, of unrealized gain (loss) on investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale) and unrealized gain (loss) on investment in debt security measured at amortized cost (held-to-maturity) from transfer to available-for-sale."
       }
      }
     },
     "auth_ref": [
      "r187",
      "r188",
      "r189",
      "r630"
     ]
    },
    "us-gaap_OtherIncomeAndExpensesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OtherIncomeAndExpensesAbstract",
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedStatementsofOperations"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Other income (expense)",
        "label": "Other Income and Expenses [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "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": {
        "terseLabel": "Other Performance Measure, Amount",
        "label": "Other Performance Measure, Amount"
       }
      }
     },
     "auth_ref": [
      "r892"
     ]
    },
    "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": {
        "terseLabel": "Outstanding Aggregate Erroneous Compensation Amount",
        "label": "Outstanding Aggregate Erroneous Compensation Amount"
       }
      }
     },
     "auth_ref": [
      "r853",
      "r864",
      "r874",
      "r907"
     ]
    },
    "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": {
        "terseLabel": "Compensation Amount",
        "label": "Outstanding Recovery Compensation Amount"
       }
      }
     },
     "auth_ref": [
      "r856",
      "r867",
      "r877",
      "r910"
     ]
    },
    "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": {
        "terseLabel": "Name",
        "label": "Outstanding Recovery, Individual Name"
       }
      }
     },
     "auth_ref": [
      "r856",
      "r867",
      "r877",
      "r910"
     ]
    },
    "srt_OwnershipAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/srt/2024",
     "localname": "OwnershipAxis",
     "presentation": [
      "http://www.tecogen.com/role/IncometaxesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Ownership [Axis]",
        "label": "Ownership [Axis]"
       }
      }
     },
     "auth_ref": []
    },
    "srt_OwnershipDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2024",
     "localname": "OwnershipDomain",
     "presentation": [
      "http://www.tecogen.com/role/IncometaxesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Ownership [Domain]",
        "label": "Ownership [Domain]"
       }
      }
     },
     "auth_ref": []
    },
    "tgen_PPPLoanProgramMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "PPPLoanProgramMember",
     "presentation": [
      "http://www.tecogen.com/role/IncometaxesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "PPP Loan Program",
        "label": "PPP Loan Program [Member]",
        "documentation": "PPP Loan Program"
       }
      }
     },
     "auth_ref": []
    },
    "srt_ParentCompanyMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2024",
     "localname": "ParentCompanyMember",
     "presentation": [
      "http://www.tecogen.com/role/StockholdersequityStockBasedCompensationDetails",
      "http://www.tecogen.com/role/StockholdersequityStockOptionActivityDetails",
      "http://www.tecogen.com/role/StockholdersequityTables",
      "http://www.tecogen.com/role/StockholdersequityWeightedAverageAssumptionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Tecogen",
        "label": "Parent Company [Member]"
       }
      }
     },
     "auth_ref": [
      "r212"
     ]
    },
    "us-gaap_PatentsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PatentsMember",
     "presentation": [
      "http://www.tecogen.com/role/IntangibleassetsandliabilitiesotherthangoodwillNarrativeDetails",
      "http://www.tecogen.com/role/IntangibleassetsotherthangoodwillScheduleofIntangibleAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Patents",
        "label": "Patents [Member]",
        "documentation": "Exclusive legal right granted by the government to the owner of the patent to exploit an invention or a process for a period of time specified by law."
       }
      }
     },
     "auth_ref": [
      "r132",
      "r1000",
      "r1001",
      "r1002",
      "r1003",
      "r1005",
      "r1007",
      "r1010",
      "r1011"
     ]
    },
    "ecd_PayVsPerformanceDisclosureLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "PayVsPerformanceDisclosureLineItems",
     "lang": {
      "en-us": {
       "role": {
        "label": "Pay vs Performance Disclosure [Line Items]"
       }
      }
     },
     "auth_ref": [
      "r881"
     ]
    },
    "us-gaap_PaymentForContingentConsiderationLiabilityInvestingActivities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PaymentForContingentConsiderationLiabilityInvestingActivities",
     "crdr": "credit",
     "presentation": [
      "http://www.tecogen.com/role/AegisContractandRelatedAssetAcquisitionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Contingent consideration paid",
        "label": "Payment for Contingent Consideration Liability, Investing Activities",
        "documentation": "Amount of cash outflow, made soon after acquisition date of business combination, to settle contingent consideration liability."
       }
      }
     },
     "auth_ref": [
      "r3"
     ]
    },
    "tgen_PaymentsForAssetAcquisitions": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "PaymentsForAssetAcquisitions",
     "crdr": "credit",
     "calculation": {
      "http://www.tecogen.com/role/AegisContractandRelatedAssetAcquisitionDetails": {
       "parentTag": "us-gaap_AssetAcquisitionConsiderationTransferred",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/AegisContractandRelatedAssetAcquisitionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cash",
        "label": "Payments for Asset Acquisitions",
        "documentation": "Payments for Asset Acquisitions"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PaymentsToAcquireBusinessesNetOfCashAcquired",
     "crdr": "credit",
     "calculation": {
      "http://www.tecogen.com/role/ConsolidatedStatementsofCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities",
       "weight": -1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Payment for business acquisition",
        "label": "Payments to Acquire Businesses, Net of Cash Acquired",
        "documentation": "The cash outflow associated with the acquisition of a business, net of the cash acquired from the purchase."
       }
      }
     },
     "auth_ref": [
      "r19"
     ]
    },
    "us-gaap_PaymentsToAcquireIntangibleAssets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PaymentsToAcquireIntangibleAssets",
     "crdr": "credit",
     "calculation": {
      "http://www.tecogen.com/role/ConsolidatedStatementsofCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities",
       "weight": -1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Purchases of intangible assets",
        "label": "Payments to Acquire Intangible Assets",
        "documentation": "The cash outflow to acquire asset without physical form usually arising from contractual or other legal rights, excluding goodwill."
       }
      }
     },
     "auth_ref": [
      "r101"
     ]
    },
    "us-gaap_PaymentsToAcquirePropertyPlantAndEquipment": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PaymentsToAcquirePropertyPlantAndEquipment",
     "crdr": "credit",
     "calculation": {
      "http://www.tecogen.com/role/ConsolidatedStatementsofCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities",
       "weight": -1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Purchases of property and equipment",
        "label": "Payments to Acquire Property, Plant, and Equipment",
        "documentation": "The cash outflow associated with the acquisition of long-lived, physical assets that are used in the normal conduct of business to produce goods and services and not intended for resale; includes cash outflows to pay for construction of self-constructed assets."
       }
      }
     },
     "auth_ref": [
      "r101"
     ]
    },
    "tgen_PaymentsToNoncontrollingInterestsInvestingActivities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "PaymentsToNoncontrollingInterestsInvestingActivities",
     "crdr": "credit",
     "calculation": {
      "http://www.tecogen.com/role/ConsolidatedStatementsofCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities",
       "weight": -1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Distributions to noncontrolling interest",
        "label": "Payments to Noncontrolling Interests, Investing Activities",
        "documentation": "Payments to Noncontrolling Interests, Investing Activities"
       }
      }
     },
     "auth_ref": []
    },
    "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": {
        "terseLabel": "Peer Group Issuers, Footnote",
        "label": "Peer Group Issuers, Footnote [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r891"
     ]
    },
    "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": {
        "terseLabel": "Peer Group Total Shareholder Return Amount",
        "label": "Peer Group Total Shareholder Return Amount"
       }
      }
     },
     "auth_ref": [
      "r891"
     ]
    },
    "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": {
        "terseLabel": "PEO Actually Paid Compensation Amount",
        "label": "PEO Actually Paid Compensation Amount"
       }
      }
     },
     "auth_ref": [
      "r883"
     ]
    },
    "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": {
        "terseLabel": "PEO",
        "label": "PEO [Member]"
       }
      }
     },
     "auth_ref": [
      "r900"
     ]
    },
    "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": {
        "terseLabel": "PEO Name",
        "label": "PEO Name"
       }
      }
     },
     "auth_ref": [
      "r893"
     ]
    },
    "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": {
        "terseLabel": "PEO Total Compensation Amount",
        "label": "PEO Total Compensation Amount"
       }
      }
     },
     "auth_ref": [
      "r882"
     ]
    },
    "tgen_PercentageOfOwnedJointVenture": {
     "xbrltype": "percentItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "PercentageOfOwnedJointVenture",
     "presentation": [
      "http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Joint venture, percent owned",
        "label": "Percentage Of Owned Joint Venture",
        "documentation": "Percentage Of Owned Joint Venture."
       }
      }
     },
     "auth_ref": []
    },
    "tgen_PeriodOfSeveranceBenefitsForKeyManagementEmployeesUnderThePlan": {
     "xbrltype": "durationItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "PeriodOfSeveranceBenefitsForKeyManagementEmployeesUnderThePlan",
     "presentation": [
      "http://www.tecogen.com/role/CommitmentsandcontingenciesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Period of severance benefits for key management employees under the plan",
        "label": "Period of Severance Benefits for Key Management Employees under the Plan",
        "documentation": "Period of Severance Benefits for Key Management Employees under the Plan"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_PlanNameAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PlanNameAxis",
     "presentation": [
      "http://www.tecogen.com/role/StockholdersequityStockBasedCompensationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Plan Name [Axis]",
        "label": "Plan Name [Axis]",
        "documentation": "Information by plan name for share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r1036",
      "r1037",
      "r1038",
      "r1039",
      "r1040",
      "r1041",
      "r1042",
      "r1043",
      "r1044",
      "r1045",
      "r1046",
      "r1047",
      "r1048",
      "r1049",
      "r1050",
      "r1051",
      "r1052",
      "r1053",
      "r1054",
      "r1055",
      "r1056",
      "r1057",
      "r1058",
      "r1059",
      "r1060",
      "r1061"
     ]
    },
    "us-gaap_PlanNameDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PlanNameDomain",
     "presentation": [
      "http://www.tecogen.com/role/StockholdersequityStockBasedCompensationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Plan Name [Domain]",
        "label": "Plan Name [Domain]",
        "documentation": "Plan name for share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r1036",
      "r1037",
      "r1038",
      "r1039",
      "r1040",
      "r1041",
      "r1042",
      "r1043",
      "r1044",
      "r1045",
      "r1046",
      "r1047",
      "r1048",
      "r1049",
      "r1050",
      "r1051",
      "r1052",
      "r1053",
      "r1054",
      "r1055",
      "r1056",
      "r1057",
      "r1058",
      "r1059",
      "r1060",
      "r1061"
     ]
    },
    "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": {
        "terseLabel": "Pension Adjustments Prior Service Cost",
        "label": "Pension Adjustments Prior Service Cost [Member]"
       }
      }
     },
     "auth_ref": [
      "r884"
     ]
    },
    "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": {
        "terseLabel": "Pension Adjustments Service Cost",
        "label": "Pension Adjustments Service Cost [Member]"
       }
      }
     },
     "auth_ref": [
      "r940"
     ]
    },
    "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": {
        "terseLabel": "Pension Benefits Adjustments, Footnote",
        "label": "Pension Benefits Adjustments, Footnote [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r883"
     ]
    },
    "us-gaap_PortionAtFairValueFairValueDisclosureMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PortionAtFairValueFairValueDisclosureMember",
     "presentation": [
      "http://www.tecogen.com/role/FairValueMeasurementsScheduleofAssetReportedinConsolidatedBalanceSheetMeasuredatFairValueonRecurringBasisDetails",
      "http://www.tecogen.com/role/FairValueMeasuresandDisclosuresScheduleofChangesinLevel2AssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Portion at Fair Value Measurement",
        "label": "Portion at Fair Value Measurement [Member]",
        "documentation": "Measured at fair value for financial reporting purposes."
       }
      }
     },
     "auth_ref": [
      "r549"
     ]
    },
    "us-gaap_PreferredStockSharesAuthorized": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PreferredStockSharesAuthorized",
     "presentation": [
      "http://www.tecogen.com/role/StockholdersequityCommonStockandReceivablefromShareholderDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Preferred stock, shares authorized",
        "label": "Preferred Stock, Shares Authorized",
        "documentation": "The maximum number of nonredeemable preferred shares (or preferred stock redeemable solely at the option of the issuer) permitted to be issued by an entity's charter and bylaws."
       }
      }
     },
     "auth_ref": [
      "r82",
      "r686"
     ]
    },
    "us-gaap_PreferredStockSharesIssued": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PreferredStockSharesIssued",
     "presentation": [
      "http://www.tecogen.com/role/StockholdersequityCommonStockandReceivablefromShareholderDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Preferred stock, issued (in shares)",
        "label": "Preferred Stock, Shares Issued",
        "documentation": "Number of shares issued for nonredeemable preferred shares and preferred shares redeemable solely at option of issuer. Includes, but is not limited to, preferred shares issued, repurchased, and held as treasury shares. Excludes preferred shares classified as debt."
       }
      }
     },
     "auth_ref": [
      "r82",
      "r399"
     ]
    },
    "us-gaap_PreferredStockSharesOutstanding": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PreferredStockSharesOutstanding",
     "presentation": [
      "http://www.tecogen.com/role/StockholdersequityCommonStockandReceivablefromShareholderDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Preferred stock, outstanding (in shares)",
        "label": "Preferred Stock, Shares Outstanding",
        "documentation": "Aggregate share number for all nonredeemable preferred stock (or preferred stock redeemable solely at the option of the issuer) held by stockholders. Does not include preferred shares that have been repurchased."
       }
      }
     },
     "auth_ref": [
      "r82",
      "r686",
      "r704",
      "r1136",
      "r1137"
     ]
    },
    "us-gaap_PrepaidExpenseAndOtherAssetsCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PrepaidExpenseAndOtherAssetsCurrent",
     "crdr": "debit",
     "calculation": {
      "http://www.tecogen.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Prepaid and other current assets",
        "label": "Prepaid Expense and Other Assets, Current",
        "documentation": "Amount of asset related to consideration paid in advance for costs that provide economic benefits in future periods, and amount of other assets that are expected to be realized or consumed within one year or the normal operating cycle, if longer."
       }
      }
     },
     "auth_ref": [
      "r958"
     ]
    },
    "tgen_PrinciplesOfConsolidationAndBasisOfPresentationPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "PrinciplesOfConsolidationAndBasisOfPresentationPolicyTextBlock",
     "presentation": [
      "http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Principles of Consolidation and Basis of Presentation",
        "label": "Principles Of Consolidation and Basis Of Presentation [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for principles of consolidation and basis of presentation."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_PriorPeriodReclassificationAdjustmentDescription": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PriorPeriodReclassificationAdjustmentDescription",
     "presentation": [
      "http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Reclassification of Prior Year Presentation",
        "label": "Reclassification, Comparability Adjustment [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for reclassification affecting comparability of financial statement. Excludes amendment to accounting standards, other change in accounting principle, and correction of error."
       }
      }
     },
     "auth_ref": [
      "r955"
     ]
    },
    "tgen_ProceedsFromEmployeeRetentionCredit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "ProceedsFromEmployeeRetentionCredit",
     "crdr": "debit",
     "presentation": [
      "http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "ERC claim settlement",
        "label": "Proceeds From Employee Retention Credit",
        "documentation": "Proceeds From Employee Retention Credit"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ProceedsFromInterestReceived": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ProceedsFromInterestReceived",
     "crdr": "debit",
     "presentation": [
      "http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accrued interest received",
        "label": "Proceeds from Interest Received",
        "documentation": "Interest received on loans and other debt instruments during the current period."
       }
      }
     },
     "auth_ref": [
      "r961"
     ]
    },
    "us-gaap_ProceedsFromNotesPayable": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ProceedsFromNotesPayable",
     "crdr": "debit",
     "calculation": {
      "http://www.tecogen.com/role/ConsolidatedStatementsofCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Proceeds from related party note",
        "label": "Proceeds from Notes Payable",
        "documentation": "The cash inflow from a borrowing supported by a written promise to pay an obligation."
       }
      }
     },
     "auth_ref": [
      "r20"
     ]
    },
    "us-gaap_ProceedsFromSaleOfProductiveAssets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ProceedsFromSaleOfProductiveAssets",
     "crdr": "debit",
     "presentation": [
      "http://www.tecogen.com/role/SaleofADGAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Consideration received",
        "label": "Proceeds from Sale of Productive Assets",
        "documentation": "The cash inflow from the sale of property, plant and equipment (capital expenditures), software, and other intangible assets."
       }
      }
     },
     "auth_ref": [
      "r100"
     ]
    },
    "us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ProceedsFromSaleOfPropertyPlantAndEquipment",
     "crdr": "debit",
     "calculation": {
      "http://www.tecogen.com/role/ConsolidatedStatementsofCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedStatementsofCashFlows",
      "http://www.tecogen.com/role/PropertyplantandequipmentNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Proceeds on sale of property and equipment",
        "label": "Proceeds from Sale of Property, Plant, and Equipment",
        "documentation": "The cash inflow from the sale of long-lived, physical assets that are used in the normal conduct of business to produce goods and services and not intended for resale."
       }
      }
     },
     "auth_ref": [
      "r100"
     ]
    },
    "us-gaap_ProceedsFromStockOptionsExercised": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ProceedsFromStockOptionsExercised",
     "crdr": "debit",
     "calculation": {
      "http://www.tecogen.com/role/ConsolidatedStatementsofCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Proceeds from exercise of stock options",
        "label": "Proceeds from Stock Options Exercised",
        "documentation": "Amount of cash inflow from exercise of option under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r4",
      "r13"
     ]
    },
    "tgen_ProductCertificationMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "ProductCertificationMember",
     "presentation": [
      "http://www.tecogen.com/role/IntangibleassetsandliabilitiesotherthangoodwillNarrativeDetails",
      "http://www.tecogen.com/role/IntangibleassetsotherthangoodwillScheduleofIntangibleAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Product Certifications",
        "label": "Product Certification [Member]",
        "documentation": "Product Certification [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ProductMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ProductMember",
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedStatementsofOperations",
      "http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesRevenueDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Products",
        "label": "Product [Member]",
        "documentation": "Article or substance produced by nature, labor or machinery."
       }
      }
     },
     "auth_ref": [
      "r780"
     ]
    },
    "srt_ProductOrServiceAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/srt/2024",
     "localname": "ProductOrServiceAxis",
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedStatementsofOperations",
      "http://www.tecogen.com/role/SaleofADGAssetsDetails",
      "http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesRevenueDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Product and Service [Axis]",
        "label": "Product and Service [Axis]"
       }
      }
     },
     "auth_ref": [
      "r282",
      "r605",
      "r644",
      "r645",
      "r646",
      "r647",
      "r648",
      "r649",
      "r650",
      "r744",
      "r780",
      "r812",
      "r814",
      "r815",
      "r818",
      "r819",
      "r1020",
      "r1021",
      "r1034",
      "r1103",
      "r1105",
      "r1106",
      "r1107",
      "r1108",
      "r1109",
      "r1110",
      "r1111",
      "r1112",
      "r1113",
      "r1114",
      "r1115",
      "r1116",
      "r1117",
      "r1118",
      "r1119",
      "r1120",
      "r1121",
      "r1122",
      "r1123",
      "r1124",
      "r1125",
      "r1126",
      "r1127",
      "r1128",
      "r1129",
      "r1130",
      "r1131",
      "r1132"
     ]
    },
    "us-gaap_ProductWarrantyDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ProductWarrantyDisclosureTextBlock",
     "presentation": [
      "http://www.tecogen.com/role/Productwarranty"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Product warranty",
        "label": "Product Warranty Disclosure [Text Block]",
        "documentation": "The entire disclosure for standard and extended product warranties and other product guarantee contracts, including a tabular reconciliation of the changes in the guarantor's aggregate product warranty liability for the reporting period."
       }
      }
     },
     "auth_ref": [
      "r353",
      "r354",
      "r355",
      "r356",
      "r357",
      "r358"
     ]
    },
    "tgen_ProductWarrantyPeriod": {
     "xbrltype": "durationItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "ProductWarrantyPeriod",
     "presentation": [
      "http://www.tecogen.com/role/ProductwarrantyScheduleofProductWarrantyReserveDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Product warranty period",
        "label": "Product Warranty Period",
        "documentation": "Product Warranty Period"
       }
      }
     },
     "auth_ref": []
    },
    "srt_ProductsAndServicesDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2024",
     "localname": "ProductsAndServicesDomain",
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedStatementsofOperations",
      "http://www.tecogen.com/role/SaleofADGAssetsDetails",
      "http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesRevenueDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Product and Service [Domain]",
        "label": "Product and Service [Domain]"
       }
      }
     },
     "auth_ref": [
      "r282",
      "r605",
      "r644",
      "r645",
      "r646",
      "r647",
      "r648",
      "r649",
      "r650",
      "r744",
      "r780",
      "r812",
      "r814",
      "r815",
      "r818",
      "r819",
      "r1020",
      "r1021",
      "r1034",
      "r1103",
      "r1105",
      "r1106",
      "r1107",
      "r1108",
      "r1109",
      "r1110",
      "r1111",
      "r1112",
      "r1113",
      "r1114",
      "r1115",
      "r1116",
      "r1117",
      "r1118",
      "r1119",
      "r1120",
      "r1121",
      "r1122",
      "r1123",
      "r1124",
      "r1125",
      "r1126",
      "r1127",
      "r1128",
      "r1129",
      "r1130",
      "r1131",
      "r1132"
     ]
    },
    "tgen_ProductsSegmentMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "ProductsSegmentMember",
     "presentation": [
      "http://www.tecogen.com/role/GoodwillScheduleofGoodwillDetails",
      "http://www.tecogen.com/role/SegmentsDetails",
      "http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesRevenueDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Products Segment",
        "label": "Products Segment [Member]",
        "documentation": "Products Segment"
       }
      }
     },
     "auth_ref": []
    },
    "tgen_ProductsandServicesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "ProductsandServicesMember",
     "presentation": [
      "http://www.tecogen.com/role/GoodwillScheduleofGoodwillDetails",
      "http://www.tecogen.com/role/SegmentsDetails",
      "http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesRevenueDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Product and Service",
        "terseLabel": "Products and Services",
        "label": "Products and Services [Member]",
        "documentation": "Products and Services [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ProfitLoss": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ProfitLoss",
     "crdr": "credit",
     "calculation": {
      "http://www.tecogen.com/role/ConsolidatedStatementsofOperations": {
       "parentTag": "us-gaap_NetIncomeLoss",
       "weight": 1.0,
       "order": 2.0
      },
      "http://www.tecogen.com/role/ConsolidatedStatementsofCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 11.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedStatementsofCashFlows",
      "http://www.tecogen.com/role/ConsolidatedStatementsofOperations",
      "http://www.tecogen.com/role/ConsolidatedStatementsofStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Net income (loss)",
        "terseLabel": "Net income (loss)",
        "verboseLabel": "Consolidated loss",
        "label": "Net Income (Loss), Including Portion Attributable to Noncontrolling Interest",
        "documentation": "The consolidated profit or loss for the period, net of income taxes, including the portion attributable to the noncontrolling interest."
       }
      }
     },
     "auth_ref": [
      "r172",
      "r190",
      "r191",
      "r199",
      "r206",
      "r216",
      "r223",
      "r227",
      "r228",
      "r289",
      "r362",
      "r363",
      "r365",
      "r366",
      "r367",
      "r368",
      "r369",
      "r371",
      "r372",
      "r502",
      "r509",
      "r510",
      "r513",
      "r514",
      "r526",
      "r551",
      "r612",
      "r627",
      "r673",
      "r706",
      "r724",
      "r725",
      "r798",
      "r799",
      "r829",
      "r959",
      "r1029"
     ]
    },
    "us-gaap_PropertyPlantAndEquipmentAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PropertyPlantAndEquipmentAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Property, Plant and Equipment [Abstract]",
        "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.tecogen.com/role/CommitmentsandcontingenciesDetails",
      "http://www.tecogen.com/role/LeasesNarrativeDetails",
      "http://www.tecogen.com/role/LeasesSupplementalBalanceSheetInformationDetails",
      "http://www.tecogen.com/role/PropertyplantandequipmentSummaryofPropertyandEquipmentDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Property, Plant and Equipment, Type [Axis]",
        "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": [
      "r7",
      "r580"
     ]
    },
    "us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PropertyPlantAndEquipmentDisclosureTextBlock",
     "presentation": [
      "http://www.tecogen.com/role/Propertyplantandequipment"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Property, plant and equipment",
        "label": "Property, Plant and Equipment Disclosure [Text Block]",
        "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": [
      "r110",
      "r159",
      "r164",
      "r165"
     ]
    },
    "us-gaap_PropertyPlantAndEquipmentGross": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PropertyPlantAndEquipmentGross",
     "crdr": "debit",
     "calculation": {
      "http://www.tecogen.com/role/PropertyplantandequipmentSummaryofPropertyandEquipmentDetails": {
       "parentTag": "us-gaap_PropertyPlantAndEquipmentNet",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/PropertyplantandequipmentSummaryofPropertyandEquipmentDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Property and equipment, gross",
        "label": "Property, Plant and Equipment, Gross",
        "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": [
      "r111",
      "r177",
      "r625"
     ]
    },
    "us-gaap_PropertyPlantAndEquipmentLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PropertyPlantAndEquipmentLineItems",
     "presentation": [
      "http://www.tecogen.com/role/PropertyplantandequipmentNarrativeDetails",
      "http://www.tecogen.com/role/PropertyplantandequipmentSummaryofPropertyandEquipmentDetails",
      "http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesPropertyPlantandEquipmentDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Property, Plant and Equipment [Line Items]",
        "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": [
      "r580"
     ]
    },
    "us-gaap_PropertyPlantAndEquipmentNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PropertyPlantAndEquipmentNet",
     "crdr": "debit",
     "calculation": {
      "http://www.tecogen.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_Assets",
       "weight": 1.0,
       "order": 2.0
      },
      "http://www.tecogen.com/role/PropertyplantandequipmentSummaryofPropertyandEquipmentDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedBalanceSheets",
      "http://www.tecogen.com/role/PropertyplantandequipmentSummaryofPropertyandEquipmentDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Property, plant and equipment, net",
        "totalLabel": "Net property, plant and equipment",
        "label": "Property, Plant and Equipment, Net",
        "documentation": "Amount after accumulated depreciation, depletion and amortization of physical assets used in the normal conduct of business to produce goods and services and not intended for resale. Examples include, but are not limited to, land, buildings, machinery and equipment, office equipment, and furniture and fixtures."
       }
      }
     },
     "auth_ref": [
      "r7",
      "r580",
      "r613",
      "r625",
      "r811"
     ]
    },
    "us-gaap_PropertyPlantAndEquipmentPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PropertyPlantAndEquipmentPolicyTextBlock",
     "presentation": [
      "http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Property, Plant and Equipment",
        "label": "Property, Plant and Equipment, Policy [Policy Text Block]",
        "documentation": "Disclosure of accounting policy 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": [
      "r7",
      "r159",
      "r164",
      "r623"
     ]
    },
    "us-gaap_PropertyPlantAndEquipmentTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PropertyPlantAndEquipmentTextBlock",
     "presentation": [
      "http://www.tecogen.com/role/PropertyplantandequipmentTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Summary of Property, Plant and Equipment",
        "label": "Property, Plant and Equipment [Table Text Block]",
        "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": [
      "r7"
     ]
    },
    "us-gaap_PropertyPlantAndEquipmentTypeDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PropertyPlantAndEquipmentTypeDomain",
     "presentation": [
      "http://www.tecogen.com/role/CommitmentsandcontingenciesDetails",
      "http://www.tecogen.com/role/LeasesNarrativeDetails",
      "http://www.tecogen.com/role/LeasesSupplementalBalanceSheetInformationDetails",
      "http://www.tecogen.com/role/PropertyplantandequipmentSummaryofPropertyandEquipmentDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Property, Plant and Equipment, Type [Domain]",
        "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": [
      "r111",
      "r580"
     ]
    },
    "us-gaap_PropertyPlantAndEquipmentUsefulLife": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PropertyPlantAndEquipmentUsefulLife",
     "presentation": [
      "http://www.tecogen.com/role/PropertyplantandequipmentSummaryofPropertyandEquipmentDetails",
      "http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesPropertyPlantandEquipmentDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Property, plant and equipment, estimated useful lives",
        "verboseLabel": "Useful life - years",
        "label": "Property, Plant and Equipment, Useful Life",
        "documentation": "Useful life of long lived, physical assets used in the normal conduct of business and not intended for resale, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days. Examples include, but not limited to, land, buildings, machinery and equipment, office equipment, furniture and fixtures, and computer equipment."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ProvisionForDoubtfulAccounts": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ProvisionForDoubtfulAccounts",
     "crdr": "debit",
     "calculation": {
      "http://www.tecogen.com/role/ConsolidatedStatementsofCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 8.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Provision for credit losses",
        "label": "Accounts Receivable, Credit Loss Expense (Reversal)",
        "documentation": "Amount of expense (reversal of expense) for expected credit loss on accounts receivable."
       }
      }
     },
     "auth_ref": [
      "r197",
      "r295"
     ]
    },
    "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": {
        "terseLabel": "Pay vs Performance Disclosure",
        "label": "Pay vs Performance Disclosure [Table]"
       }
      }
     },
     "auth_ref": [
      "r881"
     ]
    },
    "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": {
        "terseLabel": "Pay vs Performance Disclosure, Table",
        "label": "Pay vs Performance [Table Text Block]"
       }
      }
     },
     "auth_ref": [
      "r881"
     ]
    },
    "srt_RangeAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/srt/2024",
     "localname": "RangeAxis",
     "presentation": [
      "http://www.tecogen.com/role/AegisContractandRelatedAssetAcquisitionDetails",
      "http://www.tecogen.com/role/FairValueMeasurementsNarrativeDetails",
      "http://www.tecogen.com/role/IntangibleassetsandliabilitiesotherthangoodwillNarrativeDetails",
      "http://www.tecogen.com/role/LeasesNarrativeDetails",
      "http://www.tecogen.com/role/PropertyplantandequipmentSummaryofPropertyandEquipmentDetails",
      "http://www.tecogen.com/role/StockholdersequityStockBasedCompensationDetails",
      "http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesPropertyPlantandEquipmentDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Statistical Measurement [Axis]",
        "label": "Statistical Measurement [Axis]"
       }
      }
     },
     "auth_ref": [
      "r348",
      "r349",
      "r350",
      "r351",
      "r415",
      "r424",
      "r455",
      "r456",
      "r457",
      "r466",
      "r532",
      "r596",
      "r597",
      "r599",
      "r651",
      "r653",
      "r665",
      "r676",
      "r677",
      "r730",
      "r731",
      "r732",
      "r733",
      "r734",
      "r738",
      "r739",
      "r770",
      "r779",
      "r792",
      "r805",
      "r806",
      "r807",
      "r808",
      "r814",
      "r822",
      "r1015",
      "r1033",
      "r1078",
      "r1094",
      "r1095",
      "r1096",
      "r1097",
      "r1098"
     ]
    },
    "srt_RangeMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2024",
     "localname": "RangeMember",
     "presentation": [
      "http://www.tecogen.com/role/AegisContractandRelatedAssetAcquisitionDetails",
      "http://www.tecogen.com/role/FairValueMeasurementsNarrativeDetails",
      "http://www.tecogen.com/role/IntangibleassetsandliabilitiesotherthangoodwillNarrativeDetails",
      "http://www.tecogen.com/role/LeasesNarrativeDetails",
      "http://www.tecogen.com/role/PropertyplantandequipmentSummaryofPropertyandEquipmentDetails",
      "http://www.tecogen.com/role/StockholdersequityStockBasedCompensationDetails",
      "http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesPropertyPlantandEquipmentDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Statistical Measurement [Domain]",
        "label": "Statistical Measurement [Domain]"
       }
      }
     },
     "auth_ref": [
      "r348",
      "r349",
      "r350",
      "r351",
      "r415",
      "r424",
      "r455",
      "r456",
      "r457",
      "r466",
      "r532",
      "r596",
      "r597",
      "r599",
      "r651",
      "r653",
      "r665",
      "r676",
      "r677",
      "r730",
      "r731",
      "r732",
      "r733",
      "r734",
      "r738",
      "r739",
      "r770",
      "r779",
      "r792",
      "r805",
      "r806",
      "r807",
      "r808",
      "r814",
      "r822",
      "r1015",
      "r1033",
      "r1078",
      "r1094",
      "r1095",
      "r1096",
      "r1097",
      "r1098"
     ]
    },
    "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]"
       }
      }
     },
     "auth_ref": [
      "r848",
      "r859",
      "r869",
      "r902"
     ]
    },
    "us-gaap_RelatedPartyDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RelatedPartyDomain",
     "presentation": [
      "http://www.tecogen.com/role/NatureofbusinessandoperationsDetails",
      "http://www.tecogen.com/role/RelatedPartyNotesDetails",
      "http://www.tecogen.com/role/SubsequentEventsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Related Party [Domain]",
        "label": "Related and Nonrelated Parties [Domain]",
        "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": [
      "r286",
      "r422",
      "r585",
      "r586",
      "r616",
      "r622",
      "r679",
      "r680",
      "r681",
      "r682",
      "r683",
      "r703",
      "r705",
      "r729"
     ]
    },
    "us-gaap_RelatedPartyMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RelatedPartyMember",
     "presentation": [
      "http://www.tecogen.com/role/NatureofbusinessandoperationsDetails",
      "http://www.tecogen.com/role/RelatedPartyNotesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Related Party",
        "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": [
      "r208",
      "r209",
      "r585",
      "r586",
      "r587",
      "r588",
      "r616",
      "r622",
      "r679",
      "r680",
      "r681",
      "r682",
      "r683",
      "r703",
      "r705",
      "r729"
     ]
    },
    "us-gaap_RelatedPartyTransactionAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RelatedPartyTransactionAxis",
     "presentation": [
      "http://www.tecogen.com/role/RelatedPartyNotesDetails",
      "http://www.tecogen.com/role/SubsequentEventsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Related Party Transaction [Axis]",
        "label": "Related Party Transaction [Axis]",
        "documentation": "Information by type of related party transaction."
       }
      }
     },
     "auth_ref": [
      "r585",
      "r586",
      "r1090"
     ]
    },
    "us-gaap_RelatedPartyTransactionDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RelatedPartyTransactionDomain",
     "presentation": [
      "http://www.tecogen.com/role/RelatedPartyNotesDetails",
      "http://www.tecogen.com/role/SubsequentEventsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Related Party Transaction [Domain]",
        "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.tecogen.com/role/RelatedPartyNotesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Related Party Transaction [Line Items]",
        "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": [
      "r286",
      "r709",
      "r710",
      "r711"
     ]
    },
    "tgen_RelatedPartyTransactionPeriod": {
     "xbrltype": "durationItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "RelatedPartyTransactionPeriod",
     "presentation": [
      "http://www.tecogen.com/role/RelatedPartyNotesDetails",
      "http://www.tecogen.com/role/SubsequentEventsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Related party transaction, period",
        "label": "Related Party Transaction, Period",
        "documentation": "Related Party Transaction, Period"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_RelatedPartyTransactionRate": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RelatedPartyTransactionRate",
     "presentation": [
      "http://www.tecogen.com/role/RelatedPartyNotesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Related party transaction, rate",
        "label": "Related Party Transaction, Rate",
        "documentation": "Identify the stated interest rate per the agreement, for example, leasing and debt arrangements between related parties."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_RelatedPartyTransactionsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RelatedPartyTransactionsAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Related Party Transactions [Abstract]",
        "label": "Related Party Transactions [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_RelatedPartyTransactionsByRelatedPartyAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RelatedPartyTransactionsByRelatedPartyAxis",
     "presentation": [
      "http://www.tecogen.com/role/NatureofbusinessandoperationsDetails",
      "http://www.tecogen.com/role/RelatedPartyNotesDetails",
      "http://www.tecogen.com/role/SubsequentEventsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Related Party [Axis]",
        "label": "Related and Nonrelated Parties [Axis]",
        "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": [
      "r286",
      "r422",
      "r585",
      "r586",
      "r616",
      "r622",
      "r679",
      "r680",
      "r681",
      "r682",
      "r683",
      "r703",
      "r705",
      "r729",
      "r1090"
     ]
    },
    "srt_RepurchaseAgreementCounterpartyNameDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2024",
     "localname": "RepurchaseAgreementCounterpartyNameDomain",
     "presentation": [
      "http://www.tecogen.com/role/NatureofbusinessandoperationsDetails",
      "http://www.tecogen.com/role/RelatedPartyNotesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Counterparty Name [Domain]",
        "label": "Counterparty Name [Domain]"
       }
      }
     },
     "auth_ref": [
      "r210",
      "r211",
      "r377",
      "r400",
      "r588",
      "r598",
      "r614",
      "r752",
      "r753"
     ]
    },
    "us-gaap_ResearchAndDevelopmentExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ResearchAndDevelopmentExpense",
     "crdr": "debit",
     "calculation": {
      "http://www.tecogen.com/role/ConsolidatedStatementsofOperations": {
       "parentTag": "us-gaap_OperatingExpenses",
       "weight": 1.0,
       "order": 6.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedStatementsofOperations"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Research and development",
        "label": "Research and Development Expense",
        "documentation": "Amount of expense for research and development. Includes, but is not limited to, cost for computer software product to be sold, leased, or otherwise marketed and writeoff of research and development assets acquired in transaction other than business combination or joint venture formation or both. Excludes write-down of intangible asset acquired in business combination or from joint venture formation or both, used in research and development activity."
       }
      }
     },
     "auth_ref": [
      "r469",
      "r741",
      "r764",
      "r1099"
     ]
    },
    "tgen_ResearchAndDevelopmentExpenseGross": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "ResearchAndDevelopmentExpenseGross",
     "crdr": "debit",
     "presentation": [
      "http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Research and development",
        "label": "Research And Development Expense, Gross",
        "documentation": "Research And Development Expense, Gross"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ResearchAndDevelopmentExpensePolicy": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ResearchAndDevelopmentExpensePolicy",
     "presentation": [
      "http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Research and Development Costs",
        "label": "Research and Development Expense, Policy [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for costs it has incurred (1) in a planned search or critical investigation aimed at discovery of new knowledge with the hope that such knowledge will be useful in developing a new product or service, a new process or technique, or in bringing about a significant improvement to an existing product or process; or (2) to translate research findings or other knowledge into a plan or design for a new product or process or for a significant improvement to an existing product or process."
       }
      }
     },
     "auth_ref": [
      "r468"
     ]
    },
    "srt_RestatementAdjustmentMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2024",
     "localname": "RestatementAdjustmentMember",
     "presentation": [
      "http://www.tecogen.com/role/PropertyplantandequipmentNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Revision of Prior Period, Adjustment",
        "label": "Revision of Prior Period, Adjustment [Member]"
       }
      }
     },
     "auth_ref": [
      "r213",
      "r214",
      "r215",
      "r225",
      "r226",
      "r242",
      "r524",
      "r525",
      "r562",
      "r945",
      "r946",
      "r947",
      "r948",
      "r952",
      "r953",
      "r954",
      "r980"
     ]
    },
    "srt_RestatementAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/srt/2024",
     "localname": "RestatementAxis",
     "presentation": [
      "http://www.tecogen.com/role/PropertyplantandequipmentNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Revision of Prior Period [Axis]",
        "label": "Revision of Prior Period [Axis]"
       }
      }
     },
     "auth_ref": [
      "r170",
      "r213",
      "r214",
      "r215",
      "r216",
      "r217",
      "r218",
      "r219",
      "r220",
      "r221",
      "r224",
      "r225",
      "r226",
      "r227",
      "r228",
      "r229",
      "r242",
      "r291",
      "r292",
      "r500",
      "r501",
      "r502",
      "r503",
      "r508",
      "r509",
      "r523",
      "r524",
      "r525",
      "r526",
      "r560",
      "r562",
      "r583",
      "r584",
      "r655",
      "r656",
      "r657",
      "r658",
      "r659",
      "r660",
      "r661",
      "r662",
      "r663",
      "r664",
      "r667",
      "r980"
     ]
    },
    "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": {
        "terseLabel": "Restatement Determination Date:",
        "label": "Restatement Determination Date [Axis]"
       }
      }
     },
     "auth_ref": [
      "r849",
      "r860",
      "r870",
      "r903"
     ]
    },
    "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": {
        "terseLabel": "Restatement Determination Date",
        "label": "Restatement Determination Date"
       }
      }
     },
     "auth_ref": [
      "r850",
      "r861",
      "r871",
      "r904"
     ]
    },
    "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": {
        "terseLabel": "Restatement does not require Recovery",
        "label": "Restatement Does Not Require Recovery [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r857",
      "r868",
      "r878",
      "r911"
     ]
    },
    "srt_RestatementDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2024",
     "localname": "RestatementDomain",
     "presentation": [
      "http://www.tecogen.com/role/PropertyplantandequipmentNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Revision of Prior Period [Domain]",
        "label": "Revision of Prior Period [Domain]"
       }
      }
     },
     "auth_ref": [
      "r170",
      "r213",
      "r214",
      "r215",
      "r216",
      "r217",
      "r218",
      "r219",
      "r220",
      "r221",
      "r224",
      "r225",
      "r226",
      "r227",
      "r228",
      "r229",
      "r242",
      "r291",
      "r292",
      "r500",
      "r501",
      "r502",
      "r503",
      "r508",
      "r509",
      "r523",
      "r524",
      "r525",
      "r526",
      "r560",
      "r562",
      "r583",
      "r584",
      "r655",
      "r656",
      "r657",
      "r658",
      "r659",
      "r660",
      "r661",
      "r662",
      "r663",
      "r664",
      "r667",
      "r980"
     ]
    },
    "us-gaap_RetainedEarningsAccumulatedDeficit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RetainedEarningsAccumulatedDeficit",
     "crdr": "credit",
     "calculation": {
      "http://www.tecogen.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_StockholdersEquity",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedBalanceSheets",
      "http://www.tecogen.com/role/NatureofbusinessandoperationsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accumulated deficit",
        "label": "Retained Earnings (Accumulated Deficit)",
        "documentation": "Amount of accumulated undistributed earnings (deficit)."
       }
      }
     },
     "auth_ref": [
      "r85",
      "r119",
      "r619",
      "r659",
      "r664",
      "r670",
      "r687",
      "r811"
     ]
    },
    "us-gaap_RetainedEarningsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RetainedEarningsMember",
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedStatementsofStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accumulated Deficit",
        "label": "Retained Earnings [Member]",
        "documentation": "Accumulated undistributed earnings (deficit)."
       }
      }
     },
     "auth_ref": [
      "r169",
      "r213",
      "r214",
      "r215",
      "r217",
      "r223",
      "r226",
      "r228",
      "r290",
      "r293",
      "r335",
      "r491",
      "r492",
      "r499",
      "r500",
      "r501",
      "r503",
      "r508",
      "r509",
      "r517",
      "r519",
      "r520",
      "r522",
      "r524",
      "r561",
      "r564",
      "r655",
      "r657",
      "r674",
      "r1136"
     ]
    },
    "us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RevenueFromContractWithCustomerExcludingAssessedTax",
     "crdr": "credit",
     "calculation": {
      "http://www.tecogen.com/role/ConsolidatedStatementsofOperations": {
       "parentTag": "us-gaap_GrossProfit",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedStatementsofOperations",
      "http://www.tecogen.com/role/SegmentsDetails",
      "http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesRevenueDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Total revenues",
        "verboseLabel": "Revenue",
        "label": "Revenue from Contract with Customer, Excluding Assessed Tax",
        "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": [
      "r145",
      "r146",
      "r243",
      "r250",
      "r251",
      "r272",
      "r278",
      "r282",
      "r284",
      "r285",
      "r412",
      "r413",
      "r605"
     ]
    },
    "us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RevenueFromContractWithCustomerIncludingAssessedTax",
     "crdr": "credit",
     "presentation": [
      "http://www.tecogen.com/role/SaleofADGAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Revenue",
        "label": "Revenue from Contract with Customer, Including Assessed Tax",
        "documentation": "Amount, including tax collected from customer, of revenue from satisfaction of performance obligation by transferring promised good or service to customer. Tax collected from customer is tax assessed by governmental authority that is both imposed on and concurrent with specific revenue-producing transaction, including, but not limited to, sales, use, value-added and excise."
       }
      }
     },
     "auth_ref": [
      "r145",
      "r146",
      "r243",
      "r250",
      "r251",
      "r272",
      "r278",
      "r282",
      "r284",
      "r285",
      "r412",
      "r413",
      "r605"
     ]
    },
    "tgen_RevenueFromContractWithCustomerPaymentPeriod": {
     "xbrltype": "durationItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "RevenueFromContractWithCustomerPaymentPeriod",
     "presentation": [
      "http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Payment period",
        "label": "Revenue From Contract With Customer, Payment Period",
        "documentation": "Revenue From Contract With Customer, Payment Period"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_RevenueFromContractWithCustomerPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RevenueFromContractWithCustomerPolicyTextBlock",
     "presentation": [
      "http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Revenue Recognition",
        "label": "Revenue from Contract with Customer [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for revenue from contract with customer."
       }
      }
     },
     "auth_ref": [
      "r168",
      "r404",
      "r405",
      "r406",
      "r407",
      "r408",
      "r409",
      "r410",
      "r411",
      "r743"
     ]
    },
    "us-gaap_RevenueRemainingPerformanceObligation": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RevenueRemainingPerformanceObligation",
     "crdr": "credit",
     "presentation": [
      "http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Remaining performance obligations",
        "label": "Revenue, Remaining Performance Obligation, Amount",
        "documentation": "Amount of transaction price allocated to performance obligation that has not been recognized as revenue."
       }
      }
     },
     "auth_ref": [
      "r162"
     ]
    },
    "us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1",
     "presentation": [
      "http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Revenue, remaining performance obligation, expected timing of satisfaction, period",
        "label": "Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Period",
        "documentation": "Period in which remaining performance obligation is expected to be recognized as revenue, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days."
       }
      }
     },
     "auth_ref": [
      "r163"
     ]
    },
    "us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis",
     "presentation": [
      "http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]",
        "label": "Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]",
        "documentation": "Start date of time band for expected timing of satisfaction of remaining performance obligation, in YYYY-MM-DD format."
       }
      }
     },
     "auth_ref": [
      "r163"
     ]
    },
    "us-gaap_RevenueRemainingPerformanceObligationPercentage": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RevenueRemainingPerformanceObligationPercentage",
     "presentation": [
      "http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Revenue, remaining performance obligation, percentage",
        "label": "Revenue, Remaining Performance Obligation, Percentage",
        "documentation": "Percentage of remaining performance obligation to total remaining performance obligation not recognized as revenue."
       }
      }
     },
     "auth_ref": [
      "r949"
     ]
    },
    "us-gaap_RightOfUseAssetObtainedInExchangeForFinanceLeaseLiability": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RightOfUseAssetObtainedInExchangeForFinanceLeaseLiability",
     "crdr": "debit",
     "presentation": [
      "http://www.tecogen.com/role/LeasesSupplementalInformationforFinanceLeasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Right-of-use assets obtained in exchange for finance lease liabilities",
        "label": "Right-of-Use Asset Obtained in Exchange for Finance Lease Liability",
        "documentation": "Amount of increase in right-of-use asset obtained in exchange for finance lease liability."
       }
      }
     },
     "auth_ref": [
      "r576",
      "r810"
     ]
    },
    "us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability",
     "crdr": "debit",
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedStatementsofCashFlows",
      "http://www.tecogen.com/role/LeasesSupplementalInformationforOperatingLeasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Right-of-use assets obtained in exchange for operating lease liabilities",
        "label": "Right-of-Use Asset Obtained in Exchange for Operating Lease Liability",
        "documentation": "Amount of increase in right-of-use asset obtained in exchange for operating lease liability."
       }
      }
     },
     "auth_ref": [
      "r576",
      "r810"
     ]
    },
    "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": {
        "terseLabel": "Rule 10b5-1 Arrangement Adopted",
        "label": "Rule 10b5-1 Arrangement Adopted [Flag]"
       }
      }
     },
     "auth_ref": [
      "r920"
     ]
    },
    "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": {
        "terseLabel": "Rule 10b5-1 Arrangement Terminated",
        "label": "Rule 10b5-1 Arrangement Terminated [Flag]"
       }
      }
     },
     "auth_ref": [
      "r920"
     ]
    },
    "tgen_SalesAndMarketingAgreementTerm": {
     "xbrltype": "durationItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "SalesAndMarketingAgreementTerm",
     "presentation": [
      "http://www.tecogen.com/role/SubsequentEventsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Sales and marketing agreement, term",
        "label": "Sales And Marketing Agreement, Term",
        "documentation": "Sales And Marketing Agreement, Term"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SalesRevenueNetMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SalesRevenueNetMember",
     "presentation": [
      "http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesConcentrationofCreditRiskDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Revenues",
        "label": "Revenue Benchmark [Member]",
        "documentation": "Revenue from sale of product and rendering of service and other sources of income, when it serves as benchmark in concentration of risk calculation."
       }
      }
     },
     "auth_ref": [
      "r285",
      "r950"
     ]
    },
    "srt_ScenarioForecastMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2024",
     "localname": "ScenarioForecastMember",
     "presentation": [
      "http://www.tecogen.com/role/LeasesNarrativeDetails",
      "http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Forecast",
        "label": "Forecast [Member]"
       }
      }
     },
     "auth_ref": [
      "r425",
      "r970"
     ]
    },
    "srt_ScenarioUnspecifiedDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2024",
     "localname": "ScenarioUnspecifiedDomain",
     "presentation": [
      "http://www.tecogen.com/role/LeasesNarrativeDetails",
      "http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Scenario [Domain]",
        "label": "Scenario [Domain]"
       }
      }
     },
     "auth_ref": [
      "r229",
      "r425",
      "r943",
      "r970"
     ]
    },
    "us-gaap_ScheduleOfAcquiredFiniteLivedIntangibleAssetByMajorClassTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfAcquiredFiniteLivedIntangibleAssetByMajorClassTable",
     "presentation": [
      "http://www.tecogen.com/role/IntangibleassetsandliabilitiesotherthangoodwillNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Acquired Finite-Lived Intangible Asset by Major Class [Table]",
        "label": "Schedule of Acquired Finite-Lived Intangible Asset by Major Class [Table]",
        "documentation": "Disclosure of information about acquired finite-lived intangible asset by major class."
       }
      }
     },
     "auth_ref": [
      "r321",
      "r322",
      "r323",
      "r325",
      "r741"
     ]
    },
    "us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable",
     "presentation": [
      "http://www.tecogen.com/role/LosspercommonshareScheduleofLossPerCommonShareBasicandDilutedDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Antidilutive Security, Excluded EPS Calculation [Table]",
        "label": "Antidilutive Security, Excluded EPS Calculation [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": [
      "r24"
     ]
    },
    "us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfBusinessAcquisitionsByAcquisitionTable",
     "presentation": [
      "http://www.tecogen.com/role/AcquisitionofAmericanDGEnergyIncDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Business Acquisitions, by Acquisition [Table]",
        "label": "Schedule of Business Acquisitions, by Acquisition [Table]",
        "documentation": "Disclosure of information about business combination. Includes, but is not limited to, recognized asset and liability."
       }
      }
     },
     "auth_ref": [
      "r43",
      "r44",
      "r506"
     ]
    },
    "us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock",
     "presentation": [
      "http://www.tecogen.com/role/IncometaxesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Deferred Tax Assets",
        "label": "Schedule of Deferred Tax Assets and Liabilities [Table Text Block]",
        "documentation": "Tabular disclosure of the components of net deferred tax asset or liability recognized in an entity's statement of financial position, including the following: the total of all deferred tax liabilities, the total of all deferred tax assets, the total valuation allowance recognized for deferred tax assets."
       }
      }
     },
     "auth_ref": [
      "r1065"
     ]
    },
    "us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock",
     "presentation": [
      "http://www.tecogen.com/role/LosspercommonshareTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Income (Loss) Per Common Share, Basic and Diluted",
        "label": "Schedule of Earnings Per Share, Basic and Diluted [Table Text Block]",
        "documentation": "Tabular disclosure of an entity's basic and diluted earnings per share calculations, including a reconciliation of numerators and denominators of the basic and diluted per-share computations for income from continuing operations."
       }
      }
     },
     "auth_ref": [
      "r972"
     ]
    },
    "us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock",
     "presentation": [
      "http://www.tecogen.com/role/IncometaxesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Reconciliation of Federal Statutory Income Tax Provision To Company's Actual Provision",
        "label": "Schedule of Effective Income Tax Rate Reconciliation [Table Text Block]",
        "documentation": "Tabular disclosure of the reconciliation using percentage or dollar amounts of the reported amount of income tax expense attributable to continuing operations for the year to the amount of income tax expense that would result from applying domestic federal statutory tax rates to pretax income from continuing operations."
       }
      }
     },
     "auth_ref": [
      "r476",
      "r796",
      "r1062"
     ]
    },
    "us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfFiniteLivedIntangibleAssetsTable",
     "presentation": [
      "http://www.tecogen.com/role/IntangibleassetsandliabilitiesotherthangoodwillScheduleofAggregateFutureAmortizationDetails",
      "http://www.tecogen.com/role/IntangibleassetsotherthangoodwillScheduleofIntangibleAssetsDetails",
      "http://www.tecogen.com/role/NatureofbusinessandoperationsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Intangible Asset, Finite-Lived [Table]",
        "label": "Intangible Asset, Finite-Lived [Table]",
        "documentation": "Disclosure of information about finite-lived intangible asset. Excludes indefinite-lived intangible asset."
       }
      }
     },
     "auth_ref": [
      "r319",
      "r326",
      "r329",
      "r330",
      "r333",
      "r606",
      "r741",
      "r772"
     ]
    },
    "us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock",
     "presentation": [
      "http://www.tecogen.com/role/IntangibleassetsandliabilitiesotherthangoodwillTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Finite-Lived Intangible Assets",
        "label": "Schedule of Finite-Lived Intangible Assets [Table Text Block]",
        "documentation": "Tabular disclosure of assets, excluding financial assets and goodwill, lacking physical substance with a finite life, by either major class or business segment."
       }
      }
     },
     "auth_ref": [
      "r772",
      "r1006"
     ]
    },
    "us-gaap_ScheduleOfGoodwillTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfGoodwillTable",
     "presentation": [
      "http://www.tecogen.com/role/GoodwillNarrativeDetails",
      "http://www.tecogen.com/role/GoodwillScheduleofGoodwillDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Goodwill [Table]",
        "label": "Goodwill [Table]",
        "documentation": "Disclosure of information about goodwill, including, but not limited to, change from acquisition, sale, impairment, and other reason."
       }
      }
     },
     "auth_ref": [
      "r306",
      "r307",
      "r308",
      "r309",
      "r310",
      "r311",
      "r312",
      "r313",
      "r314",
      "r315",
      "r317",
      "r771"
     ]
    },
    "us-gaap_ScheduleOfGoodwillTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfGoodwillTextBlock",
     "presentation": [
      "http://www.tecogen.com/role/GoodwillTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Goodwill",
        "label": "Schedule of Goodwill [Table Text Block]",
        "documentation": "Tabular disclosure of goodwill by reportable segment and in total which includes a rollforward schedule."
       }
      }
     },
     "auth_ref": [
      "r771",
      "r988",
      "r989",
      "r990",
      "r991",
      "r992",
      "r993",
      "r994",
      "r995",
      "r996",
      "r997",
      "r998"
     ]
    },
    "us-gaap_ScheduleOfInventoryCurrentTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfInventoryCurrentTableTextBlock",
     "presentation": [
      "http://www.tecogen.com/role/InventoryTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Summary of Inventory",
        "label": "Schedule of Inventory, Current [Table Text Block]",
        "documentation": "Tabular disclosure of the carrying amount as of the balance sheet date of merchandise, goods, commodities, or supplies held for future sale or to be used in manufacturing, servicing or production process."
       }
      }
     },
     "auth_ref": [
      "r18",
      "r89",
      "r90",
      "r91"
     ]
    },
    "us-gaap_ScheduleOfProductWarrantyLiabilityTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfProductWarrantyLiabilityTableTextBlock",
     "presentation": [
      "http://www.tecogen.com/role/ProductwarrantyTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Product Warranty Reserve",
        "label": "Schedule of Product Warranty Liability [Table Text Block]",
        "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": [
      "r359"
     ]
    },
    "us-gaap_ScheduleOfPropertyPlantAndEquipmentTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfPropertyPlantAndEquipmentTable",
     "presentation": [
      "http://www.tecogen.com/role/PropertyplantandequipmentNarrativeDetails",
      "http://www.tecogen.com/role/PropertyplantandequipmentSummaryofPropertyandEquipmentDetails",
      "http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesPropertyPlantandEquipmentDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Property, Plant and Equipment [Table]",
        "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": [
      "r7",
      "r580"
     ]
    },
    "us-gaap_ScheduleOfRelatedPartyTransactionsByRelatedPartyTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfRelatedPartyTransactionsByRelatedPartyTable",
     "presentation": [
      "http://www.tecogen.com/role/RelatedPartyNotesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Related Party Transaction [Table]",
        "label": "Related Party Transaction [Table]",
        "documentation": "Disclosure of information about related party transaction."
       }
      }
     },
     "auth_ref": [
      "r59",
      "r60",
      "r709",
      "r710",
      "r711"
     ]
    },
    "us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfSegmentReportingInformationBySegmentTable",
     "presentation": [
      "http://www.tecogen.com/role/SegmentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Segment Reporting Information, by Segment [Table]",
        "label": "Schedule of Segment Reporting Information, by Segment [Table]",
        "documentation": "Disclosure of information about profit (loss) and total assets by reportable segment."
       }
      }
     },
     "auth_ref": [
      "r33",
      "r34",
      "r35"
     ]
    },
    "us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfSegmentReportingInformationBySegmentTextBlock",
     "presentation": [
      "http://www.tecogen.com/role/SegmentsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Infomration by Reportable Segment",
        "label": "Schedule of Segment Reporting Information, by Segment [Table Text Block]",
        "documentation": "Tabular disclosure of the profit or loss and total assets for each reportable segment. An entity discloses certain information on each reportable segment if the amounts (a) are included in the measure of segment profit or loss reviewed by the chief operating decision maker or (b) are otherwise regularly provided to the chief operating decision maker, even if not included in that measure of segment profit or loss."
       }
      }
     },
     "auth_ref": [
      "r33",
      "r34",
      "r35"
     ]
    },
    "us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable",
     "presentation": [
      "http://www.tecogen.com/role/StockholdersequityStockBasedCompensationDetails",
      "http://www.tecogen.com/role/StockholdersequityStockOptionActivityDetails",
      "http://www.tecogen.com/role/StockholdersequityTables",
      "http://www.tecogen.com/role/StockholdersequityWeightedAverageAssumptionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Share-based Compensation Arrangements by Share-based Payment Award [Table]",
        "label": "Schedule of Share-Based Compensation Arrangements by Share-Based Payment Award [Table]",
        "documentation": "Disclosure of information about share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r427",
      "r429",
      "r430",
      "r431",
      "r432",
      "r434",
      "r435",
      "r436",
      "r437",
      "r438",
      "r439",
      "r440",
      "r441",
      "r442",
      "r443",
      "r444",
      "r445",
      "r446",
      "r447",
      "r448",
      "r449",
      "r450",
      "r451",
      "r454",
      "r455",
      "r456",
      "r457",
      "r458"
     ]
    },
    "us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock",
     "presentation": [
      "http://www.tecogen.com/role/StockholdersequityTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Stock Option Activity",
        "label": "Share-Based Payment Arrangement, Option, Activity [Table Text Block]",
        "documentation": "Tabular disclosure for stock option plans. Includes, but is not limited to, outstanding awards at beginning and end of year, grants, exercises, forfeitures, and weighted-average grant date fair value."
       }
      }
     },
     "auth_ref": [
      "r11",
      "r12",
      "r124"
     ]
    },
    "us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock",
     "presentation": [
      "http://www.tecogen.com/role/StockholdersequityTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Summary of Weighted Average Assumptions Used in Black-Scholes Option Pricing",
        "label": "Schedule of Share-Based Payment Award, Stock Options, Valuation Assumptions [Table Text Block]",
        "documentation": "Tabular disclosure of the significant assumptions used during the year to estimate the fair value of stock options, including, but not limited to: (a) expected term of share options and similar instruments, (b) expected volatility of the entity's shares, (c) expected dividends, (d) risk-free rate(s), and (e) discount for post-vesting restrictions."
       }
      }
     },
     "auth_ref": [
      "r126"
     ]
    },
    "us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock",
     "presentation": [
      "http://www.tecogen.com/role/IntangibleassetsandliabilitiesotherthangoodwillTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Estimated Future Amortization Expense",
        "label": "Schedule of Finite-Lived Intangible Assets, Future Amortization Expense [Table Text Block]",
        "documentation": "Tabular disclosure of the amount of amortization expense expected to be recorded in succeeding fiscal years for finite-lived intangible assets."
       }
      }
     },
     "auth_ref": [
      "r772",
      "r1008"
     ]
    },
    "dei_Security12gTitle": {
     "xbrltype": "securityTitleItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "Security12gTitle",
     "presentation": [
      "http://www.tecogen.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Title of 12(g) Security",
        "label": "Title of 12(g) Security",
        "documentation": "Title of a 12(g) registered security."
       }
      }
     },
     "auth_ref": [
      "r833"
     ]
    },
    "us-gaap_SegmentDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SegmentDomain",
     "presentation": [
      "http://www.tecogen.com/role/GoodwillNarrativeDetails",
      "http://www.tecogen.com/role/GoodwillScheduleofGoodwillDetails",
      "http://www.tecogen.com/role/SegmentsDetails",
      "http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesRevenueDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Segments [Domain]",
        "label": "Segments [Domain]",
        "documentation": "Components of an entity that engage in business activities from which they may earn revenue and incur expenses, including transactions with other components of the same entity."
       }
      }
     },
     "auth_ref": [
      "r145",
      "r146",
      "r147",
      "r148",
      "r243",
      "r246",
      "r249",
      "r250",
      "r251",
      "r252",
      "r253",
      "r254",
      "r255",
      "r256",
      "r257",
      "r258",
      "r259",
      "r260",
      "r262",
      "r263",
      "r264",
      "r272",
      "r273",
      "r274",
      "r275",
      "r276",
      "r278",
      "r279",
      "r280",
      "r285",
      "r306",
      "r307",
      "r308",
      "r309",
      "r310",
      "r311",
      "r312",
      "r313",
      "r314",
      "r333",
      "r345",
      "r346",
      "r633",
      "r634",
      "r635",
      "r636",
      "r637",
      "r638",
      "r639",
      "r640",
      "r641",
      "r642",
      "r643",
      "r761",
      "r764",
      "r765",
      "r771",
      "r816",
      "r1103",
      "r1105",
      "r1106",
      "r1107",
      "r1108",
      "r1109",
      "r1110",
      "r1111",
      "r1112",
      "r1113",
      "r1114",
      "r1115",
      "r1116",
      "r1117",
      "r1118",
      "r1119",
      "r1120",
      "r1121",
      "r1122",
      "r1123",
      "r1124",
      "r1125",
      "r1126",
      "r1127",
      "r1128",
      "r1129",
      "r1130",
      "r1131",
      "r1132"
     ]
    },
    "us-gaap_SegmentReportingAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SegmentReportingAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Segment Reporting [Abstract]",
        "label": "Segment Reporting [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SegmentReportingDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SegmentReportingDisclosureTextBlock",
     "presentation": [
      "http://www.tecogen.com/role/SegmentsNotes"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Segments",
        "label": "Segment Reporting Disclosure [Text Block]",
        "documentation": "The entire disclosure for reporting segments including data and tables. Reportable segments include those that meet any of the following quantitative thresholds a) it's reported revenue, including sales to external customers and intersegment sales or transfers is 10 percent or more of the combined revenue, internal and external, of all operating segments b) the absolute amount of its reported profit or loss is 10 percent or more of the greater, in absolute amount of 1) the combined reported profit of all operating segments that did not report a loss or 2) the combined reported loss of all operating segments that did report a loss c) its assets are 10 percent or more of the combined assets of all operating segments."
       }
      }
     },
     "auth_ref": [
      "r148",
      "r243",
      "r245",
      "r246",
      "r247",
      "r248",
      "r249",
      "r261",
      "r263",
      "r264",
      "r276",
      "r277",
      "r278",
      "r279",
      "r280",
      "r282",
      "r283",
      "r285",
      "r759",
      "r762",
      "r763",
      "r764",
      "r766",
      "r768",
      "r769"
     ]
    },
    "us-gaap_SegmentReportingInformationLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SegmentReportingInformationLineItems",
     "presentation": [
      "http://www.tecogen.com/role/SegmentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Segment Reporting Information [Line Items]",
        "label": "Segment Reporting Information [Line Items]",
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SegmentReportingPolicyPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SegmentReportingPolicyPolicyTextBlock",
     "presentation": [
      "http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Segment Information",
        "label": "Segment Reporting, Policy [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for segment reporting."
       }
      }
     },
     "auth_ref": [
      "r265",
      "r266",
      "r267",
      "r268",
      "r269",
      "r270",
      "r271",
      "r281",
      "r284",
      "r760",
      "r761",
      "r767"
     ]
    },
    "us-gaap_SellingExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SellingExpense",
     "crdr": "debit",
     "calculation": {
      "http://www.tecogen.com/role/ConsolidatedStatementsofOperations": {
       "parentTag": "us-gaap_OperatingExpenses",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedStatementsofOperations"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Selling",
        "label": "Selling Expense",
        "documentation": "Expenses recognized in the period that are directly related to the selling and distribution of products or services."
       }
      }
     },
     "auth_ref": [
      "r98"
     ]
    },
    "tgen_September2024PromissoryNoteMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "September2024PromissoryNoteMember",
     "presentation": [
      "http://www.tecogen.com/role/RelatedPartyNotesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "September 2024 Promissory Note",
        "label": "September 2024 Promissory Note [Member]",
        "documentation": "September 2024 Promissory Note"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ServiceMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ServiceMember",
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedStatementsofOperations"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Services",
        "label": "Service [Member]",
        "documentation": "Assistance, including, but not limited to, technology, license and maintenance, license and service, maintenance, oil and gas, and financial service."
       }
      }
     },
     "auth_ref": [
      "r780"
     ]
    },
    "tgen_ServicesAndOtherSegmentMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "ServicesAndOtherSegmentMember",
     "presentation": [
      "http://www.tecogen.com/role/SegmentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Services and Other Segment",
        "label": "Services and Other Segment [Member]",
        "documentation": "Services and Other Segment"
       }
      }
     },
     "auth_ref": []
    },
    "tgen_ServicesSegmentMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "ServicesSegmentMember",
     "presentation": [
      "http://www.tecogen.com/role/GoodwillNarrativeDetails",
      "http://www.tecogen.com/role/GoodwillScheduleofGoodwillDetails",
      "http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesRevenueDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Services Segment",
        "label": "Services Segment [Member]",
        "documentation": "Services Segment"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ShareBasedCompensation": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensation",
     "crdr": "debit",
     "calculation": {
      "http://www.tecogen.com/role/ConsolidatedStatementsofCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 6.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Stock-based compensation",
        "label": "Share-Based Payment Arrangement, Noncash Expense",
        "documentation": "Amount of noncash expense for share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r5"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1",
     "presentation": [
      "http://www.tecogen.com/role/StockholdersequityStockBasedCompensationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Award vesting period",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Award Vesting Period",
        "documentation": "Period over which grantee's right to exercise award under share-based payment arrangement is no longer contingent on satisfaction of service or performance condition, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days. Includes, but is not limited to, combination of market, performance or service condition."
       }
      }
     },
     "auth_ref": [
      "r793"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAdditionalDisclosuresAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAdditionalDisclosuresAbstract",
     "presentation": [
      "http://www.tecogen.com/role/StockholdersequityStockOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Additional Disclosures [Abstract]",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Additional Disclosures [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod",
     "presentation": [
      "http://www.tecogen.com/role/StockholdersequityStockBasedCompensationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Shares of common stock granted (in shares)",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Grants in Period",
        "documentation": "The number of grants made during the period on other than stock (or unit) option plans (for example, phantom stock or unit plan, stock or unit appreciation rights plan, performance target plan)."
       }
      }
     },
     "auth_ref": [
      "r445"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate",
     "presentation": [
      "http://www.tecogen.com/role/StockholdersequityWeightedAverageAssumptionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Share-Based Compensation Arrangement by Share-Based Payment Award, Fair Value Assumptions, Expected Dividend Rate",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Fair Value Assumptions, Expected Dividend Rate",
        "documentation": "The estimated dividend rate (a percentage of the share price) to be paid (expected dividends) to holders of the underlying shares over the option's term."
       }
      }
     },
     "auth_ref": [
      "r456"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate",
     "presentation": [
      "http://www.tecogen.com/role/StockholdersequityWeightedAverageAssumptionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Expected volatility",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Fair Value Assumptions, Expected Volatility Rate",
        "documentation": "The estimated measure of the percentage by which a share price is expected to fluctuate during a period. Volatility also may be defined as a probability-weighted measure of the dispersion of returns about the mean. The volatility of a share price is the standard deviation of the continuously compounded rates of return on the share over a specified period. That is the same as the standard deviation of the differences in the natural logarithms of the stock prices plus dividends, if any, over the period."
       }
      }
     },
     "auth_ref": [
      "r455"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate",
     "presentation": [
      "http://www.tecogen.com/role/StockholdersequityWeightedAverageAssumptionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Risk-free interest rate",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Fair Value Assumptions, Risk Free Interest Rate",
        "documentation": "The risk-free interest rate assumption that is used in valuing an option on its own shares."
       }
      }
     },
     "auth_ref": [
      "r457"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems",
     "presentation": [
      "http://www.tecogen.com/role/StockholdersequityStockBasedCompensationDetails",
      "http://www.tecogen.com/role/StockholdersequityStockOptionActivityDetails",
      "http://www.tecogen.com/role/StockholdersequityTables",
      "http://www.tecogen.com/role/StockholdersequityWeightedAverageAssumptionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Share-based Compensation Arrangement by Share-based Payment Award [Line Items]",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award [Line Items]",
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table."
       }
      }
     },
     "auth_ref": [
      "r427",
      "r429",
      "r430",
      "r431",
      "r432",
      "r434",
      "r435",
      "r436",
      "r437",
      "r438",
      "r439",
      "r440",
      "r441",
      "r442",
      "r443",
      "r444",
      "r445",
      "r446",
      "r447",
      "r448",
      "r449",
      "r450",
      "r451",
      "r454",
      "r455",
      "r456",
      "r457",
      "r458"
     ]
    },
    "tgen_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfOptionsExercisedInPeriod": {
     "xbrltype": "integerItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfOptionsExercisedInPeriod",
     "presentation": [
      "http://www.tecogen.com/role/StockholdersequityStockBasedCompensationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Number of options exercised in period",
        "label": "Share-Based Compensation Arrangement By Share-Based Payment Award, Number Of Options Exercised In Period",
        "documentation": "Share-Based Compensation Arrangement By Share-Based Payment Award, Number Of Options Exercised In Period"
       }
      }
     },
     "auth_ref": []
    },
    "tgen_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfPubliclyTradedCompaniesUsedInExpectedVolatilityRateCalculation": {
     "xbrltype": "integerItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfPubliclyTradedCompaniesUsedInExpectedVolatilityRateCalculation",
     "presentation": [
      "http://www.tecogen.com/role/StockholdersequityStockBasedCompensationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Number of publicly traded companies used in expected volatility rate calculation",
        "label": "Share Based Compensation Arrangement By Share Based Payment Award, Number Of Publicly Traded Companies Used In Expected Volatility Rate Calculation",
        "documentation": "Share Based Compensation Arrangement By Share Based Payment Award, Number Of Publicly Traded Companies Used In Expected Volatility Rate Calculation"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant",
     "presentation": [
      "http://www.tecogen.com/role/StockholdersequityStockBasedCompensationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Number of shares remaining available for future issuance",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Number of Shares Available for Grant",
        "documentation": "The difference between the maximum number of shares (or other type of equity) authorized for issuance under the plan (including the effects of amendments and adjustments), and the sum of: 1) the number of shares (or other type of equity) already issued upon exercise of options or other equity-based awards under the plan; and 2) shares (or other type of equity) reserved for issuance on granting of outstanding awards, net of cancellations and forfeitures, if applicable."
       }
      }
     },
     "auth_ref": [
      "r39"
     ]
    },
    "tgen_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsCancellationsAndForfeituresInPeriod": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsCancellationsAndForfeituresInPeriod",
     "presentation": [
      "http://www.tecogen.com/role/StockholdersequityStockOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Canceled and forfeited (shares)",
        "label": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Cancellations and Forfeitures in Period",
        "documentation": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Cancellations and Forfeitures in Period"
       }
      }
     },
     "auth_ref": []
    },
    "tgen_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsCancellationsAndForfeituresInPeriodWeightedAverageExercisePrice": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsCancellationsAndForfeituresInPeriodWeightedAverageExercisePrice",
     "presentation": [
      "http://www.tecogen.com/role/StockholdersequityStockOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Canceled and forfeited (usd per share)",
        "label": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Cancellations and Forfeitures in Period, Weighted Average Exercise Price",
        "documentation": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Cancellations and Forfeitures in Period, Weighted Average Exercise Price"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber",
     "presentation": [
      "http://www.tecogen.com/role/StockholdersequityStockOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Exercisable (shares)",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercisable, Number",
        "documentation": "The number of shares into which fully or partially vested stock options outstanding as of the balance sheet date can be currently converted under the option plan."
       }
      }
     },
     "auth_ref": [
      "r436"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice",
     "presentation": [
      "http://www.tecogen.com/role/StockholdersequityStockOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Exercisable (usd per share)",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercisable, Weighted Average Exercise Price",
        "documentation": "The weighted-average price as of the balance sheet date at which grantees can acquire the shares reserved for issuance on vested portions of options outstanding and currently exercisable under the stock option plan."
       }
      }
     },
     "auth_ref": [
      "r436"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue",
     "crdr": "debit",
     "presentation": [
      "http://www.tecogen.com/role/StockholdersequityStockOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Exercised, Aggregate Intrinsic Value",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercises in Period, Intrinsic Value",
        "documentation": "Amount of accumulated difference between fair value of underlying shares on dates of exercise and exercise price on options exercised (or share units converted) into shares."
       }
      }
     },
     "auth_ref": [
      "r449"
     ]
    },
    "tgen_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantedInPeriodExercisePrice": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantedInPeriodExercisePrice",
     "presentation": [
      "http://www.tecogen.com/role/StockholdersequityStockBasedCompensationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Exercise price per share, granted (usd per share)",
        "label": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Granted in Period, Exercise Price",
        "documentation": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Granted in Period, Exercise Price"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross",
     "presentation": [
      "http://www.tecogen.com/role/StockholdersequityStockBasedCompensationDetails",
      "http://www.tecogen.com/role/StockholdersequityStockOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Options granted",
        "terseLabel": "Granted (shares)",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Grants in Period, Gross",
        "documentation": "Gross number of share options (or share units) granted during the period."
       }
      }
     },
     "auth_ref": [
      "r438"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue",
     "presentation": [
      "http://www.tecogen.com/role/StockholdersequityStockBasedCompensationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Weighted-average grant date fair value of options granted",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Grants in Period, Weighted Average Grant Date Fair Value",
        "documentation": "The weighted average grant-date fair value of options granted during the reporting period as calculated by applying the disclosed option pricing methodology."
       }
      }
     },
     "auth_ref": [
      "r448"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue",
     "crdr": "debit",
     "presentation": [
      "http://www.tecogen.com/role/StockholdersequityStockOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Outstanding, Aggregate Intrinsic Value",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Intrinsic Value",
        "documentation": "Amount by which the current fair value of the underlying stock exceeds the exercise price of options outstanding."
       }
      }
     },
     "auth_ref": [
      "r39"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber",
     "presentation": [
      "http://www.tecogen.com/role/StockholdersequityStockOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "periodStartLabel": "Beginning (shares)",
        "periodEndLabel": "Ending (shares)",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Number",
        "documentation": "Number of options outstanding, including both vested and non-vested options."
       }
      }
     },
     "auth_ref": [
      "r434",
      "r435"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward",
     "presentation": [
      "http://www.tecogen.com/role/StockholdersequityStockOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Stock Options Outstanding [Roll Forward]",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding [Roll Forward]",
        "documentation": "A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice",
     "presentation": [
      "http://www.tecogen.com/role/StockholdersequityStockOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "periodStartLabel": "Beginning (usd per share)",
        "periodEndLabel": "Ending (usd per share)",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Weighted Average Exercise Price",
        "documentation": "Weighted average price at which grantees can acquire the shares reserved for issuance under the stock option plan."
       }
      }
     },
     "auth_ref": [
      "r434",
      "r435"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward",
     "presentation": [
      "http://www.tecogen.com/role/StockholdersequityStockOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Weighted Average Exercise Price [Roll Forward]",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Weighted Average Exercise Price [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue",
     "crdr": "debit",
     "presentation": [
      "http://www.tecogen.com/role/StockholdersequityStockOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Vested and expected to vest, Aggregate Intrinsic Value",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested and Expected to Vest, Outstanding, Aggregate Intrinsic Value",
        "documentation": "Amount by which current fair value of underlying stock exceeds exercise price of fully vested and expected to vest options outstanding. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur."
       }
      }
     },
     "auth_ref": [
      "r450"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber",
     "presentation": [
      "http://www.tecogen.com/role/StockholdersequityStockOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Vested and expected to vest (shares)",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested and Expected to Vest, Outstanding, Number",
        "documentation": "Number of fully vested and expected to vest options outstanding that can be converted into shares under option plan. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur."
       }
      }
     },
     "auth_ref": [
      "r450"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice",
     "presentation": [
      "http://www.tecogen.com/role/StockholdersequityStockOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Vested and expected to vest (usd per share)",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested and Expected to Vest, Outstanding, Weighted Average Exercise Price",
        "documentation": "Weighted-average exercise price, at which grantee can acquire shares reserved for issuance, for fully vested and expected to vest options outstanding. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur."
       }
      }
     },
     "auth_ref": [
      "r450"
     ]
    },
    "tgen_ShareBasedCompensationArrangementbyShareBasedPaymentAwardHistoricalForfeitureRate": {
     "xbrltype": "percentItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "ShareBasedCompensationArrangementbyShareBasedPaymentAwardHistoricalForfeitureRate",
     "presentation": [
      "http://www.tecogen.com/role/StockholdersequityStockBasedCompensationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Historical forfeiture rate (percent)",
        "label": "Share Based Compensation Arrangement by Share Based Payment Award, Historical Forfeiture Rate",
        "documentation": "Share Based Compensation Arrangement by Share Based Payment Award, Historical Forfeiture Rate"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain",
     "presentation": [
      "http://www.tecogen.com/role/StockholdersequityStockBasedCompensationDetails",
      "http://www.tecogen.com/role/StockholdersequityStockOptionActivityDetails",
      "http://www.tecogen.com/role/StockholdersequityWeightedAverageAssumptionsDetails",
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Award Type [Domain]",
        "label": "Award Type [Domain]",
        "documentation": "Award under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r430",
      "r431",
      "r432",
      "r434",
      "r435",
      "r436",
      "r437",
      "r438",
      "r439",
      "r440",
      "r441",
      "r442",
      "r443",
      "r444",
      "r445",
      "r446",
      "r447",
      "r448",
      "r449",
      "r450",
      "r451",
      "r454",
      "r455",
      "r456",
      "r457",
      "r458"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice",
     "presentation": [
      "http://www.tecogen.com/role/StockholdersequityStockOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Exercised (usd per share)",
        "label": "Share-Based Compensation Arrangements by Share-Based Payment Award, Options, Exercises in Period, Weighted Average Exercise Price",
        "documentation": "Weighted average price at which option holders acquired shares when converting their stock options into shares."
       }
      }
     },
     "auth_ref": [
      "r439"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice",
     "presentation": [
      "http://www.tecogen.com/role/StockholdersequityStockOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Granted (usd per share)",
        "label": "Share-Based Compensation Arrangements by Share-Based Payment Award, Options, Grants in Period, Weighted Average Exercise Price",
        "documentation": "Weighted average per share amount at which grantees can acquire shares of common stock by exercise of options."
       }
      }
     },
     "auth_ref": [
      "r438"
     ]
    },
    "us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationOptionAndIncentivePlansPolicy",
     "presentation": [
      "http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Stock-Based Compensation",
        "label": "Share-Based Payment Arrangement [Policy Text Block]",
        "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": [
      "r426",
      "r433",
      "r452",
      "r453",
      "r454",
      "r455",
      "r458",
      "r461",
      "r462",
      "r463",
      "r464"
     ]
    },
    "tgen_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansCancelledAndForfeitedExercisePriceRangeLowerRangeLimit": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansCancelledAndForfeitedExercisePriceRangeLowerRangeLimit",
     "presentation": [
      "http://www.tecogen.com/role/StockholdersequityStockOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Canceled and Forfeited, Exercise Price Lower Range Limit (usd per share)",
        "label": "Share Based Compensation Shares Authorized Under Stock Option Plans, Cancelled and Forfeited, Exercise Price Range, Lower Range Limit",
        "documentation": "Lower range of Exercise price per share of stock options cancelled and forfeited during the period."
       }
      }
     },
     "auth_ref": []
    },
    "tgen_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansCancelledAndForfeitedExercisePriceRangeUpperRangeLimit": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansCancelledAndForfeitedExercisePriceRangeUpperRangeLimit",
     "presentation": [
      "http://www.tecogen.com/role/StockholdersequityStockOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Canceled and Forfeited, Exercise Price Upper Range Limit (usd per share)",
        "label": "Share Based Compensation Shares Authorized Under Stock Option Plans, Cancelled and Forfeited, Exercise Price Range, Upper Range Limit",
        "documentation": "Upper range of Exercise price per share of stock options cancelled and forfeited during the period."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit",
     "presentation": [
      "http://www.tecogen.com/role/StockholdersequityStockOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Outstanding, Exercise Price Lower Range Limit (usd per share)",
        "label": "Share-Based Payment Arrangement, Option, Exercise Price Range, Lower Range Limit",
        "documentation": "The floor of a customized range of exercise prices for purposes of disclosing shares potentially issuable under outstanding stock option awards on all stock option plans and other required information pertaining to awards in the customized range."
       }
      }
     },
     "auth_ref": [
      "r40"
     ]
    },
    "us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit",
     "presentation": [
      "http://www.tecogen.com/role/StockholdersequityStockOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Outstanding, Exercise Price Upper Range Limit (usd per share)",
        "label": "Share-Based Payment Arrangement, Option, Exercise Price Range, Upper Range Limit",
        "documentation": "The ceiling of a customized range of exercise prices for purposes of disclosing shares potentially issuable under outstanding stock option awards on all stock option plans and other required information pertaining to awards in the customized range."
       }
      }
     },
     "auth_ref": [
      "r40"
     ]
    },
    "tgen_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansGrantedExercisePriceRangeLowerRangeLimit": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansGrantedExercisePriceRangeLowerRangeLimit",
     "presentation": [
      "http://www.tecogen.com/role/StockholdersequityStockBasedCompensationDetails",
      "http://www.tecogen.com/role/StockholdersequityStockOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Options granted, exercise price range, lower limit (usd per share)",
        "terseLabel": "Granted, Exercise Price Lower Range Limit (usd per share)",
        "label": "Share Based Compensation Shares Authorized Under Stock Option Plans, Granted, Exercise Price Range, Lower Range Limit",
        "documentation": "Lower range of Exercise price per share of stock options granted during the period."
       }
      }
     },
     "auth_ref": []
    },
    "tgen_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansGrantedExercisePriceRangeUpperRangeLimit": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansGrantedExercisePriceRangeUpperRangeLimit",
     "presentation": [
      "http://www.tecogen.com/role/StockholdersequityStockBasedCompensationDetails",
      "http://www.tecogen.com/role/StockholdersequityStockOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Options granted, exercise price range, upper limit (usd per share)",
        "terseLabel": "Granted, Exercise Price Upper Range Limit (usd per share)",
        "label": "Share Based Compensation Shares Authorized Under Stock Option Plans, Granted, Exercise Price Range, Upper Range Limit",
        "documentation": "Upper range of Exercise price per share of stock options granted during the period."
       }
      }
     },
     "auth_ref": []
    },
    "tgen_ShareBasedPaymentArrangementOptionExercisesInPeriodExercisePricePerShare": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "ShareBasedPaymentArrangementOptionExercisesInPeriodExercisePricePerShare",
     "presentation": [
      "http://www.tecogen.com/role/StockholdersequityStockOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Exercised, Exercise Price Per Share (usd per share)",
        "label": "Share-Based Payment Arrangement, Option, Exercises In Period, Exercise Price Per Share",
        "documentation": "Share-Based Payment Arrangement, Option, Exercises In Period, Exercise Price Per Share"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod",
     "presentation": [
      "http://www.tecogen.com/role/StockholdersequityStockBasedCompensationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Award expiration period",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Expiration Period",
        "documentation": "Period from grant date that an equity-based award expires, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days."
       }
      }
     },
     "auth_ref": [
      "r794"
     ]
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1",
     "presentation": [
      "http://www.tecogen.com/role/StockholdersequityWeightedAverageAssumptionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Expected life",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Fair Value Assumptions, Expected Term",
        "documentation": "Expected term of award under share-based payment arrangement, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days."
       }
      }
     },
     "auth_ref": [
      "r454"
     ]
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1",
     "crdr": "debit",
     "presentation": [
      "http://www.tecogen.com/role/StockholdersequityStockOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Exercisable, Aggregate Intrinsic Value",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercisable, Intrinsic Value",
        "documentation": "Amount of difference between fair value of the underlying shares reserved for issuance and exercise price of vested portions of options outstanding and currently exercisable."
       }
      }
     },
     "auth_ref": [
      "r39"
     ]
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2",
     "presentation": [
      "http://www.tecogen.com/role/StockholdersequityStockOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Outstanding, Weighted Average Remaining Life",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Weighted Average Remaining Contractual Term",
        "documentation": "Weighted average remaining contractual term for option awards outstanding, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days."
       }
      }
     },
     "auth_ref": [
      "r125"
     ]
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1",
     "crdr": "credit",
     "presentation": [
      "http://www.tecogen.com/role/StockholdersequityStockBasedCompensationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Fair value of options issued",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested in Period, Fair Value",
        "documentation": "Fair value of options vested. Excludes equity instruments other than options, for example, but not limited to, share units, stock appreciation rights, restricted stock."
       }
      }
     },
     "auth_ref": [
      "r449"
     ]
    },
    "us-gaap_ShareholdersEquityAndShareBasedPaymentsTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareholdersEquityAndShareBasedPaymentsTextBlock",
     "presentation": [
      "http://www.tecogen.com/role/Stockholdersequity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Stockholders' equity",
        "label": "Shareholders' Equity and Share-Based Payments [Text Block]",
        "documentation": "The entire disclosure for shareholders' equity and share-based payment arrangement. Includes, but is not limited to, disclosure of policy and terms of share-based payment arrangement, deferred compensation arrangement, and employee stock purchase plan (ESPP)."
       }
      }
     },
     "auth_ref": [
      "r118",
      "r123"
     ]
    },
    "us-gaap_SharesOutstanding": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SharesOutstanding",
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedStatementsofStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "periodStartLabel": "Beginning balance, shares",
        "periodEndLabel": "Ending balance, shares",
        "label": "Shares, Outstanding",
        "documentation": "Number of shares issued which are neither cancelled nor held in the treasury."
       }
      }
     },
     "auth_ref": []
    },
    "tgen_ShippingandHandlingExpenses": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "ShippingandHandlingExpenses",
     "crdr": "debit",
     "presentation": [
      "http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Shipping and handling expenses",
        "label": "Shipping and Handling Expenses",
        "documentation": "Shipping and Handling Expenses"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StandardProductWarrantyAccrual": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StandardProductWarrantyAccrual",
     "crdr": "credit",
     "presentation": [
      "http://www.tecogen.com/role/ProductwarrantyScheduleofProductWarrantyReserveDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "periodStartLabel": "Warranty reserve, beginning balance",
        "periodEndLabel": "Warranty reserve, ending balance",
        "label": "Standard Product Warranty Accrual",
        "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": [
      "r1022",
      "r1025"
     ]
    },
    "us-gaap_StandardProductWarrantyAccrualPayments": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StandardProductWarrantyAccrualPayments",
     "crdr": "debit",
     "presentation": [
      "http://www.tecogen.com/role/ProductwarrantyScheduleofProductWarrantyReserveDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Costs of warranty incurred",
        "label": "Standard Product Warranty Accrual, Decrease for Payments",
        "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": [
      "r1023"
     ]
    },
    "us-gaap_StandardProductWarrantyAccrualWarrantiesIssued": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StandardProductWarrantyAccrualWarrantiesIssued",
     "crdr": "credit",
     "presentation": [
      "http://www.tecogen.com/role/ProductwarrantyScheduleofProductWarrantyReserveDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Warranty provision for units sold",
        "label": "Standard Product Warranty Accrual, Increase for Warranties Issued",
        "documentation": "Amount of increase in the standard product warranty accrual from warranties issued. Excludes extended product warranties."
       }
      }
     },
     "auth_ref": [
      "r1024"
     ]
    },
    "us-gaap_StateAndLocalJurisdictionMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StateAndLocalJurisdictionMember",
     "presentation": [
      "http://www.tecogen.com/role/IncometaxesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "State Jurisdiction",
        "label": "State and Local Jurisdiction [Member]",
        "documentation": "Designated state or local jurisdiction entitled to levy and collect income tax."
       }
      }
     },
     "auth_ref": [
      "r474"
     ]
    },
    "us-gaap_StatementBusinessSegmentsAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StatementBusinessSegmentsAxis",
     "presentation": [
      "http://www.tecogen.com/role/GoodwillNarrativeDetails",
      "http://www.tecogen.com/role/GoodwillScheduleofGoodwillDetails",
      "http://www.tecogen.com/role/SegmentsDetails",
      "http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesRevenueDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Segments [Axis]",
        "label": "Segments [Axis]",
        "documentation": "Information by business segments."
       }
      }
     },
     "auth_ref": [
      "r145",
      "r146",
      "r147",
      "r148",
      "r171",
      "r243",
      "r246",
      "r249",
      "r250",
      "r251",
      "r252",
      "r253",
      "r254",
      "r255",
      "r256",
      "r257",
      "r258",
      "r259",
      "r260",
      "r262",
      "r263",
      "r264",
      "r272",
      "r273",
      "r274",
      "r275",
      "r276",
      "r278",
      "r279",
      "r280",
      "r285",
      "r306",
      "r307",
      "r308",
      "r309",
      "r310",
      "r311",
      "r312",
      "r313",
      "r314",
      "r333",
      "r337",
      "r345",
      "r346",
      "r633",
      "r634",
      "r635",
      "r636",
      "r637",
      "r638",
      "r639",
      "r640",
      "r641",
      "r642",
      "r643",
      "r761",
      "r764",
      "r765",
      "r771",
      "r816",
      "r1103",
      "r1105",
      "r1106",
      "r1107",
      "r1108",
      "r1109",
      "r1110",
      "r1111",
      "r1112",
      "r1113",
      "r1114",
      "r1115",
      "r1116",
      "r1117",
      "r1118",
      "r1119",
      "r1120",
      "r1121",
      "r1122",
      "r1123",
      "r1124",
      "r1125",
      "r1126",
      "r1127",
      "r1128",
      "r1129",
      "r1130",
      "r1131",
      "r1132"
     ]
    },
    "us-gaap_StatementEquityComponentsAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StatementEquityComponentsAxis",
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedStatementsofStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Equity Components [Axis]",
        "label": "Equity Components [Axis]",
        "documentation": "Information by component of equity."
       }
      }
     },
     "auth_ref": [
      "r10",
      "r83",
      "r86",
      "r87",
      "r169",
      "r193",
      "r194",
      "r195",
      "r213",
      "r214",
      "r215",
      "r217",
      "r223",
      "r226",
      "r228",
      "r244",
      "r290",
      "r293",
      "r335",
      "r401",
      "r491",
      "r492",
      "r499",
      "r500",
      "r501",
      "r503",
      "r508",
      "r509",
      "r517",
      "r518",
      "r519",
      "r520",
      "r521",
      "r522",
      "r524",
      "r552",
      "r553",
      "r554",
      "r555",
      "r556",
      "r557",
      "r561",
      "r564",
      "r584",
      "r630",
      "r655",
      "r656",
      "r657",
      "r674",
      "r726"
     ]
    },
    "us-gaap_StatementLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StatementLineItems",
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedStatementsofOperations",
      "http://www.tecogen.com/role/ConsolidatedStatementsofStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Statement [Line Items]",
        "label": "Statement [Line Items]",
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table."
       }
      }
     },
     "auth_ref": [
      "r213",
      "r214",
      "r215",
      "r244",
      "r564",
      "r605",
      "r668",
      "r675",
      "r678",
      "r679",
      "r680",
      "r681",
      "r682",
      "r683",
      "r686",
      "r689",
      "r690",
      "r691",
      "r692",
      "r693",
      "r694",
      "r695",
      "r696",
      "r697",
      "r699",
      "r700",
      "r701",
      "r702",
      "r703",
      "r705",
      "r707",
      "r708",
      "r712",
      "r713",
      "r714",
      "r715",
      "r716",
      "r717",
      "r718",
      "r719",
      "r720",
      "r721",
      "r722",
      "r723",
      "r726",
      "r823"
     ]
    },
    "us-gaap_StatementOfCashFlowsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StatementOfCashFlowsAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Statement of Cash Flows [Abstract]",
        "label": "Statement of Cash Flows [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StatementOfFinancialPositionAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StatementOfFinancialPositionAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Statement of Financial Position [Abstract]",
        "label": "Statement of Financial Position [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StatementOfStockholdersEquityAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StatementOfStockholdersEquityAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Statement of Stockholders' Equity [Abstract]",
        "label": "Statement of Stockholders' Equity [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "srt_StatementScenarioAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/srt/2024",
     "localname": "StatementScenarioAxis",
     "presentation": [
      "http://www.tecogen.com/role/LeasesNarrativeDetails",
      "http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Scenario [Axis]",
        "label": "Scenario [Axis]"
       }
      }
     },
     "auth_ref": [
      "r229",
      "r425",
      "r943",
      "r944",
      "r970"
     ]
    },
    "us-gaap_StatementTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StatementTable",
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedStatementsofOperations",
      "http://www.tecogen.com/role/ConsolidatedStatementsofStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Statement [Table]",
        "label": "Statement [Table]",
        "documentation": "Disclosure of information about statement of comprehensive income, income, other comprehensive income, financial position, cash flows, and shareholders' equity."
       }
      }
     },
     "auth_ref": [
      "r213",
      "r214",
      "r215",
      "r244",
      "r286",
      "r564",
      "r605",
      "r668",
      "r675",
      "r678",
      "r679",
      "r680",
      "r681",
      "r682",
      "r683",
      "r686",
      "r689",
      "r690",
      "r691",
      "r692",
      "r693",
      "r694",
      "r695",
      "r696",
      "r697",
      "r699",
      "r700",
      "r701",
      "r702",
      "r703",
      "r705",
      "r707",
      "r708",
      "r712",
      "r713",
      "r714",
      "r715",
      "r716",
      "r717",
      "r718",
      "r719",
      "r720",
      "r721",
      "r722",
      "r723",
      "r726",
      "r823"
     ]
    },
    "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": {
        "terseLabel": "Stock Price or TSR Estimation Method",
        "label": "Stock Price or TSR Estimation Method [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r852",
      "r863",
      "r873",
      "r906"
     ]
    },
    "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": {
        "terseLabel": "Stock Appreciation Rights (SARs)",
        "label": "Stock Appreciation Rights (SARs) [Member]",
        "documentation": "Right to receive cash or shares equal to appreciation of predetermined number of grantor's shares during predetermined time period."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StockIssuedDuringPeriodSharesStockOptionsExercised",
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedStatementsofStockholdersEquity",
      "http://www.tecogen.com/role/StockholdersequityStockBasedCompensationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Exercise of stock options (in shares)",
        "negatedTerseLabel": "Exercise of stock options (in shares)",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercises in Period",
        "documentation": "Number of share options (or share units) exercised during the current period."
       }
      }
     },
     "auth_ref": [
      "r10",
      "r82",
      "r83",
      "r119",
      "r439"
     ]
    },
    "us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StockIssuedDuringPeriodValueStockOptionsExercised",
     "crdr": "credit",
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedStatementsofStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Exercise of stock options",
        "label": "Stock Issued During Period, Value, Stock Options Exercised",
        "documentation": "Value of stock issued as a result of the exercise of stock options."
       }
      }
     },
     "auth_ref": [
      "r10",
      "r83",
      "r86",
      "r87",
      "r119"
     ]
    },
    "us-gaap_StockholdersEquity": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StockholdersEquity",
     "crdr": "credit",
     "calculation": {
      "http://www.tecogen.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Equity, Attributable to Parent, Total",
        "label": "Equity, Attributable to Parent",
        "documentation": "Amount of equity (deficit) attributable to parent. Excludes temporary equity and equity attributable to noncontrolling interest."
       }
      }
     },
     "auth_ref": [
      "r83",
      "r86",
      "r87",
      "r108",
      "r688",
      "r704",
      "r727",
      "r728",
      "r811",
      "r830",
      "r966",
      "r987",
      "r1081",
      "r1136"
     ]
    },
    "us-gaap_StockholdersEquityAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StockholdersEquityAbstract",
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Tecogen Inc. shareholders\u2019 equity:",
        "label": "Equity, Attributable to Parent [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest",
     "crdr": "credit",
     "calculation": {
      "http://www.tecogen.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedBalanceSheets",
      "http://www.tecogen.com/role/ConsolidatedStatementsofStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Equity, Including Portion Attributable to Noncontrolling Interest, Total",
        "periodStartLabel": "Balance, beginning balance",
        "periodEndLabel": "Balance, ending balance",
        "label": "Equity, Including Portion Attributable to Noncontrolling Interest",
        "documentation": "Amount of equity (deficit) attributable to parent and noncontrolling interest. Excludes temporary equity."
       }
      }
     },
     "auth_ref": [
      "r53",
      "r54",
      "r55",
      "r169",
      "r170",
      "r194",
      "r213",
      "r214",
      "r215",
      "r217",
      "r223",
      "r226",
      "r290",
      "r293",
      "r335",
      "r401",
      "r491",
      "r492",
      "r499",
      "r500",
      "r501",
      "r503",
      "r508",
      "r509",
      "r517",
      "r518",
      "r519",
      "r520",
      "r521",
      "r522",
      "r524",
      "r552",
      "r553",
      "r557",
      "r562",
      "r584",
      "r656",
      "r657",
      "r672",
      "r688",
      "r704",
      "r727",
      "r728",
      "r735",
      "r829",
      "r966",
      "r987",
      "r1081",
      "r1136"
     ]
    },
    "us-gaap_SubsequentEventLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SubsequentEventLineItems",
     "presentation": [
      "http://www.tecogen.com/role/SubsequentEventsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Subsequent Event [Line Items]",
        "label": "Subsequent Event [Line Items]",
        "documentation": "Detail information of subsequent event by type. User is expected to use existing line items from elsewhere in the taxonomy as the primary line items for this disclosure, which is further associated with dimension and member elements pertaining to a subsequent event."
       }
      }
     },
     "auth_ref": [
      "r558",
      "r591"
     ]
    },
    "us-gaap_SubsequentEventMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SubsequentEventMember",
     "presentation": [
      "http://www.tecogen.com/role/CommitmentsandcontingenciesDetails",
      "http://www.tecogen.com/role/LeasesNarrativeDetails",
      "http://www.tecogen.com/role/RelatedPartyNotesDetails",
      "http://www.tecogen.com/role/SubsequentEventsDetails",
      "http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Subsequent Event",
        "label": "Subsequent Event [Member]",
        "documentation": "Identifies event that occurred after the balance sheet date but before financial statements are issued or available to be issued."
       }
      }
     },
     "auth_ref": [
      "r558",
      "r591"
     ]
    },
    "us-gaap_SubsequentEventTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SubsequentEventTable",
     "presentation": [
      "http://www.tecogen.com/role/SubsequentEventsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Subsequent Event [Table]",
        "label": "Subsequent Event [Table]",
        "documentation": "Disclosure of information about significant event or transaction occurring between statement of financial position date and date when financial statements were issued."
       }
      }
     },
     "auth_ref": [
      "r558",
      "r591"
     ]
    },
    "us-gaap_SubsequentEventTypeAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SubsequentEventTypeAxis",
     "presentation": [
      "http://www.tecogen.com/role/CommitmentsandcontingenciesDetails",
      "http://www.tecogen.com/role/LeasesNarrativeDetails",
      "http://www.tecogen.com/role/RelatedPartyNotesDetails",
      "http://www.tecogen.com/role/SubsequentEventsDetails",
      "http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Subsequent Event Type [Axis]",
        "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": [
      "r558",
      "r591"
     ]
    },
    "us-gaap_SubsequentEventTypeDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SubsequentEventTypeDomain",
     "presentation": [
      "http://www.tecogen.com/role/CommitmentsandcontingenciesDetails",
      "http://www.tecogen.com/role/LeasesNarrativeDetails",
      "http://www.tecogen.com/role/RelatedPartyNotesDetails",
      "http://www.tecogen.com/role/SubsequentEventsDetails",
      "http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Subsequent Event Type [Domain]",
        "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": [
      "r558",
      "r591"
     ]
    },
    "us-gaap_SubsequentEventsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SubsequentEventsAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Subsequent Events [Abstract]",
        "label": "Subsequent Events [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SubsequentEventsTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SubsequentEventsTextBlock",
     "presentation": [
      "http://www.tecogen.com/role/SubsequentEvents"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Subsequent Events",
        "label": "Subsequent Events [Text Block]",
        "documentation": "The entire disclosure for significant events or transactions that occurred after the balance sheet date through the date the financial statements were issued or the date the financial statements were available to be issued. Examples include: the sale of a capital stock issue, purchase of a business, settlement of litigation, catastrophic loss, significant foreign exchange rate changes, loans to insiders or affiliates, and transactions not in the ordinary course of business."
       }
      }
     },
     "auth_ref": [
      "r590",
      "r592"
     ]
    },
    "us-gaap_SubsidiaryOrEquityMethodInvesteeCumulativePercentageOwnershipAfterAllTransactions": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SubsidiaryOrEquityMethodInvesteeCumulativePercentageOwnershipAfterAllTransactions",
     "presentation": [
      "http://www.tecogen.com/role/AcquisitionofAmericanDGEnergyIncDetails",
      "http://www.tecogen.com/role/IncometaxesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Ownership interest (percent)",
        "label": "Subsidiary or Equity Method Investee, Cumulative Percentage Ownership after All Transactions",
        "documentation": "Percentage of subsidiary's or equity method investee's stock owned by parent immediately after all stock transactions."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SupplementalCashFlowInformationAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SupplementalCashFlowInformationAbstract",
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Supplemental disclosures of cash flows information:",
        "label": "Supplemental Cash Flow Information [Abstract]"
       }
      }
     },
     "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": {
        "terseLabel": "Tabular List, Table",
        "label": "Tabular List [Table Text Block]"
       }
      }
     },
     "auth_ref": [
      "r899"
     ]
    },
    "tgen_TheCorporationOfTheTownOfMiltonMiltonEnergyGenerationSolutionsInc.AndMiltonHydroDistributionIncMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "TheCorporationOfTheTownOfMiltonMiltonEnergyGenerationSolutionsInc.AndMiltonHydroDistributionIncMember",
     "presentation": [
      "http://www.tecogen.com/role/CommitmentsandcontingenciesDetails",
      "http://www.tecogen.com/role/SubsequentEventsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "The Corporation Of The Town Of Milton, Milton Energy Generation Solutions Inc. And Milton Hydro Distribution Inc",
        "label": "The Corporation Of The Town Of Milton, Milton Energy Generation Solutions Inc. And Milton Hydro Distribution Inc [Member]",
        "documentation": "The Corporation Of The Town Of Milton, Milton Energy Generation Solutions Inc. And Milton Hydro Distribution Inc"
       }
      }
     },
     "auth_ref": []
    },
    "srt_TitleOfIndividualAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/srt/2024",
     "localname": "TitleOfIndividualAxis",
     "presentation": [
      "http://www.tecogen.com/role/StockholdersequityStockBasedCompensationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Title and Position [Axis]",
        "label": "Title and Position [Axis]"
       }
      }
     },
     "auth_ref": [
      "r981",
      "r1089"
     ]
    },
    "srt_TitleOfIndividualWithRelationshipToEntityDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2024",
     "localname": "TitleOfIndividualWithRelationshipToEntityDomain",
     "presentation": [
      "http://www.tecogen.com/role/StockholdersequityStockBasedCompensationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Title and Position [Domain]",
        "label": "Title and Position [Domain]"
       }
      }
     },
     "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": {
        "terseLabel": "Total Shareholder Return Amount",
        "label": "Total Shareholder Return Amount"
       }
      }
     },
     "auth_ref": [
      "r891"
     ]
    },
    "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": {
        "terseLabel": "Total Shareholder Return Vs Peer Group",
        "label": "Total Shareholder Return Vs Peer Group [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r898"
     ]
    },
    "us-gaap_TradeAndOtherAccountsReceivablePolicy": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "TradeAndOtherAccountsReceivablePolicy",
     "presentation": [
      "http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accounts Receivable",
        "label": "Accounts Receivable [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for accounts receivable."
       }
      }
     },
     "auth_ref": [
      "r149",
      "r150",
      "r151",
      "r983",
      "r984",
      "r985"
     ]
    },
    "us-gaap_TrademarksMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "TrademarksMember",
     "presentation": [
      "http://www.tecogen.com/role/IntangibleassetsandliabilitiesotherthangoodwillNarrativeDetails",
      "http://www.tecogen.com/role/IntangibleassetsotherthangoodwillScheduleofIntangibleAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Trademarks",
        "label": "Trademarks [Member]",
        "documentation": "Rights acquired through registration of a trademark to gain or protect exclusive use of a business name, symbol or other device or style."
       }
      }
     },
     "auth_ref": [
      "r48",
      "r772",
      "r1000",
      "r1001",
      "r1002",
      "r1003",
      "r1004",
      "r1005",
      "r1007",
      "r1009",
      "r1010",
      "r1011"
     ]
    },
    "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": {
        "terseLabel": "Trading Arrangement:",
        "label": "Trading Arrangement [Axis]"
       }
      }
     },
     "auth_ref": [
      "r919"
     ]
    },
    "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": {
        "terseLabel": "Trading Arrangements, by Individual",
        "label": "Trading Arrangements, by Individual [Table]"
       }
      }
     },
     "auth_ref": [
      "r921"
     ]
    },
    "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": {
        "terseLabel": "Adoption Date",
        "label": "Trading Arrangement Adoption Date"
       }
      }
     },
     "auth_ref": [
      "r922"
     ]
    },
    "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": {
        "terseLabel": "Arrangement Duration",
        "label": "Trading Arrangement Duration"
       }
      }
     },
     "auth_ref": [
      "r923"
     ]
    },
    "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": {
        "terseLabel": "Expiration Date",
        "label": "Trading Arrangement Expiration Date"
       }
      }
     },
     "auth_ref": [
      "r923"
     ]
    },
    "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": {
        "terseLabel": "Name",
        "label": "Trading Arrangement, Individual Name"
       }
      }
     },
     "auth_ref": [
      "r921"
     ]
    },
    "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": {
        "terseLabel": "Title",
        "label": "Trading Arrangement, Individual Title"
       }
      }
     },
     "auth_ref": [
      "r921"
     ]
    },
    "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": {
        "terseLabel": "Aggregate Available",
        "label": "Trading Arrangement, Securities Aggregate Available Amount"
       }
      }
     },
     "auth_ref": [
      "r924"
     ]
    },
    "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": {
        "terseLabel": "Termination Date",
        "label": "Trading Arrangement Termination Date"
       }
      }
     },
     "auth_ref": [
      "r922"
     ]
    },
    "tgen_TurnkeyInstallationMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "TurnkeyInstallationMember",
     "presentation": [
      "http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesRevenueDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Turnkey Installation [Member]",
        "label": "Turnkey Installation [Member]",
        "documentation": "Turnkey Installation [Member]"
       }
      }
     },
     "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": {
        "terseLabel": "Underlying Security Market Price Change",
        "label": "Underlying Security Market Price Change, Percent"
       }
      }
     },
     "auth_ref": [
      "r918"
     ]
    },
    "tgen_UnfavorableContractLiabilityMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "UnfavorableContractLiabilityMember",
     "presentation": [
      "http://www.tecogen.com/role/IntangibleassetsotherthangoodwillScheduleofIntangibleAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Unfavorable Contract Liability",
        "label": "Unfavorable Contract Liability [Member]",
        "documentation": "Unfavorable Contract Liability [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_UseOfEstimates": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "UseOfEstimates",
     "presentation": [
      "http://www.tecogen.com/role/SummaryofsignificantaccountingpoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Use of Estimates",
        "label": "Use of Estimates, Policy [Policy Text Block]",
        "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": [
      "r30",
      "r31",
      "r32",
      "r156",
      "r157",
      "r160",
      "r161"
     ]
    },
    "tgen_VehiclesAcquiredUnderFinanceLeases": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "VehiclesAcquiredUnderFinanceLeases",
     "crdr": "credit",
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Right-of-use assets acquired under finance leases",
        "label": "Vehicles Acquired Under Finance Leases",
        "documentation": "Vehicles Acquired Under Finance Leases"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_VehiclesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "VehiclesMember",
     "presentation": [
      "http://www.tecogen.com/role/LeasesSupplementalBalanceSheetInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Vehicles",
        "label": "Vehicles [Member]",
        "documentation": "Equipment used primarily for road transportation."
       }
      }
     },
     "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": {
        "terseLabel": "Vesting Date Fair Value of Equity Awards Granted and Vested in Covered Year",
        "label": "Vesting Date Fair Value of Equity Awards Granted and Vested in Covered Year [Member]"
       }
      }
     },
     "auth_ref": [
      "r887"
     ]
    },
    "tgen_WebsterBusinessCreditCorporationMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "WebsterBusinessCreditCorporationMember",
     "presentation": [
      "http://www.tecogen.com/role/IncometaxesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Webster Business Credit Corporation",
        "label": "Webster Business Credit Corporation [Member]",
        "documentation": "Webster Business Credit Corporation [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "WeightedAverageNumberDilutedSharesOutstandingAdjustment",
     "calculation": {
      "http://www.tecogen.com/role/LosspercommonshareScheduleofLossPerCommonShareBasicandDilutedDetails": {
       "parentTag": "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/LosspercommonshareScheduleofLossPerCommonShareBasicandDilutedDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Stock options",
        "label": "Weighted Average Number of Shares Outstanding, Diluted, Adjustment",
        "documentation": "The sum of dilutive potential common shares or units used in the calculation of the diluted per-share or per-unit computation."
       }
      }
     },
     "auth_ref": [
      "r972"
     ]
    },
    "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "WeightedAverageNumberOfDilutedSharesOutstanding",
     "calculation": {
      "http://www.tecogen.com/role/LosspercommonshareScheduleofLossPerCommonShareBasicandDilutedDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedStatementsofOperations",
      "http://www.tecogen.com/role/LosspercommonshareScheduleofLossPerCommonShareBasicandDilutedDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Weighted average shares outstanding - diluted (in shares)",
        "totalLabel": "Weighted average shares outstanding - diluted (in shares)",
        "label": "Weighted Average Number of Shares Outstanding, Diluted",
        "documentation": "The average number of shares or units issued and outstanding that are used in calculating diluted EPS or earnings per unit (EPU), determined based on the timing of issuance of shares or units in the period."
       }
      }
     },
     "auth_ref": [
      "r232",
      "r237"
     ]
    },
    "us-gaap_WeightedAverageNumberOfSharesOutstandingBasic": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "WeightedAverageNumberOfSharesOutstandingBasic",
     "calculation": {
      "http://www.tecogen.com/role/LosspercommonshareScheduleofLossPerCommonShareBasicandDilutedDetails": {
       "parentTag": "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.tecogen.com/role/ConsolidatedStatementsofOperations",
      "http://www.tecogen.com/role/LosspercommonshareScheduleofLossPerCommonShareBasicandDilutedDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Weighted average shares outstanding - basic (in shares)",
        "label": "Weighted Average Number of Shares Outstanding, Basic",
        "documentation": "Number of [basic] shares or units, after adjustment for contingently issuable shares or units and other shares or units not deemed outstanding, determined by relating the portion of time within a reporting period that common shares or units have been outstanding to the total time in that period."
       }
      }
     },
     "auth_ref": [
      "r231",
      "r237"
     ]
    },
    "tgen_WorkingCapitalNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.tecogen.com/20241231",
     "localname": "WorkingCapitalNet",
     "crdr": "debit",
     "presentation": [
      "http://www.tecogen.com/role/NatureofbusinessandoperationsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Working capital",
        "label": "Working Capital, Net",
        "documentation": "Working Capital, Net"
       }
      }
     },
     "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": {
        "terseLabel": "Year-end Fair Value of Equity Awards Granted in Covered Year that are Outstanding and Unvested",
        "label": "Year-end Fair Value of Equity Awards Granted in Covered Year that are Outstanding and Unvested [Member]"
       }
      }
     },
     "auth_ref": [
      "r885"
     ]
    }
   }
  }
 },
 "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": "25",
   "Paragraph": "16",
   "SubTopic": "10",
   "Topic": "805",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479405/805-10-25-16"
  },
  "r2": {
   "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"
  },
  "r3": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "13",
   "Subparagraph": "(d)",
   "SubTopic": "10",
   "Topic": "230",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-13"
  },
  "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": "28",
   "Subparagraph": "(a)",
   "SubTopic": "10",
   "Topic": "230",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-28"
  },
  "r6": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "28",
   "Subparagraph": "(b)",
   "SubTopic": "10",
   "Topic": "230",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-28"
  },
  "r7": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "SubTopic": "10",
   "Topic": "360",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482099/360-10-50-1"
  },
  "r8": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "SubTopic": "10",
   "Topic": "825",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482907/825-10-50-1"
  },
  "r9": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "SubTopic": "20",
   "Topic": "205",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483499/205-20-50-1"
  },
  "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": "2",
   "Subparagraph": "(d)",
   "SubTopic": "10",
   "Topic": "718",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r12": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(e)",
   "SubTopic": "10",
   "Topic": "718",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r13": {
   "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"
  },
  "r14": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "SubTopic": "10",
   "Topic": "360",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482099/360-10-50-3"
  },
  "r15": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "13",
   "SubTopic": "20",
   "Topic": "805",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-13"
  },
  "r16": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(22))",
   "SubTopic": "10",
   "Topic": "210",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r17": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "205",
   "SubTopic": "20",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483499/205-20-50-3"
  },
  "r18": {
   "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"
  },
  "r19": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "230",
   "SubTopic": "10",
   "Section": "45",
   "Paragraph": "13",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-13"
  },
  "r20": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "230",
   "SubTopic": "10",
   "Section": "45",
   "Paragraph": "14",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-14"
  },
  "r21": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "230",
   "SubTopic": "10",
   "Section": "45",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-4"
  },
  "r22": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "230",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482913/230-10-50-1"
  },
  "r23": {
   "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"
  },
  "r24": {
   "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"
  },
  "r25": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "260",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482662/260-10-50-2"
  },
  "r26": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "275",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "16",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-16"
  },
  "r27": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "275",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "18",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-18"
  },
  "r28": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "275",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "20",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-20"
  },
  "r29": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "275",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "21",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-21"
  },
  "r30": {
   "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"
  },
  "r31": {
   "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"
  },
  "r32": {
   "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"
  },
  "r33": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "280",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "22",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22"
  },
  "r34": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "280",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "25",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-25"
  },
  "r35": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "280",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "30",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-30"
  },
  "r36": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "360",
   "SubTopic": "10",
   "Section": "45",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482130/360-10-45-4"
  },
  "r37": {
   "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"
  },
  "r38": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "360",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482099/360-10-50-2"
  },
  "r39": {
   "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"
  },
  "r40": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "718",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(g)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r41": {
   "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"
  },
  "r42": {
   "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"
  },
  "r43": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "805",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479328/805-10-50-2"
  },
  "r44": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "805",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479328/805-10-50-3"
  },
  "r45": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "805",
   "SubTopic": "10",
   "Section": "55",
   "Paragraph": "37",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479303/805-10-55-37"
  },
  "r46": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "805",
   "SubTopic": "20",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479907/805-20-50-1"
  },
  "r47": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "805",
   "SubTopic": "20",
   "Section": "50",
   "Paragraph": "4A",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479907/805-20-50-4A"
  },
  "r48": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "805",
   "SubTopic": "20",
   "Section": "55",
   "Paragraph": "14",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-14"
  },
  "r49": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "805",
   "SubTopic": "20",
   "Section": "55",
   "Paragraph": "20",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-20"
  },
  "r50": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "805",
   "SubTopic": "20",
   "Section": "55",
   "Paragraph": "20",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-20"
  },
  "r51": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "805",
   "SubTopic": "30",
   "Section": "25",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479668/805-30-25-6"
  },
  "r52": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "805",
   "SubTopic": "30",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479581/805-30-50-1"
  },
  "r53": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "810",
   "SubTopic": "10",
   "Section": "45",
   "Paragraph": "15",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481231/810-10-45-15"
  },
  "r54": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "810",
   "SubTopic": "10",
   "Section": "45",
   "Paragraph": "16",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481231/810-10-45-16"
  },
  "r55": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "810",
   "SubTopic": "10",
   "Section": "55",
   "Paragraph": "4I",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481175/810-10-55-4I"
  },
  "r56": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "810",
   "SubTopic": "10",
   "Section": "55",
   "Paragraph": "4J",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481175/810-10-55-4J"
  },
  "r57": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "825",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "20",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482907/825-10-50-20"
  },
  "r58": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "825",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "21",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482907/825-10-50-21"
  },
  "r59": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "850",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483326/850-10-50-1"
  },
  "r60": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "850",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483326/850-10-50-3"
  },
  "r61": {
   "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"
  },
  "r62": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "205",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/205-20/tableOfContent"
  },
  "r63": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "205",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "11",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483475/205-20-45-11"
  },
  "r64": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "205",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483499/205-20-50-3A"
  },
  "r65": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "205",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483499/205-20-50-4A"
  },
  "r66": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "205",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4B",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483499/205-20-50-4B"
  },
  "r67": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "205",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483499/205-20-50-5A"
  },
  "r68": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "205",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5B",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483499/205-20-50-5B"
  },
  "r69": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "205",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5C",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483499/205-20-50-5C"
  },
  "r70": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "205",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5D",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483499/205-20-50-5D"
  },
  "r71": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "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"
  },
  "r72": {
   "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"
  },
  "r73": {
   "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)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r74": {
   "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"
  },
  "r75": {
   "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"
  },
  "r76": {
   "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"
  },
  "r77": {
   "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"
  },
  "r78": {
   "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"
  },
  "r79": {
   "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"
  },
  "r80": {
   "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"
  },
  "r81": {
   "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"
  },
  "r82": {
   "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"
  },
  "r83": {
   "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"
  },
  "r84": {
   "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"
  },
  "r85": {
   "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"
  },
  "r86": {
   "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"
  },
  "r87": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(31))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r88": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(32))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r89": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(6)(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r90": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(6)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r91": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(6)(c))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r92": {
   "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"
  },
  "r93": {
   "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"
  },
  "r94": {
   "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"
  },
  "r95": {
   "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"
  },
  "r96": {
   "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"
  },
  "r97": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.5-03(20))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2"
  },
  "r98": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.5-03(4))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2"
  },
  "r99": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.5-03(7))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2"
  },
  "r100": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "12",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-12"
  },
  "r101": {
   "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"
  },
  "r102": {
   "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"
  },
  "r103": {
   "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"
  },
  "r104": {
   "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"
  },
  "r105": {
   "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"
  },
  "r106": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "235",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/235/tableOfContent"
  },
  "r107": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "275",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "18",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-18"
  },
  "r108": {
   "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"
  },
  "r109": {
   "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"
  },
  "r110": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "360",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/360/tableOfContent"
  },
  "r111": {
   "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"
  },
  "r112": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "360",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482099/360-10-50-2"
  },
  "r113": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "360",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482099/360-10-50-3A"
  },
  "r114": {
   "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"
  },
  "r115": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "440",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/440/tableOfContent"
  },
  "r116": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "460",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/460/tableOfContent"
  },
  "r117": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "470",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/470/tableOfContent"
  },
  "r118": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "505",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/505/tableOfContent"
  },
  "r119": {
   "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"
  },
  "r120": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "710",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/710/tableOfContent"
  },
  "r121": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "712",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/712/tableOfContent"
  },
  "r122": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "715",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/715/tableOfContent"
  },
  "r123": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "718",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/718/tableOfContent"
  },
  "r124": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r125": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "718",
   "SubTopic": "10",
   "Subparagraph": "(e)(1)",
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Section": "50",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r126": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "718",
   "SubTopic": "10",
   "Subparagraph": "(f)(2)",
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Section": "50",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r127": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "805",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/805/tableOfContent"
  },
  "r128": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "805",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "05",
   "Paragraph": "4",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479515/805-10-05-4"
  },
  "r129": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "805",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "05",
   "Paragraph": "4",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479515/805-10-05-4"
  },
  "r130": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "805",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "05",
   "Paragraph": "4",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479515/805-10-05-4"
  },
  "r131": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "805",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "05",
   "Paragraph": "4",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479515/805-10-05-4"
  },
  "r132": {
   "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"
  },
  "r133": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "805",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "35",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479613/805-30-35-1"
  },
  "r134": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "810",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1A",
   "Subparagraph": "(a)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481203/810-10-50-1A"
  },
  "r135": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "825",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "21",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482907/825-10-50-21"
  },
  "r136": {
   "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"
  },
  "r137": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "942",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-03(13))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478546/942-210-S99-1"
  },
  "r138": {
   "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"
  },
  "r139": {
   "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"
  },
  "r140": {
   "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"
  },
  "r141": {
   "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(22))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478546/942-210-S99-1"
  },
  "r142": {
   "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"
  },
  "r143": {
   "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"
  },
  "r144": {
   "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"
  },
  "r145": {
   "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"
  },
  "r146": {
   "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"
  },
  "r147": {
   "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"
  },
  "r148": {
   "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"
  },
  "r149": {
   "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"
  },
  "r150": {
   "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"
  },
  "r151": {
   "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"
  },
  "r152": {
   "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"
  },
  "r153": {
   "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"
  },
  "r154": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "SubTopic": "10",
   "Topic": "275",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-1"
  },
  "r155": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "SubTopic": "35",
   "Topic": "720",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483406/720-35-50-1"
  },
  "r156": {
   "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"
  },
  "r157": {
   "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"
  },
  "r158": {
   "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"
  },
  "r159": {
   "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"
  },
  "r160": {
   "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"
  },
  "r161": {
   "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"
  },
  "r162": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Subparagraph": "(a)",
   "SubTopic": "10",
   "Topic": "606",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-13"
  },
  "r163": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Subparagraph": "(b)(1)",
   "SubTopic": "10",
   "Topic": "606",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-13"
  },
  "r164": {
   "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"
  },
  "r165": {
   "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"
  },
  "r166": {
   "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"
  },
  "r167": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Topic": "275",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/275/tableOfContent"
  },
  "r168": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Topic": "606",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/606/tableOfContent"
  },
  "r169": {
   "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"
  },
  "r170": {
   "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"
  },
  "r171": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "205",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483499/205-20-50-1"
  },
  "r172": {
   "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"
  },
  "r173": {
   "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"
  },
  "r174": {
   "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"
  },
  "r175": {
   "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"
  },
  "r176": {
   "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"
  },
  "r177": {
   "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"
  },
  "r178": {
   "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"
  },
  "r179": {
   "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"
  },
  "r180": {
   "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"
  },
  "r181": {
   "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"
  },
  "r182": {
   "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"
  },
  "r183": {
   "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"
  },
  "r184": {
   "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"
  },
  "r185": {
   "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"
  },
  "r186": {
   "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"
  },
  "r187": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "10A",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-10A"
  },
  "r188": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "10A",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-10A"
  },
  "r189": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "11",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-11"
  },
  "r190": {
   "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"
  },
  "r191": {
   "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"
  },
  "r192": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482765/220-10-50-1"
  },
  "r193": {
   "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"
  },
  "r194": {
   "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"
  },
  "r195": {
   "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"
  },
  "r196": {
   "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"
  },
  "r197": {
   "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(5))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2"
  },
  "r198": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "17",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-17"
  },
  "r199": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-2"
  },
  "r200": {
   "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"
  },
  "r201": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "25",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-25"
  },
  "r202": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482913/230-10-50-2"
  },
  "r203": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "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"
  },
  "r204": {
   "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"
  },
  "r205": {
   "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"
  },
  "r206": {
   "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"
  },
  "r207": {
   "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"
  },
  "r208": {
   "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"
  },
  "r209": {
   "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"
  },
  "r210": {
   "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"
  },
  "r211": {
   "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"
  },
  "r212": {
   "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"
  },
  "r213": {
   "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"
  },
  "r214": {
   "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"
  },
  "r215": {
   "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"
  },
  "r216": {
   "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"
  },
  "r217": {
   "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"
  },
  "r218": {
   "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"
  },
  "r219": {
   "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"
  },
  "r220": {
   "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"
  },
  "r221": {
   "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"
  },
  "r222": {
   "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"
  },
  "r223": {
   "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"
  },
  "r224": {
   "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"
  },
  "r225": {
   "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"
  },
  "r226": {
   "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"
  },
  "r227": {
   "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"
  },
  "r228": {
   "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"
  },
  "r229": {
   "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"
  },
  "r230": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/260/tableOfContent"
  },
  "r231": {
   "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"
  },
  "r232": {
   "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"
  },
  "r233": {
   "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"
  },
  "r234": {
   "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"
  },
  "r235": {
   "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"
  },
  "r236": {
   "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"
  },
  "r237": {
   "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"
  },
  "r238": {
   "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"
  },
  "r239": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482662/260-10-50-1"
  },
  "r240": {
   "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"
  },
  "r241": {
   "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"
  },
  "r242": {
   "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"
  },
  "r243": {
   "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"
  },
  "r244": {
   "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"
  },
  "r245": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/280/tableOfContent"
  },
  "r246": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "15",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-15"
  },
  "r247": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "21",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-21"
  },
  "r248": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "21",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-21"
  },
  "r249": {
   "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"
  },
  "r250": {
   "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"
  },
  "r251": {
   "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"
  },
  "r252": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22"
  },
  "r253": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22"
  },
  "r254": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22"
  },
  "r255": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22"
  },
  "r256": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(g)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22"
  },
  "r257": {
   "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"
  },
  "r258": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(j)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22"
  },
  "r259": {
   "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"
  },
  "r260": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "25",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-25"
  },
  "r261": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "26",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-26"
  },
  "r262": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "26A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-26A"
  },
  "r263": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "26B",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-26B"
  },
  "r264": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "26C",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-26C"
  },
  "r265": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "29",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-29"
  },
  "r266": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "29",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-29"
  },
  "r267": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "29",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-29"
  },
  "r268": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "29",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-29"
  },
  "r269": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "29",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-29"
  },
  "r270": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "29",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-29"
  },
  "r271": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "29",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-29"
  },
  "r272": {
   "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"
  },
  "r273": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "30",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-30"
  },
  "r274": {
   "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"
  },
  "r275": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "30",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-30"
  },
  "r276": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "31",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-31"
  },
  "r277": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "32",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-32"
  },
  "r278": {
   "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"
  },
  "r279": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "32",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-32"
  },
  "r280": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "34",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-34"
  },
  "r281": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "36",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-36"
  },
  "r282": {
   "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"
  },
  "r283": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "41",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-41"
  },
  "r284": {
   "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"
  },
  "r285": {
   "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"
  },
  "r286": {
   "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"
  },
  "r287": {
   "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"
  },
  "r288": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(aa)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-2"
  },
  "r289": {
   "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"
  },
  "r290": {
   "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"
  },
  "r291": {
   "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"
  },
  "r292": {
   "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"
  },
  "r293": {
   "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"
  },
  "r294": {
   "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"
  },
  "r295": {
   "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"
  },
  "r296": {
   "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"
  },
  "r297": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479130/326-30-45-1"
  },
  "r298": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "330",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/330/tableOfContent"
  },
  "r299": {
   "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"
  },
  "r300": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "330",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483080/330-10-50-2"
  },
  "r301": {
   "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"
  },
  "r302": {
   "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"
  },
  "r303": {
   "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"
  },
  "r304": {
   "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"
  },
  "r305": {
   "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"
  },
  "r306": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1"
  },
  "r307": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1"
  },
  "r308": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1"
  },
  "r309": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1"
  },
  "r310": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1"
  },
  "r311": {
   "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"
  },
  "r312": {
   "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"
  },
  "r313": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(g)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1"
  },
  "r314": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(h)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1"
  },
  "r315": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1A"
  },
  "r316": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-2"
  },
  "r317": {
   "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"
  },
  "r318": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/350-30/tableOfContent"
  },
  "r319": {
   "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"
  },
  "r320": {
   "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"
  },
  "r321": {
   "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"
  },
  "r322": {
   "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"
  },
  "r323": {
   "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"
  },
  "r324": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-1"
  },
  "r325": {
   "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"
  },
  "r326": {
   "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"
  },
  "r327": {
   "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"
  },
  "r328": {
   "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"
  },
  "r329": {
   "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"
  },
  "r330": {
   "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"
  },
  "r331": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-3"
  },
  "r332": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-3"
  },
  "r333": {
   "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"
  },
  "r334": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-4"
  },
  "r335": {
   "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"
  },
  "r336": {
   "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"
  },
  "r337": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "360",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482099/360-10-50-3"
  },
  "r338": {
   "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"
  },
  "r339": {
   "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"
  },
  "r340": {
   "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"
  },
  "r341": {
   "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"
  },
  "r342": {
   "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"
  },
  "r343": {
   "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"
  },
  "r344": {
   "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"
  },
  "r345": {
   "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"
  },
  "r346": {
   "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"
  },
  "r347": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "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"
  },
  "r348": {
   "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"
  },
  "r349": {
   "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"
  },
  "r350": {
   "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"
  },
  "r351": {
   "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"
  },
  "r352": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "460",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482425/460-10-50-3"
  },
  "r353": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "460",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(a)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482425/460-10-50-4"
  },
  "r354": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "460",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(a)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482425/460-10-50-4"
  },
  "r355": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "460",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(a)(4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482425/460-10-50-4"
  },
  "r356": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "460",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(a)(5)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482425/460-10-50-4"
  },
  "r357": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "460",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482425/460-10-50-4"
  },
  "r358": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "460",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482425/460-10-50-4"
  },
  "r359": {
   "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"
  },
  "r360": {
   "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"
  },
  "r361": {
   "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"
  },
  "r362": {
   "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"
  },
  "r363": {
   "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"
  },
  "r364": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1A",
   "Subparagraph": "(SX 210.13-01(a)(4)(iii)(B))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1A"
  },
  "r365": {
   "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"
  },
  "r366": {
   "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"
  },
  "r367": {
   "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"
  },
  "r368": {
   "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"
  },
  "r369": {
   "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"
  },
  "r370": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1B",
   "Subparagraph": "(SX 210.13-02(a)(4)(iii)(C))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1B"
  },
  "r371": {
   "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"
  },
  "r372": {
   "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"
  },
  "r373": {
   "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"
  },
  "r374": {
   "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"
  },
  "r375": {
   "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"
  },
  "r376": {
   "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"
  },
  "r377": {
   "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"
  },
  "r378": {
   "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"
  },
  "r379": {
   "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"
  },
  "r380": {
   "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"
  },
  "r381": {
   "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"
  },
  "r382": {
   "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"
  },
  "r383": {
   "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"
  },
  "r384": {
   "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"
  },
  "r385": {
   "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"
  },
  "r386": {
   "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"
  },
  "r387": {
   "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"
  },
  "r388": {
   "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"
  },
  "r389": {
   "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"
  },
  "r390": {
   "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"
  },
  "r391": {
   "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"
  },
  "r392": {
   "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"
  },
  "r393": {
   "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"
  },
  "r394": {
   "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"
  },
  "r395": {
   "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"
  },
  "r396": {
   "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"
  },
  "r397": {
   "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"
  },
  "r398": {
   "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"
  },
  "r399": {
   "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"
  },
  "r400": {
   "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"
  },
  "r401": {
   "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"
  },
  "r402": {
   "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"
  },
  "r403": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479837/606-10-45-3"
  },
  "r404": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "17",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-17"
  },
  "r405": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "18",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-18"
  },
  "r406": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "18",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-18"
  },
  "r407": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "19",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-19"
  },
  "r408": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "20",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-20"
  },
  "r409": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "20",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-20"
  },
  "r410": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "20",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-20"
  },
  "r411": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "20",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-20"
  },
  "r412": {
   "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"
  },
  "r413": {
   "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"
  },
  "r414": {
   "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"
  },
  "r415": {
   "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"
  },
  "r416": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)(iv)(01)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1"
  },
  "r417": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)(iv)(02)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1"
  },
  "r418": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)(iv)(02)(A)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1"
  },
  "r419": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)(iv)(02)(B)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1"
  },
  "r420": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)(iv)(02)(C)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1"
  },
  "r421": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)(iv)(03)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1"
  },
  "r422": {
   "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"
  },
  "r423": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "70",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480794/715-70-50-1"
  },
  "r424": {
   "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"
  },
  "r425": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "80",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(f)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480576/715-80-50-5"
  },
  "r426": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/718/tableOfContent"
  },
  "r427": {
   "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"
  },
  "r428": {
   "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"
  },
  "r429": {
   "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"
  },
  "r430": {
   "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"
  },
  "r431": {
   "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"
  },
  "r432": {
   "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"
  },
  "r433": {
   "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"
  },
  "r434": {
   "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"
  },
  "r435": {
   "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"
  },
  "r436": {
   "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"
  },
  "r437": {
   "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"
  },
  "r438": {
   "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"
  },
  "r439": {
   "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"
  },
  "r440": {
   "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"
  },
  "r441": {
   "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"
  },
  "r442": {
   "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"
  },
  "r443": {
   "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"
  },
  "r444": {
   "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"
  },
  "r445": {
   "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"
  },
  "r446": {
   "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"
  },
  "r447": {
   "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"
  },
  "r448": {
   "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"
  },
  "r449": {
   "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"
  },
  "r450": {
   "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"
  },
  "r451": {
   "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"
  },
  "r452": {
   "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"
  },
  "r453": {
   "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"
  },
  "r454": {
   "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"
  },
  "r455": {
   "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"
  },
  "r456": {
   "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"
  },
  "r457": {
   "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"
  },
  "r458": {
   "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"
  },
  "r459": {
   "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"
  },
  "r460": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r461": {
   "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"
  },
  "r462": {
   "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"
  },
  "r463": {
   "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"
  },
  "r464": {
   "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"
  },
  "r465": {
   "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"
  },
  "r466": {
   "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"
  },
  "r467": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "720",
   "SubTopic": "35",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483406/720-35-50-1"
  },
  "r468": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "730",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "05",
   "Paragraph": "1",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483044/730-10-05-1"
  },
  "r469": {
   "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"
  },
  "r470": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/740/tableOfContent"
  },
  "r471": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "25",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482525/740-10-45-25"
  },
  "r472": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "28",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482525/740-10-45-28"
  },
  "r473": {
   "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"
  },
  "r474": {
   "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"
  },
  "r475": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "12",
   "Subparagraph": "(b)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-12"
  },
  "r476": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "12A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-12A"
  },
  "r477": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "12A",
   "Subparagraph": "(a)(6)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-12A"
  },
  "r478": {
   "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"
  },
  "r479": {
   "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"
  },
  "r480": {
   "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"
  },
  "r481": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "15",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-15"
  },
  "r482": {
   "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"
  },
  "r483": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "19",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-19"
  },
  "r484": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-2"
  },
  "r485": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-2"
  },
  "r486": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "20",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-20"
  },
  "r487": {
   "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"
  },
  "r488": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "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"
  },
  "r489": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-3"
  },
  "r490": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-9"
  },
  "r491": {
   "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"
  },
  "r492": {
   "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"
  },
  "r493": {
   "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"
  },
  "r494": {
   "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"
  },
  "r495": {
   "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"
  },
  "r496": {
   "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"
  },
  "r497": {
   "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"
  },
  "r498": {
   "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"
  },
  "r499": {
   "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"
  },
  "r500": {
   "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"
  },
  "r501": {
   "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"
  },
  "r502": {
   "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"
  },
  "r503": {
   "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"
  },
  "r504": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(h)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479328/805-10-50-2"
  },
  "r505": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(h)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479328/805-10-50-2"
  },
  "r506": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479907/805-20-50-5"
  },
  "r507": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479907/805-20-50-5"
  },
  "r508": {
   "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"
  },
  "r509": {
   "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"
  },
  "r510": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "810",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "19",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481231/810-10-45-19"
  },
  "r511": {
   "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"
  },
  "r512": {
   "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"
  },
  "r513": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "810",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1A",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481203/810-10-50-1A"
  },
  "r514": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "810",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1A",
   "Subparagraph": "(c)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481203/810-10-50-1A"
  },
  "r515": {
   "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"
  },
  "r516": {
   "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"
  },
  "r517": {
   "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"
  },
  "r518": {
   "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"
  },
  "r519": {
   "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"
  },
  "r520": {
   "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"
  },
  "r521": {
   "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"
  },
  "r522": {
   "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"
  },
  "r523": {
   "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"
  },
  "r524": {
   "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"
  },
  "r525": {
   "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"
  },
  "r526": {
   "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"
  },
  "r527": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "35",
   "Paragraph": "54B",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482134/820-10-35-54B"
  },
  "r528": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r529": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r530": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(bbb)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r531": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(bbb)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r532": {
   "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"
  },
  "r533": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r534": {
   "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"
  },
  "r535": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r536": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r537": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r538": {
   "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"
  },
  "r539": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(g)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r540": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(h)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r541": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2E",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2E"
  },
  "r542": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-3"
  },
  "r543": {
   "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"
  },
  "r544": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6A",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-6A"
  },
  "r545": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6A",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-6A"
  },
  "r546": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6A",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-6A"
  },
  "r547": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6A",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-6A"
  },
  "r548": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6A",
   "Subparagraph": "(h)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-6A"
  },
  "r549": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "825",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "2",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482736/825-10-45-2"
  },
  "r550": {
   "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"
  },
  "r551": {
   "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"
  },
  "r552": {
   "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"
  },
  "r553": {
   "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"
  },
  "r554": {
   "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"
  },
  "r555": {
   "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"
  },
  "r556": {
   "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"
  },
  "r557": {
   "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"
  },
  "r558": {
   "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"
  },
  "r559": {
   "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"
  },
  "r560": {
   "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"
  },
  "r561": {
   "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"
  },
  "r562": {
   "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"
  },
  "r563": {
   "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"
  },
  "r564": {
   "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"
  },
  "r565": {
   "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"
  },
  "r566": {
   "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"
  },
  "r567": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "4",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479041/842-20-45-4"
  },
  "r568": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "5",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479041/842-20-45-5"
  },
  "r569": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "5",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479041/842-20-45-5"
  },
  "r570": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-1"
  },
  "r571": {
   "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"
  },
  "r572": {
   "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"
  },
  "r573": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-4"
  },
  "r574": {
   "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"
  },
  "r575": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(g)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-4"
  },
  "r576": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(g)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-4"
  },
  "r577": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(g)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-4"
  },
  "r578": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(g)(4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-4"
  },
  "r579": {
   "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"
  },
  "r580": {
   "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"
  },
  "r581": {
   "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"
  },
  "r582": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479773/842-30-50-3"
  },
  "r583": {
   "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"
  },
  "r584": {
   "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"
  },
  "r585": {
   "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"
  },
  "r586": {
   "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"
  },
  "r587": {
   "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"
  },
  "r588": {
   "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"
  },
  "r589": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "852",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "14",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481435/852-10-45-14"
  },
  "r590": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "855",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/855/tableOfContent"
  },
  "r591": {
   "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"
  },
  "r592": {
   "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"
  },
  "r593": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(bb)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-3"
  },
  "r594": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(bb)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-3"
  },
  "r595": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(bb)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-3"
  },
  "r596": {
   "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"
  },
  "r597": {
   "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"
  },
  "r598": {
   "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"
  },
  "r599": {
   "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"
  },
  "r600": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "912",
   "SubTopic": "310",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "11",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478345/912-310-45-11"
  },
  "r601": {
   "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"
  },
  "r602": {
   "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"
  },
  "r603": {
   "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"
  },
  "r604": {
   "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"
  },
  "r605": {
   "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"
  },
  "r606": {
   "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"
  },
  "r607": {
   "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"
  },
  "r608": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "940",
   "SubTopic": "820",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478119/940-820-50-1"
  },
  "r609": {
   "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"
  },
  "r610": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "942",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-03(6))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478546/942-210-S99-1"
  },
  "r611": {
   "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"
  },
  "r612": {
   "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"
  },
  "r613": {
   "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"
  },
  "r614": {
   "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"
  },
  "r615": {
   "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"
  },
  "r616": {
   "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"
  },
  "r617": {
   "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"
  },
  "r618": {
   "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"
  },
  "r619": {
   "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"
  },
  "r620": {
   "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)(24))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1"
  },
  "r621": {
   "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"
  },
  "r622": {
   "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"
  },
  "r623": {
   "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)(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1"
  },
  "r624": {
   "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"
  },
  "r625": {
   "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"
  },
  "r626": {
   "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"
  },
  "r627": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-04(16))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477250/944-220-S99-1"
  },
  "r628": {
   "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(17))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477250/944-220-S99-1"
  },
  "r629": {
   "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"
  },
  "r630": {
   "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"
  },
  "r631": {
   "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"
  },
  "r632": {
   "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"
  },
  "r633": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-16(Column A))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-1"
  },
  "r634": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-16(Column B))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-1"
  },
  "r635": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-16(Column C))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-1"
  },
  "r636": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-16(Column D))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-1"
  },
  "r637": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-16(Column E))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-1"
  },
  "r638": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-16(Column F))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-1"
  },
  "r639": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-16(Column G))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-1"
  },
  "r640": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-16(Column H))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-1"
  },
  "r641": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-16(Column I))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-1"
  },
  "r642": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-16(Column J))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-1"
  },
  "r643": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-16(Column K))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-1"
  },
  "r644": {
   "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"
  },
  "r645": {
   "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"
  },
  "r646": {
   "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"
  },
  "r647": {
   "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"
  },
  "r648": {
   "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"
  },
  "r649": {
   "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"
  },
  "r650": {
   "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"
  },
  "r651": {
   "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"
  },
  "r652": {
   "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"
  },
  "r653": {
   "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"
  },
  "r654": {
   "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"
  },
  "r655": {
   "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"
  },
  "r656": {
   "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"
  },
  "r657": {
   "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"
  },
  "r658": {
   "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"
  },
  "r659": {
   "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"
  },
  "r660": {
   "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"
  },
  "r661": {
   "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"
  },
  "r662": {
   "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"
  },
  "r663": {
   "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"
  },
  "r664": {
   "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"
  },
  "r665": {
   "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"
  },
  "r666": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "825",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477351/944-825-50-1B"
  },
  "r667": {
   "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"
  },
  "r668": {
   "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"
  },
  "r669": {
   "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(h)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479886/946-10-S99-3"
  },
  "r670": {
   "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"
  },
  "r671": {
   "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"
  },
  "r672": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "205",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478009/946-205-45-3"
  },
  "r673": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "205",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "3",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478009/946-205-45-3"
  },
  "r674": {
   "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"
  },
  "r675": {
   "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"
  },
  "r676": {
   "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"
  },
  "r677": {
   "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"
  },
  "r678": {
   "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"
  },
  "r679": {
   "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"
  },
  "r680": {
   "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"
  },
  "r681": {
   "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"
  },
  "r682": {
   "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"
  },
  "r683": {
   "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"
  },
  "r684": {
   "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"
  },
  "r685": {
   "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"
  },
  "r686": {
   "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"
  },
  "r687": {
   "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"
  },
  "r688": {
   "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"
  },
  "r689": {
   "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"
  },
  "r690": {
   "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"
  },
  "r691": {
   "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"
  },
  "r692": {
   "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"
  },
  "r693": {
   "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"
  },
  "r694": {
   "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"
  },
  "r695": {
   "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"
  },
  "r696": {
   "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"
  },
  "r697": {
   "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"
  },
  "r698": {
   "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"
  },
  "r699": {
   "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"
  },
  "r700": {
   "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"
  },
  "r701": {
   "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"
  },
  "r702": {
   "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"
  },
  "r703": {
   "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"
  },
  "r704": {
   "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"
  },
  "r705": {
   "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"
  },
  "r706": {
   "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"
  },
  "r707": {
   "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"
  },
  "r708": {
   "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"
  },
  "r709": {
   "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"
  },
  "r710": {
   "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"
  },
  "r711": {
   "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"
  },
  "r712": {
   "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"
  },
  "r713": {
   "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"
  },
  "r714": {
   "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"
  },
  "r715": {
   "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"
  },
  "r716": {
   "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"
  },
  "r717": {
   "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"
  },
  "r718": {
   "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"
  },
  "r719": {
   "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"
  },
  "r720": {
   "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"
  },
  "r721": {
   "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"
  },
  "r722": {
   "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"
  },
  "r723": {
   "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"
  },
  "r724": {
   "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"
  },
  "r725": {
   "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"
  },
  "r726": {
   "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"
  },
  "r727": {
   "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"
  },
  "r728": {
   "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"
  },
  "r729": {
   "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"
  },
  "r730": {
   "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"
  },
  "r731": {
   "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"
  },
  "r732": {
   "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"
  },
  "r733": {
   "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"
  },
  "r734": {
   "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"
  },
  "r735": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "505",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478448/946-505-50-3"
  },
  "r736": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "954",
   "SubTopic": "310",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478785/954-310-50-2"
  },
  "r737": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "970",
   "SubTopic": "360",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-28(Column E)(Footnote 4))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478979/970-360-S99-1"
  },
  "r738": {
   "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"
  },
  "r739": {
   "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"
  },
  "r740": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "985",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/985-20/tableOfContent"
  },
  "r741": {
   "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"
  },
  "r742": {
   "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"
  },
  "r743": {
   "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"
  },
  "r744": {
   "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"
  },
  "r745": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "38",
   "Subparagraph": "(b)",
   "SubTopic": "20",
   "Topic": "805",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-38"
  },
  "r746": {
   "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"
  },
  "r747": {
   "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"
  },
  "r748": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "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"
  },
  "r749": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(6)(a)(3))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r750": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(6)(a)(4))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r751": {
   "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"
  },
  "r752": {
   "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"
  },
  "r753": {
   "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"
  },
  "r754": {
   "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"
  },
  "r755": {
   "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"
  },
  "r756": {
   "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"
  },
  "r757": {
   "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"
  },
  "r758": {
   "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"
  },
  "r759": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "47",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-47"
  },
  "r760": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "47",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-47"
  },
  "r761": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "47",
   "Subparagraph": "(bb)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-47"
  },
  "r762": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "47",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-47"
  },
  "r763": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "47",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-47"
  },
  "r764": {
   "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"
  },
  "r765": {
   "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"
  },
  "r766": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "54",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-54"
  },
  "r767": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "54",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-54"
  },
  "r768": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "54",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-54"
  },
  "r769": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "54",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-54"
  },
  "r770": {
   "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"
  },
  "r771": {
   "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"
  },
  "r772": {
   "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"
  },
  "r773": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "460",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "27",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482395/460-10-55-27"
  },
  "r774": {
   "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"
  },
  "r775": {
   "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"
  },
  "r776": {
   "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"
  },
  "r777": {
   "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"
  },
  "r778": {
   "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"
  },
  "r779": {
   "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"
  },
  "r780": {
   "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"
  },
  "r781": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "91",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479777/606-10-55-91"
  },
  "r782": {
   "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"
  },
  "r783": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "91",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479777/606-10-55-91"
  },
  "r784": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "91",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479777/606-10-55-91"
  },
  "r785": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "91",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479777/606-10-55-91"
  },
  "r786": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "91",
   "Subparagraph": "(g)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479777/606-10-55-91"
  },
  "r787": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)(ii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1"
  },
  "r788": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)(iv)(01)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1"
  },
  "r789": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "17",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480482/715-20-55-17"
  },
  "r790": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "715",
   "SubTopic": "80",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "11",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480576/715-80-50-11"
  },
  "r791": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "715",
   "SubTopic": "80",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480576/715-80-50-6"
  },
  "r792": {
   "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"
  },
  "r793": {
   "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"
  },
  "r794": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r795": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "720",
   "SubTopic": "35",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483385/720-35-55-1"
  },
  "r796": {
   "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"
  },
  "r797": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479908/805-50-55-1"
  },
  "r798": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "810",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "4J",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481175/810-10-55-4J"
  },
  "r799": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "810",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "4K",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481175/810-10-55-4K"
  },
  "r800": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "100",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482078/820-10-55-100"
  },
  "r801": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "100",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482078/820-10-55-100"
  },
  "r802": {
   "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"
  },
  "r803": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "101",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482078/820-10-55-101"
  },
  "r804": {
   "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"
  },
  "r805": {
   "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"
  },
  "r806": {
   "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"
  },
  "r807": {
   "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"
  },
  "r808": {
   "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"
  },
  "r809": {
   "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"
  },
  "r810": {
   "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"
  },
  "r811": {
   "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"
  },
  "r812": {
   "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"
  },
  "r813": {
   "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"
  },
  "r814": {
   "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"
  },
  "r815": {
   "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"
  },
  "r816": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "9C",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480046/944-40-55-9C"
  },
  "r817": {
   "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"
  },
  "r818": {
   "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"
  },
  "r819": {
   "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"
  },
  "r820": {
   "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"
  },
  "r821": {
   "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"
  },
  "r822": {
   "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"
  },
  "r823": {
   "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"
  },
  "r824": {
   "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"
  },
  "r825": {
   "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"
  },
  "r826": {
   "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"
  },
  "r827": {
   "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"
  },
  "r828": {
   "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"
  },
  "r829": {
   "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"
  },
  "r830": {
   "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"
  },
  "r831": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Exchange Act",
   "Number": "240",
   "Section": "12",
   "Subsection": "b-2"
  },
  "r832": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Exchange Act",
   "Number": "240",
   "Section": "12",
   "Subsection": "b-23"
  },
  "r833": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Exchange Act",
   "Number": "240",
   "Section": "12",
   "Subsection": "g"
  },
  "r834": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 10-K",
   "Number": "249",
   "Section": "310"
  },
  "r835": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Number": "249",
   "Section": "220",
   "Subsection": "f"
  },
  "r836": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "16",
   "Subsection": "J",
   "Paragraph": "a"
  },
  "r837": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "16K"
  },
  "r838": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "16K",
   "Subsection": "b",
   "Paragraph": "1"
  },
  "r839": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "16K",
   "Subsection": "b",
   "Paragraph": "1",
   "Subparagraph": "i"
  },
  "r840": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "16K",
   "Subsection": "b",
   "Paragraph": "1",
   "Subparagraph": "ii"
  },
  "r841": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "16K",
   "Subsection": "b",
   "Paragraph": "1",
   "Subparagraph": "iii"
  },
  "r842": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "16K",
   "Subsection": "b",
   "Paragraph": "2"
  },
  "r843": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "16K",
   "Subsection": "c",
   "Paragraph": "1"
  },
  "r844": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "16K",
   "Subsection": "c",
   "Paragraph": "2"
  },
  "r845": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "16K",
   "Subsection": "c",
   "Paragraph": "2",
   "Subparagraph": "i"
  },
  "r846": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "16K",
   "Subsection": "c",
   "Paragraph": "2",
   "Subparagraph": "ii"
  },
  "r847": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "16K",
   "Subsection": "c",
   "Paragraph": "2",
   "Subparagraph": "iii"
  },
  "r848": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "6",
   "Subsection": "F",
   "Paragraph": "1"
  },
  "r849": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "6",
   "Subsection": "F",
   "Paragraph": "1",
   "Subparagraph": "i"
  },
  "r850": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "6",
   "Subsection": "F",
   "Paragraph": "1",
   "Subparagraph": "i",
   "Sentence": "A"
  },
  "r851": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "6",
   "Subsection": "F",
   "Paragraph": "1",
   "Subparagraph": "i",
   "Sentence": "B"
  },
  "r852": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "6",
   "Subsection": "F",
   "Paragraph": "1",
   "Subparagraph": "i",
   "Sentence": "C"
  },
  "r853": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "6",
   "Subsection": "F",
   "Paragraph": "1",
   "Subparagraph": "i",
   "Sentence": "D"
  },
  "r854": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "6",
   "Subsection": "F",
   "Paragraph": "1",
   "Subparagraph": "i",
   "Sentence": "E"
  },
  "r855": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "6",
   "Subsection": "F",
   "Paragraph": "1",
   "Subparagraph": "ii"
  },
  "r856": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "6",
   "Subsection": "F",
   "Paragraph": "1",
   "Subparagraph": "iii"
  },
  "r857": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "6",
   "Subsection": "F",
   "Paragraph": "2"
  },
  "r858": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 40-F",
   "Number": "249",
   "Section": "240",
   "Subsection": "f"
  },
  "r859": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 40-F",
   "Section": "19",
   "Paragraph": "a"
  },
  "r860": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 40-F",
   "Section": "19",
   "Paragraph": "a",
   "Subparagraph": "1"
  },
  "r861": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 40-F",
   "Section": "19",
   "Paragraph": "a",
   "Subparagraph": "1",
   "Sentence": "i"
  },
  "r862": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 40-F",
   "Section": "19",
   "Paragraph": "a",
   "Subparagraph": "1",
   "Sentence": "ii"
  },
  "r863": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 40-F",
   "Section": "19",
   "Paragraph": "a",
   "Subparagraph": "1",
   "Sentence": "iii"
  },
  "r864": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 40-F",
   "Section": "19",
   "Paragraph": "a",
   "Subparagraph": "1",
   "Sentence": "iv"
  },
  "r865": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 40-F",
   "Section": "19",
   "Paragraph": "a",
   "Subparagraph": "1",
   "Sentence": "v"
  },
  "r866": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 40-F",
   "Section": "19",
   "Paragraph": "a",
   "Subparagraph": "2"
  },
  "r867": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 40-F",
   "Section": "19",
   "Paragraph": "a",
   "Subparagraph": "3"
  },
  "r868": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 40-F",
   "Section": "19",
   "Paragraph": "b"
  },
  "r869": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form N-CSR",
   "Section": "18",
   "Paragraph": "a"
  },
  "r870": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form N-CSR",
   "Section": "18",
   "Paragraph": "a",
   "Subparagraph": "1"
  },
  "r871": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form N-CSR",
   "Section": "18",
   "Paragraph": "a",
   "Subparagraph": "1",
   "Sentence": "i"
  },
  "r872": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form N-CSR",
   "Section": "18",
   "Paragraph": "a",
   "Subparagraph": "1",
   "Sentence": "ii"
  },
  "r873": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form N-CSR",
   "Section": "18",
   "Paragraph": "a",
   "Subparagraph": "1",
   "Sentence": "iii"
  },
  "r874": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form N-CSR",
   "Section": "18",
   "Paragraph": "a",
   "Subparagraph": "1",
   "Sentence": "iv"
  },
  "r875": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form N-CSR",
   "Section": "18",
   "Paragraph": "a",
   "Subparagraph": "1",
   "Sentence": "v"
  },
  "r876": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form N-CSR",
   "Section": "18",
   "Paragraph": "a",
   "Subparagraph": "2"
  },
  "r877": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form N-CSR",
   "Section": "18",
   "Paragraph": "a",
   "Subparagraph": "3"
  },
  "r878": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form N-CSR",
   "Section": "18",
   "Paragraph": "b"
  },
  "r879": {
   "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"
  },
  "r880": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v"
  },
  "r881": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "1"
  },
  "r882": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "2",
   "Subparagraph": "ii"
  },
  "r883": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "2",
   "Subparagraph": "iii"
  },
  "r884": {
   "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"
  },
  "r885": {
   "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"
  },
  "r886": {
   "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"
  },
  "r887": {
   "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"
  },
  "r888": {
   "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"
  },
  "r889": {
   "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"
  },
  "r890": {
   "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"
  },
  "r891": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "2",
   "Subparagraph": "iv"
  },
  "r892": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "2",
   "Subparagraph": "vi"
  },
  "r893": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "3"
  },
  "r894": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "4"
  },
  "r895": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "5",
   "Subparagraph": "i"
  },
  "r896": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "5",
   "Subparagraph": "ii"
  },
  "r897": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "5",
   "Subparagraph": "iii"
  },
  "r898": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "5",
   "Subparagraph": "iv"
  },
  "r899": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "6"
  },
  "r900": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "6",
   "Subparagraph": "i"
  },
  "r901": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "w"
  },
  "r902": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "w",
   "Paragraph": "1"
  },
  "r903": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "w",
   "Paragraph": "1",
   "Subparagraph": "i"
  },
  "r904": {
   "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"
  },
  "r905": {
   "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"
  },
  "r906": {
   "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"
  },
  "r907": {
   "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"
  },
  "r908": {
   "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"
  },
  "r909": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "w",
   "Paragraph": "1",
   "Subparagraph": "ii"
  },
  "r910": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "w",
   "Paragraph": "1",
   "Subparagraph": "iii"
  },
  "r911": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "w",
   "Paragraph": "2"
  },
  "r912": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "x",
   "Paragraph": "1"
  },
  "r913": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "x",
   "Paragraph": "2"
  },
  "r914": {
   "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"
  },
  "r915": {
   "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"
  },
  "r916": {
   "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"
  },
  "r917": {
   "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"
  },
  "r918": {
   "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"
  },
  "r919": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "408",
   "Subsection": "a"
  },
  "r920": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "408",
   "Subsection": "a",
   "Paragraph": "1"
  },
  "r921": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "408",
   "Subsection": "a",
   "Paragraph": "2",
   "Subparagraph": "A"
  },
  "r922": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "408",
   "Subsection": "a",
   "Paragraph": "2",
   "Subparagraph": "B"
  },
  "r923": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "408",
   "Subsection": "a",
   "Paragraph": "2",
   "Subparagraph": "C"
  },
  "r924": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "408",
   "Subsection": "a",
   "Paragraph": "2",
   "Subparagraph": "D"
  },
  "r925": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "408",
   "Subsection": "b",
   "Paragraph": "1"
  },
  "r926": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Section": "106"
  },
  "r927": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Section": "106",
   "Subsection": "b",
   "Paragraph": "1"
  },
  "r928": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Section": "106",
   "Subsection": "b",
   "Paragraph": "1",
   "Subparagraph": "i"
  },
  "r929": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Section": "106",
   "Subsection": "b",
   "Paragraph": "1",
   "Subparagraph": "ii"
  },
  "r930": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Section": "106",
   "Subsection": "b",
   "Paragraph": "1",
   "Subparagraph": "iii"
  },
  "r931": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Section": "106",
   "Subsection": "b",
   "Paragraph": "2"
  },
  "r932": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Section": "106",
   "Subsection": "c",
   "Paragraph": "1"
  },
  "r933": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Section": "106",
   "Subsection": "c",
   "Paragraph": "2"
  },
  "r934": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Section": "106",
   "Subsection": "c",
   "Paragraph": "2",
   "Subparagraph": "i"
  },
  "r935": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Section": "106",
   "Subsection": "c",
   "Paragraph": "2",
   "Subparagraph": "ii"
  },
  "r936": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Section": "106",
   "Subsection": "c",
   "Paragraph": "2",
   "Subparagraph": "iii"
  },
  "r937": {
   "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"
  },
  "r938": {
   "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"
  },
  "r939": {
   "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"
  },
  "r940": {
   "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"
  },
  "r941": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-T",
   "Number": "232",
   "Section": "405"
  },
  "r942": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Securities Act",
   "Number": "230",
   "Section": "405"
  },
  "r943": {
   "role": "http://www.xbrl.org/2003/role/recommendedDisclosureRef",
   "Topic": "450",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "10",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483076/450-20-50-10"
  },
  "r944": {
   "role": "http://www.xbrl.org/2003/role/recommendedDisclosureRef",
   "Topic": "855",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483399/855-10-50-3"
  },
  "r945": {
   "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"
  },
  "r946": {
   "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"
  },
  "r947": {
   "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"
  },
  "r948": {
   "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"
  },
  "r949": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Subparagraph": "(b)(1)",
   "SubTopic": "10",
   "Topic": "606",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-13"
  },
  "r950": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "18",
   "SubTopic": "10",
   "Topic": "275",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-18"
  },
  "r951": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1B",
   "SubTopic": "825",
   "Topic": "944",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477351/944-825-50-1B"
  },
  "r952": {
   "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"
  },
  "r953": {
   "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"
  },
  "r954": {
   "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"
  },
  "r955": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "205",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483504/205-10-50-1"
  },
  "r956": {
   "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(20))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r957": {
   "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(26)(c))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r958": {
   "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"
  },
  "r959": {
   "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"
  },
  "r960": {
   "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)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2"
  },
  "r961": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "16",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-16"
  },
  "r962": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "28",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-28"
  },
  "r963": {
   "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"
  },
  "r964": {
   "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"
  },
  "r965": {
   "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"
  },
  "r966": {
   "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"
  },
  "r967": {
   "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"
  },
  "r968": {
   "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"
  },
  "r969": {
   "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"
  },
  "r970": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "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"
  },
  "r971": {
   "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"
  },
  "r972": {
   "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"
  },
  "r973": {
   "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"
  },
  "r974": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "15",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-15"
  },
  "r975": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "18",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-18"
  },
  "r976": {
   "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"
  },
  "r977": {
   "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"
  },
  "r978": {
   "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"
  },
  "r979": {
   "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"
  },
  "r980": {
   "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"
  },
  "r981": {
   "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"
  },
  "r982": {
   "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"
  },
  "r983": {
   "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"
  },
  "r984": {
   "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"
  },
  "r985": {
   "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"
  },
  "r986": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481830/320-10-45-1"
  },
  "r987": {
   "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"
  },
  "r988": {
   "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"
  },
  "r989": {
   "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"
  },
  "r990": {
   "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"
  },
  "r991": {
   "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"
  },
  "r992": {
   "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"
  },
  "r993": {
   "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"
  },
  "r994": {
   "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"
  },
  "r995": {
   "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"
  },
  "r996": {
   "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"
  },
  "r997": {
   "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"
  },
  "r998": {
   "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"
  },
  "r999": {
   "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"
  },
  "r1000": {
   "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"
  },
  "r1001": {
   "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"
  },
  "r1002": {
   "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"
  },
  "r1003": {
   "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"
  },
  "r1004": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-1"
  },
  "r1005": {
   "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"
  },
  "r1006": {
   "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"
  },
  "r1007": {
   "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"
  },
  "r1008": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-2"
  },
  "r1009": {
   "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"
  },
  "r1010": {
   "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"
  },
  "r1011": {
   "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"
  },
  "r1012": {
   "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"
  },
  "r1013": {
   "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"
  },
  "r1014": {
   "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"
  },
  "r1015": {
   "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"
  },
  "r1016": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "450",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/450/tableOfContent"
  },
  "r1017": {
   "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"
  },
  "r1018": {
   "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"
  },
  "r1019": {
   "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"
  },
  "r1020": {
   "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"
  },
  "r1021": {
   "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"
  },
  "r1022": {
   "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"
  },
  "r1023": {
   "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"
  },
  "r1024": {
   "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"
  },
  "r1025": {
   "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"
  },
  "r1026": {
   "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"
  },
  "r1027": {
   "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"
  },
  "r1028": {
   "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)(i))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1A"
  },
  "r1029": {
   "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"
  },
  "r1030": {
   "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"
  },
  "r1031": {
   "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)(iv))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1A"
  },
  "r1032": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "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"
  },
  "r1033": {
   "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"
  },
  "r1034": {
   "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"
  },
  "r1035": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "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"
  },
  "r1036": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r1037": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r1038": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r1039": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r1040": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(ii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r1041": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(iii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r1042": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(iv)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r1043": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(iv)(01)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r1044": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(iv)(02)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r1045": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(iv)(03)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r1046": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(iv)(04)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r1047": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(2)(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r1048": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(2)(ii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r1049": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(2)(iii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r1050": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(2)(iii)(01)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r1051": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(2)(iii)(02)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r1052": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(2)(iii)(03)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r1053": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(d)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r1054": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(d)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r1055": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(e)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r1056": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(e)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r1057": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(f)(2)(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r1058": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(f)(2)(ii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r1059": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(f)(2)(iii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r1060": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(f)(2)(iv)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r1061": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(f)(2)(v)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r1062": {
   "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"
  },
  "r1063": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "12",
   "Subparagraph": "(b)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-12"
  },
  "r1064": {
   "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"
  },
  "r1065": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-2"
  },
  "r1066": {
   "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"
  },
  "r1067": {
   "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"
  },
  "r1068": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-3"
  },
  "r1069": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-6"
  },
  "r1070": {
   "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"
  },
  "r1071": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "805",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "25",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480060/805-50-25-1"
  },
  "r1072": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "805",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "30",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480027/805-50-30-1"
  },
  "r1073": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "805",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "30",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480027/805-50-30-2"
  },
  "r1074": {
   "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"
  },
  "r1075": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r1076": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r1077": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(bbb)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r1078": {
   "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"
  },
  "r1079": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(bbb)(2)(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r1080": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6A",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-6A"
  },
  "r1081": {
   "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"
  },
  "r1082": {
   "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"
  },
  "r1083": {
   "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"
  },
  "r1084": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "4",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479041/842-20-45-4"
  },
  "r1085": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-3"
  },
  "r1086": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(a)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-3"
  },
  "r1087": {
   "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"
  },
  "r1088": {
   "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"
  },
  "r1089": {
   "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"
  },
  "r1090": {
   "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"
  },
  "r1091": {
   "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"
  },
  "r1092": {
   "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"
  },
  "r1093": {
   "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"
  },
  "r1094": {
   "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"
  },
  "r1095": {
   "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"
  },
  "r1096": {
   "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"
  },
  "r1097": {
   "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"
  },
  "r1098": {
   "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"
  },
  "r1099": {
   "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"
  },
  "r1100": {
   "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"
  },
  "r1101": {
   "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"
  },
  "r1102": {
   "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)(17))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1"
  },
  "r1103": {
   "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"
  },
  "r1104": {
   "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"
  },
  "r1105": {
   "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"
  },
  "r1106": {
   "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"
  },
  "r1107": {
   "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"
  },
  "r1108": {
   "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"
  },
  "r1109": {
   "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"
  },
  "r1110": {
   "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"
  },
  "r1111": {
   "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"
  },
  "r1112": {
   "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"
  },
  "r1113": {
   "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"
  },
  "r1114": {
   "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"
  },
  "r1115": {
   "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"
  },
  "r1116": {
   "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"
  },
  "r1117": {
   "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"
  },
  "r1118": {
   "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"
  },
  "r1119": {
   "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"
  },
  "r1120": {
   "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"
  },
  "r1121": {
   "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"
  },
  "r1122": {
   "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"
  },
  "r1123": {
   "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"
  },
  "r1124": {
   "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"
  },
  "r1125": {
   "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"
  },
  "r1126": {
   "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"
  },
  "r1127": {
   "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"
  },
  "r1128": {
   "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"
  },
  "r1129": {
   "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"
  },
  "r1130": {
   "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"
  },
  "r1131": {
   "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"
  },
  "r1132": {
   "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"
  },
  "r1133": {
   "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"
  },
  "r1134": {
   "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"
  },
  "r1135": {
   "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"
  },
  "r1136": {
   "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"
  },
  "r1137": {
   "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"
  }
 }
}
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>ZIP
<SEQUENCE>105
<FILENAME>0001537435-25-000018-xbrl.zip
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
begin 644 0001537435-25-000018-xbrl.zip
M4$L#!!0    ( .!B<EJ+1YNX@0,  ,X.   3    :FYH;&5T=&5R<F5L;V%N
M+FAT;=57;6_C-@S^OE_!I5NO!9S6=E[KY (4=S=L ZXW= 7Z<9 M)A9J2YY$
MI^?]^E%V@B;-7GH8L$O]P; E47Q(/J2H>4YEL9CG*.3BF_FW_3Z\-UE=HB;(
M+ I"";53>@7W$MT#]/N;5>],U5BUR@GB,![!O;$/:BVZ>5)4X&*[S_RR^Y]?
MMDKFJ9'-8B[5&I1\VU/3<'J51N/!U4"FP^$DO8J'DPBS:#09BW08CG\;C'LL
MR^L[(4=-@6][I=+]'#V 9!)7-'M4DO(D"L/O>^VZQ7QI-+$VR\+=9[?'P4Z$
MGZDO"K722<9PT?8ZV>U\9@ICDY.P?69^IK\4I2J:Y,V=*M'!#3["K2F%?A,X
MH5W?H57+;J%3?V 2>7SM[V,'>,C[%$KCUH H&C'JGTVNX>8"?A3D3&7JPKA]
MY/]DU8OF_F^+/@J;Y1!'@>?(\ A Q1Z4O8#K5&FA)=P*O4*7!_#NPZ<C@7>'
MF5FAAI]T=G$DD(8C^$%91W"]QF/!="\*RD49P,=K ";7*#KR?/"@8>>YQ=.3
MT70&\.$SH7;*:#"6JZI>H^W^EK#EPB_6E,HY8QNX,83PBLN"=\-[%':;@JT3
M7@'FW=#=Y<I!@<1'!61&+Y4M'90-B)5%;$].,IO@?I%E>P>2TI)W2@;CBK["
M>>1-/HO. 3TY)5".4 JJK:(&)#<%GIU^<+=:'=!4:>^5I5@SL67;27S*R*3L
MM2ALCX2!7^*W,=Q),!T*J*S2F:KX2Y2F9IM9SW>C, S85#CS2T]/IG$<SI[I
M:D>CV3FD#1B-T##% H;\X#N70_3/<(PX6E<SGW^O.E[Q.8@LPXKVPY*9LN1Z
MXLAD#R <5*)I2<J^7]9%L5-HO!>CR>QIB4FY+1+DRU'-]MG6E<]<'_@<<,J1
M=_6&%IK=CWQ@/.:FX+^Z],[F.9?[<9#(J<,-'#."X\6>5-(+GZGSC@TU.>+:
MX,=V",$\5+X]\QL;_5=00% [3.Q6KR[;JZ9^1F+JLQ/P]YK)$'CU9VJC5O!:
ML4+(N/':J,X0*D;>PH8E\V/KV#V?2F;6AF:4*TM-7XK&"RHC_2XLQRI;]9O4
M>0+V=^?IRQD73<.O1KE?.3@<D*()7G/BP!<^IR=#3I+V#?^U:3^VB+[$GBVF
MW>M7Q3GCZT3";.""L<:#"]E6*C5$IDS")Q&1.E/4="CR+W>XS;N[3UZV]]@_
M 5!+ P04    " #@8G):4J:W#Z.8 @!,8QD $0   '1G96XM,C R-#$R,S$N
M:'1M[+UI=QI+MBCX_?Z*;%75M;T>8 :-]CE^"\NRCT[9DEN2R[>Z5Z^W@LP
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
M=#Z?K?2]ZZC6U0/TTOC=NKI_5N966&2:6G-=G3JK<2LL%/2E]>B<AFXTD.8
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
M7@4&,GWGZEO%N83_=R^S.(3_;XFLZK__TCC8)0,8H\I'RTF]G]7&2D:#3A0
MF$'?UWTHM?AD/3=*"P+$%,7Y(7&,&S%B07S#MGB(?_I <4.!*$%*$KX#BY%1
M 6"3 KA%$( >QV7NJ4K(L203<3"%3'S8JK\E_:69I/T H$R8<,4<VRR/PJD-
M51DLH@V22.MG!%3RU:A0M$IE]K"=HE8* )ZH$'>4Q4OPTEX;YNNAB@+83^-;
ME?M0^_64_UDPX^!"+-0558::I>77G-.N.D1;]P?Y$CI$R46[J3(N*_#C2E(H
M\5!<A/GVQ#=J3CL7<^RYXEWQ2\E8B*,;1W=R)"LD]UN2GPG3B0$$) )QLT&
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
M>!M@;N+V(]TE+0O1$9*01DVX$Z1]4/W!E&&4'(J$D$FJ^P?T3\!^*G!73AC
M?%"C,S_PV'72C2*/+G4DO%STR#_CLKU<4;XR^'!J>\KLYP,!>,E.2/P(F,._
M<-DW_F" VQCBZBMH"H ]3G<-X&V<>F^]!3 L0HL7S&L7/@E:"MR(Q@/V@U5T
M+*S:''5_+XYN\"NYI5%S4(^.93?V>QKXM@< +44Q' 8^^IMB'P@ O8! :[8F
MA-==8;6QT4<%> 5PAIT G"H.?%KRGCPPU8L@H%42;!4XR:1:4]*\EP94EV[R
MP<0Y5B// P"[9*1;_EW F @)QF:RQ)O'W(=PAKVL<.8]:LB@KFH;$GBE2Y 7
M";!GX,GH2]*TJ.80D!8,YPZGW $C?B"!,M"9-.:M!!09PL?\3@#6MX/AA8'X
M5T1UI;"%(B]&-,)]*(\$K)60A;SSN'/TAJ/UK]U&:H<I<POXV#&<)7"*T!<5
M>N";[]W@ [A1_/LLBN%_1)+6C ,#:]:&: .B-[15:=;KR!'0$Y_@GF"-[-ZB
MFSL2?9:LA2&!('$% _37MO:<D10Q4,JZHN.<DF*BFF<UD@+YDE'7C?GN(L8E
M/._"UI*U9ERQN)26+*B#H!=**\L5K7>3\H%W8+,MX&2P/L FZ?9#DE' 1;OD
M/XBR7I_N8[8\RK5K"L8F-FK;B'H<A2%V\7(ST%H^ ^!\#W[])I)$N/TLD2FN
MY1O@H-]#=Q2"[D^<&3^J6'XO\J5%0'AI!&\4H?#$^J+BO6?>3MA!Z;)/LM5
MGV1SMT*@GT0%<XC3\( I> CWW (Z@%P?.<W&GHF"$50;E?KN?E'O( :!_NP$
M1R\@!YSZ\A>G/4Z8+"5@#I-FE$$-\@&&^+-%X]J%/9KBP%;^:Q7914^N">NR
MD&#WCY*B3S!1YC9/G->Y$&1Q"3<3H33J^,*&$D]O:B2"U<WJ-8/(DP%"@Q0V
MT@K9#PX<<<SI#7NR7-%&U;S?$PV@34$=E^8MF'<W[I].T,TM./@)/ \?$DXH
M>Q&HQG@^"$;07.P5Y&Z+S=0![^1T%$/@D$MS+_<*62%<':N/)>KH4O=^!XP!
ME.FI($^1\34JC:,]YY<?1("2+#HURJ(E)H:"M$J*W4WAAH@!AWMU"XO#\8<4
M5[WGL$J3[?9,.6'3S[UQ=QK=-B.N7$E5LR20[7RXD A1H.1K&404Y5N+1+$Y
MI?\_,"GZVKEDT43-@-"&16;0UH+*J=(<&N>8, Q47V86?.<F\O#ST/DL.W&&
M"D7SD!CX7@5=G@0 ,@9 $(H'H$8B7<%7]U)$UJM5$;YDE!%FEZQ*L(@'9JXC
M[9^N;G,%EY*%\$"8Y WW+CAK7J.<+GPI7YK^)NL5XU?!:H9-<:P!@ZPW$:LA
MG(JBPQKD#%*/WL#"'##912?PDSX\V\F\GAJ$/#"0P8XRUWD,'%-6\B ;.1U$
M O(0\Z)D%QY-2;<A!065O D03-TV:!H6:)([=D@)-]96)$?3S>1FK<+@<:',
M=3S9]4%B8FY-@@.:1KD:YW1D>H,NAHSWQ1_+?15T(T7V=:Z8@5K:MS?M^0GU
MW^!E#.V9SU8>E7,-$G+ /Y,C)D_^,Q_G$S3?G1'28+OZZ*<A(";41XS\B=>
MN'@K:Z>X-L[OX7P?]"A&H1E?1=#QE9&61UHIC<=:;0UG6AM#+)UV1C<*?CT<
MH"W-UDA7O74#L >NT<$(5,NV'+G>C$H[%6,>))HH2]&S2Q_Y >=-7=#87Z6]
M46$45A_S?3QM95P4WFREY1!6YL=&&W^6;4];E^-W];<%O VDX'C(2*V4>56
M8I)57^OS3'ZP!J G_"I0FQO[0TU74\\=R# $$POQ*I I^^KAMW_C?,2NSYX8
MU%U1/XXEZ*D=1.@N\&6TXQ4V=3,T:T":X%^QC+H5,E.&H]PW> ,TTO4I52=Q
M5-VQ<W14JS=TO.DXBV-<T84$WIUB+@Y5*QY6_ZX>-#[.?!@[+??DUJ5I3S3N
MW>>AK]%4F<(.?"NG"U<+&RSLR5I?HUYKU>FF-'JJ?Z*,ZD@[2;*!P8^V[,')
M*S/>>(F^66Z;=FY,;Z;C#%01T"T 73F-K]F:HH>$EC!ZO6- LO-&S16;!D65
M=*>](GB+T41L'QG3"K\B9TTH*GHARQ:=\%>X"A(*. XWFBM3U!XP#+>R4@^7
M[7;,G4&5(@RU^#=0!*":4H-8->H;<%?._!C=?V<^F]*YB@<8U![&?N T- (A
MQ[)N=7",A?1JP/_1;457];+&5B7PJ5BR:T A1>CI Z<?7K%PX@L1*(0]G?P2
M^Q3-1=*.'3)_BPM3;K/IX+D3*>=V%=?K4Q.Z&+)J@YX!^[6$;VDMWP\Q)16C
M!%G"+C)> [JW5#P 7FBDPE#&-/0GY,@?I4),#VQPA#0(.(2+YT$9T7U:"B&/
M\_KPC?J:!,$8C;!!FZ53FATKK9)FC)#^//Y5R\'MM-/\8WC0>O?CGS108+T[
M1"7)1)0I:D,GVW7^VCBH5X!^""0BZ<,G0*FAEX,<S!"P\'YR/?50B4A)Y4IA
M_VPA* 4X!MO;OV:M."N@FU)5\F3UO[;J_$6MNPL+L^%Z?F9DL?!;Z/@LZ$T[
ME<UT3]JFK7%-:BN3,IR9J@?8Y-,K,@/B )["#K1X7C< 0S -2CDRIX"QZ.Z&
MM^VT\=4LGU@]-#_H@#D2&S.#5/Q"O#"$-KLQ@W8(*FV*/?F$:6"Y<.-S1HT'
MEDN\([3W!QI\G(X WK?.Z];^FVD>U033(@K! +WXC<6G;\)"I7EQ28$4+$@
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
MCP?SC'U.Z+%,6?1;DWK*,>\AINTFY$'6?6TIL;@R8<)5IC$ILB8U(( QQ50
MKA522A6"I<"*7%6SKSIS:'ZKIEQO:+4T'H?5,5!R*@(U(!D&V*85I>*($K)>
M-_80A,VZ^N$-G@C*("S98$X8L\Z./R)J ;^W7\"Y:]>,EN3BB ?4H -9IDY4
MJ)CV(KIW(N4,:C_GD-HU8HJ;H&:@>$?"AY; M0#=#SI\A[.%$:N4(N]\QKMP
M00E] [5\"UD2JT^$,CH0NT:^#+P$$^R<!)4;20UDM97@%.&7Y^[KJ$\"FCC%
M?'(8F_V@5S0;</L.Q^6+L:2\.%"?_= ?^/_!C03DG@'=6F7%W^H+M+;QI<%&
M_\EK%K&T+)2)Q7+/)" T4O!5]U,V3.SNT $EC)!W Z'&?].20:4(*->QZN8,
MP8Z95$WK5[4IVVI4](5=G5="6LUZH]N0RPT9QES81S5-E?OXJ[%.,W54(2(&
MH"7JCD"36(J.-'G-#]J'J%KR4GQ)U4];#C3MLGN5L"/0<N]/Z9@LK>8E;,)J
M?#:NOR]_?,E;**L  K)S6]NCBA+48+D%-/ODB)'[5&5@]=TEAFY46]7?E8CC
M@7TCQ'KDT<R*> 5*/6$LQ3\5YK$%:Y>]\2>K)"6ISF6R%]*4CD28#W^KTUT[
MDED,;%[' L<(#(&MNQ'IC@=K*T8>';[[(J,\N'N%X 9XKBD0'NJ<3((CC.QD
MDLCN8 24?9$EB>X_].,7!<4J>)-R%GWS/0^0Z82:$%WIID9QWC3!))O;%I^8
MS->Y$3'%JUFUF98E'DUM?W&IO52*\LD(]/PNE0AQ'S)5A4@TGK?@4RND=FK6
MTMC6\W)^;PKTIK+"FO,'L*=K9% W=BP]P2]J6-A=PQD@\*$!.A35YHMWF+U-
MKSY+K$V0H6HG:( ]-^V5]%'MJ*0X/JBH?*B8%QH-P##3EG.A2V&AWR8UM/)_
M2=T,C65US=:'M.*C')#Y&7/=%Z%4 1-0=9U8:L6@!-RNL,XZX; +1)U.04'"
M(/5-W\#?'7705<R*,>[\%P5SM::!'LR0J_ 2R\^,_P45(31# :XCY,?<J4OY
M3=5F@:]ZK (2G'&WT6 0>=QL;DUYQZ,9Z)6 5W8WDF5.Z_<&,MW330,][,<(
MD@.+.](^==#27('2L4 :1TG&7>:.^QA'8+0^R4#-1]5"%0G'7/3D153PB5E
MV PQY7"<QEQVV#.PN>*5\X<"PT2I#YAA[=M&)0^<;FN;H;"T#(5GM'+FCN@R
M+_\N8B!JRH[?1-9U'CKG;AIAYZ6CN^IE0RPMP)9AIA3=JM#@A '!2LN?43]T
MSD#Y$6D"ZG(61*J^6\2!<U%SOLH;'^=>G)Y6^!FA- +E]DWZP"[[4>!Q[$6E
M9%6FU#)^B\>^,M$THLME"VPH921^LR'^^Z\-+E4 : ;&W8;OH]7-]J:_[G$1
MG2J"!-/7IY;0P()5SUZ[9D7?3;6E&MR-N@7O3A3'H#!ZYE96X29V2:7]5!8H
MT#]5):<5K!,38C'7DXZ*YWSI(2+"=>-,38#9JS6:?R-7"]BEV8#6PR[8EI7@
M;Q8S?1=3E\: X-*>QZ^NOC^^.A6#,.52A&%_C$'%JI<R'>&XAVSAT]AK%Q<W
M>0) BY(K*E,2Y2GKA'@[:;O*/5C1X>7)N\;>N4>+MV;*'$Z#[R1$%0H^\9AW
M:WL'!4!N*.?Z4X1<E[G+0!^K" =4\%,+K.@P\2E-5,73T$\H1CJ6V^=&&E*7
MXH(%4)DD[0I[?^-4=<$)M!TZ!>&8?1)3R]O/H F P(K<7^PS)FOK6BV"\TG4
M-Q+Z'C51R0B-\ 9^VXW*5N]([1VB/1/6F"N>1'*@?%7 8CAVW^"X7C@F862F
MC'U\_3K-3G7W5J7/*@V#/+9]&I_$6U-+\XK1]'14]<#\0K<9^9#\*#;6H&K1
ME^]V?1U+LQ<1'UK(:G&N,=@KR3HN 2C3$9G5) ]B?PJ IS_Y+GB,^+SJKKA/
M$:VQ]CD6O8Q_<0:J23395.:@&Z8*CK/0PJ?345)^0GJ=O+F?EO"&%9#3)E*3
M*7=M-&H[4_3T'8U&<]:T/@Y6K94U7#R_Q@0V>!=L%V,3CQC/6]Y#/B\X*<B-
M,LLH,X[2F$E:.EEQL;.L:L6&[/HCIC^>&E+TE!%%M3O:.NMO+:H'\_UC8IXR
M'Z8DHYX-*FPB)SRW<8H#F/EAWC/HEHQ650,9C\W.R"?+<FU#9&>FJ 0RMO9H
M[.,P&PQ-R#8CQZ5.(\8 J@H:%)SY$<FV+F D5@.J_#::3,'N_7P$JLXDU*F
MYU9X&#E"+Z;9S)S'<'CX-VO(JYW)H1N!6W4-%/4Q(Z=]5BMVZW_#V_?J?RO4
MCG/,>RPAY_67/[Z\L2M18UE(O0BZ'&P="^6H3Q>W,A5*!&%#MGEHS15YGE.>
M9JBPH,)J%!^39Y&\>5.-&\87@C<<#698Q1FUWKLP&9MG*BSS!3=]<0:;QN)>
M-;S3)#V2@J:2!!$\0W\H$5\Q!ST67-&(HTDWE0JMX%65,A/&"Y_GGUVL>I0=
M__'=-)I;P!SCR@(&&=\SPUB-S7G<)..'AA:;E^M*\TTU%Y5YHU0072."-YHA
M2?/,;"W)_,P'1Q<V]IYM=.$]2Y@^J!#Q,$^67\KJ#O!+,RQO(@R'&%W=K2%\
MT<)&*:,.MP,$C"] L#8.=M\ON[?DO2>K)V%32O>Z0G"5 )S6ZXJ4#)6@<*?Z
M\+Y$S&)MIIO./<O4:&.KPFU:V?KA-A>H<IF*+?S),"@,8]3E*X6I]/<HNUN\
MW^)]V?'^@5JM]U8M7%5U/YB@ PI33VK/6U)8!2F N90L9WSU,Y#"JA1$.M1)
M3+][&"\W]?)C[+J3ROQ&E?.KB<)R?*)#IS-2QA2-@*]L:>(9:.)' . 7ZTH0
M*Y4-N7M1U2;Q1%;X?&\TMR^^E*Z.NV>@:V.[8#46+2#CQ#0]^_+J]+Q0R'*]
MLF]MS!]Z12V^)B:J5^X8IUZY9Y9Z9:9!Z@\-1F?G<.[;G6@OI"K6+:#=]*/[
M@6#&V!2\RNP*]$W1(/=$P:"I[FMB@<,:T3ZMS&C:S'*]#Q*)I9VLGC=T52]F
M78Q"ZM1/CB!($#%'\(11Y=MTZWLYPNXVW?JQZ=:EZ0!7C"A:35U5;3O&#?15
M71(&_,GEXF-,RL'AO%;_,N7YIS@^UTET@*T,)/>2+'R.JD"3(4[9Z 2;&W#*
MQ8,6D,QD;49?9+B&=VG=F$.%UOT#;.>BVBA@D52UAST^K%".:L;B)[IADVIZ
M66B0:Y6.LI*N5!?Z7"H'E-2A148_&_@>-2; WL3(8NTZ=%69;5Z!N;$\6XT2
ML4P>@UW:2_6RV*/<O%N7B*$YH4)..BDH3_G*UZ7[YJ@HMA7(XB0Y2K/@A^E7
MCH91;.P_=LDY6C-V")R+U'C%)E6D4$NN2^ZX<8--0KI'S5A/<SN0R^5$UNM0
MP,J49S": ^*2]PE1RIDVG.5<C:.,!A.R!G!'5;PE^XT^8&D(K&<HW6%CB?#X
MC^_%2#KG&?&(/,I <%-NI01$8OGKN:=!JI(_J0A;=7'BNGG=N4+WDZ.)3%@O
M@?7B4SM3)]1NS<)"5 3#7H"]W^/>N.(<Y3TK<545;J]$B*D;NJD^%Z;A;19W
M$,8R34T?)0PAAYY0M?(#P#2:N:USF73=_'(LJ-E,8F>E_HR+'$ X>,OP2Q)1
M@;SF0G^4CV/=ODP87T?<\=S5;'C*TZ#R/L>D58PIQ,B[=?K $'0DI<:J- )N
MG/RB#^82>9NND52IA0.NK.8F;%A)J5-WJ/=\/%*E/I:E0IU'X$5\2#[7;U\"
MVL,YALXQCM^,XM 7SHGG)Y@]]1UD5!=[7:D*9]W\JE),3N7;\?.Z93I_^TQW
M-/M";2FZ8^,N7NYQ?LP38?"_UKGB$,"$1L]Q37<XJ5(2@<#AIWT@2V7O,84P
M2Q4._%=WN]6M(BM6KE<4PG\:>]CK)N/)M]@E5W;'&*'JN::;Z=FYK(97DT^
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
MZ#EL%;#'E5R>X[.C>'Y3WH5FG%DJT3TJI)E:N21Y8R?4,VG2@BM5<4$GC@1
M@(L*5&B80HN4',#3F-U^1(&S0J(O6G[I:"B9]O.,7CNEIV+Z0\0A=B]/U P2
MQ:O)9IU0[50,5;O(,B07<G%0D5[7]'_+\!:5K5,AW.U$2+I64B/E6\3DC[,T
M;W@5"@38V%'];]3DG&4A\;3T)JIVJ05$+DIS55]P':S]-NZD3284*^K<E\SY
MDMO<BG>JV'_D<T83!I<R[F"'/*1O5J!SPG6W,PHD W/T,>R>J@Q[%(85;LXC
M;RDP!HAE5L5,+?83G!26)!&P3M,BT+!T>'N8V%U>/2N8PL/$4&<T?@:%=9C9
M[$U/5#$Q60IEY!A8 VZ,]0R<ML0:AH[8=XL9#]2\3\\EX&Q34D\30%UL.AY$
M':$ G25X% ,*IG=DL>NYF\4I(*O1/,8TBP%. R*7(*8 P+=PC1O!32:'N7@>
MJDR 'JBCTIP."WNIJ6)^OE,Z[)$S$:,K@,C6.;E!A%GPBCMQPR;67*DUB@=2
MBL/T'(T?ZQ)OC%G03:@ W>1Q1K'% &@"$J>XCB<<Z:Q.]K/J)J2< =>-HA08
M*)ZI\SG#U)08SUI5KQ=ZX#(3U,5WTJM0DWS6C.YO6UTI9A@@_PFC&\Z()LK@
M<3C$6>QF8CJ;0S7( -ZOLD2YN1["P'3RG-XDSVY'IK4XVW.T&<5;QW?E015
MKG/@3,:H1C0U%".QBCH8>5[K\/U80I\9N\6XC/*&6R?TY<@>EO(&Z:'H>VFQ
M[V4?_L=T0QCD# \;)@]L)=%49V&[WUMLRT@]5A&=J1(OQ5YY.N%3)Y";#8%^
MC;8QFT/WS7FY3[,&RCC/ QP<6Y"JI10&%S)?M4XMCO3)!\1@:2'V7+T%?J'G
M\.@F22GA 6H1J+T2FZZHP33(FKD,2;E,I@_T<; PB'58%R"J^HSV1$)>RGRF
MN#IY%HG*'+;WZN61)9"U \S'U<(3SA*5!9_U933'-X-NSE7^,@J!,$JYM>>8
M\@"\.YEBW6EHV7H!]7I&TR'J=A.9*N5#H2":X"%#G6LG%0>'WP6U^QY34[NQ
M,).>:A3$(W'#'NL)17!*PFFA@7PA"1Q;BN*VS9;C7,V0QB:%[<2>).(RQ9VV
MK*OD^T4S5ZHJF_RI>W4F%<=5D@_3UQ2#,*E@A,6@@!ABMET@>A*9QF=KY&V"
MV2"Z/'4S\/3*"CX-5$2ORTG(A3Q7,TR8V1GWEJ"V,FB+#FT)03>X4<Q=/[T\
MD:\P/9G,V+$YPCP1TEK1Y!3GJ8G5^>#>AT<+WIV3FF>7SCJ0N3)M&C,(#E!Y
M<X"IG%3V]BG#1>E646Q28>^>W@RZD,#^$L7)P["0&W\P8,JA*=)<O^YS=BVV
M QL6WT+US(CB&(HL^)8W1.=^ '&4C*W<-S9:(2&8NX,AN]P#,=2*( K:^] 0
M.,X)-UY5 P$*8IU5)*K,HF*6O/T/.Z5[=O5*_F@G'T4VXHFGD>MFPY$IH=+=
MB#! %>#03&[<QIC(_L2\VBKO$JA[$R7Y"%;BM\RF$]-E]@Y0W8,RVS0R7.7!
M-HUL<5.G2\-A@#A.PZYR_^$T3LZ>;KOD2FK6FTTKVO-9>A*M^%3<XOP]SU?!
M(-7WE-O-@#JB&C.8NYS7IU?';RI4^C9DT]['*GL0LGBHSFLP=-YH(P,DR;\P
M]XC,D"Z;[?^2:J)\%(-UI:PN&5-'+;"C34?KL2[T^=)0^!N+I\(>(FK9H2:X
MJFUWN%W:GR+,4*9P^M>>7:.O>%MHSZY)><@%;Z6!6U';]E5)EP"U=81N3UAY
MTJ4DO?SI@NK)+(4SSLU('%0"R)%$9CC'2LC*SZ>$J\X6XK;*TRLP\Y;M*>.B
M5P.2V3FJ@6>=I/$/JMPO6#*_&<U:U$Z[*C)7>":BH1QJYBHV4.#2#,.%K4(-
M#!/E[];E7W"/91]R46(W"W *H RU :T*:<DBA4,H5+9,5>Y 6Z_"[]C@NXO3
M>W-,H'>P N0*/6);:5"%NAN[3*>H/EG>\+QJ1S<VU4-#<GG=MY)XV"V$M@3%
M,[7/NW V()&N?8RA^*F24\8 !S*J.3_,%)6NHD</,T=\4TUG :/"S?:[!9^2
M#0ZJD!DO-+9+'P:1AX,S7M\Q3?T->X^ZHWP45$[V-SA1G-0/5:D\4D%I1<8Z
M,SPU S=54NO&3+9+V!F,KA]22#PUSGK"<3Q6F<(->1BC*L[)/]B!065D>;F7
M+B8B)HG&9F6LI4R7:TR':I"2&E6=3@G(Z\9/A1NEE?E9H69Q.3';"U3Q]"E5
M9W;7J$+D"'F!%?E7T7.K;'']FY4<Z^'R]Q20K!,N7YDDE-P$*:00JQF[KM[W
M-;:<"E26V\T8PMWH&2(6QK)WD/Q[( ]]+& & 0A;K[J!2%3?$^VQT2-^!QB[
M5\VP'F'WE7'DZ&GX#QE[TC!:(LN-P*&9TM'O:F SUD^!\<R:"VKSTTKNAILZ
M=4X-D"D,BM$M.MBMX,:13MHLRE/#?D%E(Y9\5]"R\.%<X@*R"L.O;^!,JCIE
MMO"-?*859_$_0&JF['J__O>?]()&;>_;3^3:5BJH'6<SV32G:B8!'J0*U.OX
MU=U@,M\FCX]-YCS@(8TCU;%$+Y#2 W 6=,)Z@4]CGS@8)]7DF-RC"R>L^I%2
MN%_?4&CWCS*3@K3D(- 58S$?'DE5TQ-35T 7>-"Q& +O@;U<Z8/6Y@7KI6:
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
M;VEL"F9BP1#XWNK$XB"4W*??&^C7O<7"BW*H%0_SBY6HX/*,SXN 10'"-T+
M&5YB'-W4G.C< DU'8;+035CZY@4#5-^U-/Q\7RWX*-6"-^G,&;.<T/DO?>_E
M/R3>9 ;%6<<LR5>I27>#5(+*"MP;0M@BPEB='!T?[;KA]E/XD:;0!08NR*\,
MFF7R%\)628F#-N0;]ZC?%_EEC4_X;/]!'5_Y(J$OZ1R<O,G=Z9&JUH:5K80E
M<*<?."#!_K7A\%1=Q[ NCL[VZ^+3KHOO@W:R<TIY-CT8Y^?TI@&\\KO<Q:QE
MOJ:8E3,P/[.UKFG"8:YOKMR9JHC?JS1C<W"7N3^/6I&JRSK.K=E?@Z3+=YK5
M46BR7T"?= ']0%QKSJZ$@^$W(/+U6*#3?<SX7$%&[@"91<+>463-O4;*S_:[
M"DXW>8?./6X03S4P/$#T+]C3P G #0'D9UI9T70R+6IF3I-?T#=0RV9F*OVR
MCR4#,],X;-&?92<[P[KW:^[CK#E(%SF_?;5 @L6?4:\-S\FO8:;>:":7;5+^
M+I^M6&OI5N/$/K,XO9%ODP;OIN?<'.T<T._7PT=:#\&LB#_RPFND\)SWCB@W
M?3N>3QPKDF?B0B/G\4Y>XNMNVY_N9_G3SC*E'"_^YV=[B)A-_@(E3\I34-ML
M[F=88_ZF+D7.\M9-;UJZO;;)QI_57$SK)31Z^0Q>11>K2^H7<(OI.9F,OU/N
MA?HSW&(Z9C(R+7%Q;XR\DKR!Y'[]@]"1Y<\E7-^=AS7J%-?Y53$C+1;\60D,
M0.%P_,1#4%[-NEIN__00(VN!*B$B5TK/4"(3C7:-T)<Y^L*NBYR27,MT29\O
M5ZH61NB8,$]*%$J#].;BA\E//,+B5A85'D<D[4C%[E$D9B[*MA9P?4C/E$J7
M)-/J_L>G:6QN)O13KPDVD@$VK92W[61=Y"4?2*'=)U#RV[4ZX.>XE7PR>&<"
M<=IF:3F&W!YG'DY^637M"GS![+838;J'=R%J-*6!;;=+;G^@*^".FGJ=EMWZ
M8-[DG,A<Y@1GH2ZAZF"(^O(M:%'""HWI85*6JX;:2D"3_2A6*)IQ60$W&+W7
MR %\K\GA?L=8MT,-".EIJ<BWO@-DMDN1"2"_C92^Z%*-*DW*01N3"TC#G"J
M^G2Y5_L%I)U_&A":OF$XE-HD77DX^7&+,N=D(,J);=\NZ=Y?/G]RG#P[9>OV
MY;.SH\09?B19"7CF!A#]5%N.*$@7%]OSU7L$%CWE\ST"ZWT16/>BPCB*.]PN
MO?I9;>C3,R+Y4)N"/7]%_.[@MB*T=(Q+4&BI4F?8HV9?W/BT8<7Q4?+TZ5GR
M].3H&Z4+ID:90'_VF\!J_N$LQ>0?H-1,)]^[A7GP!IB8%VF7EL[-G[QA7Q\.
MW$],6L#M$NY<^Q]VR<D78A]=\'F'2DHL!%D=X(.:/:?<&0GT2)AP<I3$+*]-
MOJBO4W Z_=TY,R]S@FGGDU?-95JY0_8OZ-;YZN\O7_V%5<-?<,/.R[KBCIVO
MJ!4(WI:$#"&D ,%LKK?+-+"B4F("5B Y(+TZS_.C/S"QK.<,I_M*PY%O&\3-
M0H<0/8:'I=OO2R^1<JY;C3G+?2H>0TO@GHQ2>21-*/.QC\\_TT8Z\QN)=LF$
M=\E/ZE0Z_YS:YFG.>0],+NCP[:A^CSF5;<0[[8=W5RD%S11#1'L*ZP1$WLWD
M>X:S713-Y(??(=USYVW%Q00OCJZB5RNW7P8<JKD\TZ4F".#SBMH1_8()QC-/
M(A,4!I@77.4T?&\*W6L B?";:2B$LU_1GV1%/T^>/S]/CI^?^P7]PP; BN"6
MG?VMA8--<S"Z$CD;M6DY_FU5H9;P+ $SG%S)7H@2,K!PC2CQ7H&OI'<*.,N)
M3/4Z(XH>,O:M95SAK %H^-]U1#-90H)U6N80-1$>\-*OW,,)/S;M+)#U_<Z@
M<^VTD8V@=$,LBD._##H"I.#A@L+5$E&A'I7,HYCE[@FS=;#8DU?Z3E*-(51Y
MBG3>5__KLON6.I F/^I]O^8@D!!W+9D/@./;*S0CSX5R4@:R75-R #$H4GO]
M*H^DZ5ST%]JJ& OYN[;;N;O,E4@&:%W)6[FX5[(!2FVO8$6:J_TA],FW[/F3
MY/SDB=^RO]1%ZWRCUSFK9'?!7T.^2K;O"W>WM #AY9MTD?OS8^,!\C)=RX8U
M1T<Z$?;2L-+):5)%+4T^-/Y9" Y(=R;=!+@SW%!)]/)U*[16 8JJLC%UJYV9
M?OT:!TA)1Y=X\99IZ/T].(L#:AHOEN%<LSF3L2UKMROW!\VG7[5/CTZ2TZ.P
M:K>X2R]JD0%H1E=I?*R4FO=_.G!QN,-6SS$VE)RC'T_&@1T)O:'"O_L.($L/
MSF8!8:#LUVS<232<V\O=MLA-V\U^@7WR!7;V]"@Y)K/XQ47;.L^W7!N7!8>:
MET%)R2P4*>@"Y80':Y>LR%E8D>HF?+'93IHJTY.$C5\$V[FE<"8=548.T'8:
M[T_73[V,GKG3]>F3I]Y.O=G@_@9-'>\QQ\O)UR@#%-A*1! 9Y1?QHII#:8_R
M"J9P*GSLOMB(DUDJ]$\&85U4N)WOLOZL!_X^5&[[E?>Q5M[QR7%R:ORZ6\V8
M.ZD:ZDQ D@D*.)S]6FCV:Q IA17:WF;Q;O4/;8+A^'QO^1[\^GMR>IR<GY[U
M#]"7[['RDGC9]=:AY)5V78H] XH$5>BH8QJ/V)3:97JQ;(H2_N%^B3[P)?HL
M.7_ZS 429Q_/1";_7AMI#_)3K#_E@]TOO >T\)XF)V>GB3,A?N$9HZBB=5P'
MV[183-WIUE7#U$E'1\YBL5JJ=^^0?)D7,\O2%#%>*%NY!M!XP@7Q]M#C&;UG
M(C^>LB@.,O9-PRI$_K$7Q3L4HX#.BG#A*X&1+"2O'VZ\SZM\AI5Y^CPYPJG]
M0T1](-2_BD)J3>G6MK/V(ML-RW#)]$XAM8(<LJ]K>CX&)8>@1,JB)GVZ((#
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
M\F@]&H]0W6[D5"#YLS/:Y#3<N;0V]QH>J7LH+[4W5YBN9SE,)5^3@BLVFK#
M=;. 9EU'X"3T2FL )^BF."&GJT8E&BBOU'%>A9<>FN&H&;!H38S.O7_,M1._
M6IQI0_B;LR4&?17+32C4Q9TCFT9)45U_;*VG)B:K@31M*6+$I*>6X9^:6N.;
M*Y"[_\X^Z<A-Z^V$H)3>GQX;?<V-(G=;>)<XA-5%Q0Q5XFW7<SKWLYJ/O!D
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
M:&WMX(?*&]]G)B*D#(QF U<IZ8_:N2I\J[X9=#81MA+)94H>H%GT7&VCMO'
M!W##.0K6#4*&Y6/Y[1BB&GA=!,I"K*ZP^;Y4;&O MO9!C<I*#W-CXPI=W)>A
MO=W[-8KJ-1HJ\23/)3=.MR;'5A]5!=QI;;!,,H3E/8/U$(NSK-T'\*[,#1(?
MN+.$4V*0*?5B*FU-<B]2]>PF%&OB^ 4O0\9'=7A(W\R:]886I[F[42C8QIP*
M$<,.SCIJHGR-&8#QQ&]SK/8;Y@)=@4PS),?,%1+!4U_6T(L1D1/C4)KORMZ0
M2B)Q5W&>CS*^4;*B[:(ELH?.;(?./-E#9]X7.G.K=?U,<YK& 3P1?[!O2SDF
MU2HE-SESKM E("">78!3-A2W2[N&:IT,M*:0!I$<M/2WQRF-L0YOU:5PIJ"0
MQ)65.&K,P<@&F:U5I&!!-;K^=:5D0$;&MYX&%H>:_-U+(LRD_!M2P=>&K$U0
M%(.+^H*G^,?QN3[VI(CN0H4"2*6$G$@AV5-&FE#5E7:1Z.(X%-@",Q:>+E^+
MAX<D-R$?$TU]"V(#=8K<?%LH6-;](38#.U*=U#["FX)KMFC=3,U+-;D[62I.
M7.J%>C,?O4W@H(;\-;,:TJ"C#X*M>73"#-85G\;HD[5?Y.2<)U,,2S3J6^Q3
M+4H4%%RKHIHWJ9O,U8RI<+@_GTHT$AK)R% W(L3%HB.P;OR+Y2@M=SF4[Z._
M<U+'!"-1S;F?O):LMQU#A'6&/SNF@/8Q#'DY1;UJRS5\R#S;-B]P2MXMZ8WX
M,+5#Y/SVDE+E,OC(V)A3]9OW]T&7]#C5Y4&9S[MOSL]N]TH/CI]]-K>4C-W)
MDV\_GV9*/%S'9X?G-!8HM(3"JC([!:$Z3#39P."),L.H6<SQ\ASYA78%6+)3
MHTIMNQG1,0?T2)!AY<2YE#:D0M(FO:4?0(5&*,NN[6_W*^USKK30GT-C-'4V
MRI>>%7-;:3>ZF'=T9@T6DW7)K1&/Y<H3:X02GYTC<H/:77SISD0@FYQG@\R%
M,5.%<)?9I:?/TZET&SA'&XF:(A[?_3K[K.O,#4NS9@OP^\J=-ED1SM>>"*;E
M HJ,B7&;0I6626"X3,O"\"'-%@HE(>+$2M8U;Q&5N+IBQU0X-$(7QE[WP&?<
MK[#/NL)N"V< 7/#I(AQ#[@<'J&SHS^(B;>PX>HY$HQ;L88-6?\6OV74,*QR<
ME7HZSO*L3^XV10^2TM4)7095<)FK;+_4[I-[%OCC!\25%)T%@$1@;O'$AA!\
M00!I:O^J(2[DA"SSSE:N:)4I)O%YN.EZ6.ZJ5?71T/TA:%G12G7Q1VYP*19=
M\2T]]WYYW:/E)3 4-W=7!8#5;C")X"GXZB8EXO.^D?/S*$L*P*P:UT'R-6N?
M14$T1)[M*"_7 OFD#K7K@A5>.ZI0=Q*#2R9*JA82=0\3!"X";[ER8"3RU"@
MB!J>D(%#FGT+ A#>W6A=5)^+"H0F*A152[['<L4<3%R$SN$*A]VK;GG#5:G>
MNUP7Y-M0-IUNTI(AD)3/!K)&D]LGQCS[(E&&A-Q_R>9K#J-7!1O*@?G*0S^?
M\1@7:I2BB<*H*I22//A8)E%'")T?--1,N--S0)AVAX$#U[[O/T(0QYV1@U**
M\F3^II7R.=)P!.,8Q%\,B5 IA !\#'D_>-=CKE"4.?!N4;!@:40OS!W3_6J2
M/" Z1<(;(?4(A*\6$R_K.F-\DD=#$#2^NJ3"6QLUM3!GQD$]GUNTC/(P*[#.
M-W"S<EN3LS+#^X"Z-X@.#C!T24]'U[F)J"$^ NSW#^^6!?.M*@(VL"C18F4Z
M^-H3J]@V55EPYH,P1X\"UO)#ZM8\]38FJ)-&/%4CXY736/*H:!,)R*I=',O^
MHO!/9KXRT>.6Q5?YG*,ZLKDTXN$0"$<$/ER,D6L+$[8GPNKLJ<H0&&)O4!K6
M=,%U$P6NY7XY!"!9+&0R.+SU68?CP1D 3C,6#5];:%'H09* 4S3LO;RRI+>%
M@3B",0O</LX=0X?*'(XUBNYH&=&62\;7]"]^.-FVV'W;FZYXD(!)8XM9VA$-
M&74#,U^@]@RQ/GW42"^4CX;ZR8L/"0J42((TN>?^A)]7F=JXP<,RU9,I+%D^
M]&W+P:8%^_RFO)<-CD/O;KED:\\ :][/XO,4)^"=#O3>6:0(X/_NINQ1IW$Y
MJK_8>JJBTCGJL>'>*B?][B=WQ"-]U-]!@P5'J"KO  6HH.I1'3(IS/#_?_"&
M_U7@VN,5*F.C>VOCD%"$&QG]B+/>H-P2VZSFOJ=80+9""(X$ @>ZR1M@^O-4
ML%M1G$R"OO%VI)W6L>P0(XZZ5;:VC9V4YV$:9=M]%+$>XN4?I3+F*Y7D6*9M
MY_U'(=P; 40&#@/-CC$V"08!FKGFR]X.)T!D<L,18I2^H5([3P93;0ZM+QP=
M)%6LC'&#E6"DLJ;,8"ENJCT(9&:O *C<X.IM(%*D2NT-!3F-*)5$EK95@T-V
MWEU] =^7Y#0HJR/[Q+(T6/NDWY=N%EKG5SG.83D'U?J[Q_B>3[82KQS:7Z(G
MBY3S_&$2/8ILV4SU^$"@ I1V'R4RV+AC@&MH?.A>LU^*ID9:40+K@Q*\Q-_V
MIY]?=Y=-D24CT5 XWZU_N;.RQH.1#/M<V+.G>^S90U8(VXJ%GL8L,9=E/:68
MMBR0,6(&)CE(R_R2^344HI68_/2P48%_^SC:%'X5O480W45M&BT<2O)")\B?
M";,<.Z RFNJ;+*EXU8CV%.?]BLJ=H-Q+8+PC[9Y$&J3)\^JJIA/CTMI?=R1W
M5Z8LMJC;)<&UR,=W]]>G#0\5O&UW.T*&T5'?FVBNQG(\X*:[:-G."<[+0_-
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
M5DA:$GHPG=:^ZX>V;[HL.GAEI$J.A]@O@4^\! APHM5=T8Q<+3.AV&KSM"'
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
M%->I*/$6E#XE+<Y4A!;J)1T0JTK@*B(8!R<FI29A[]/W$Y:6AD"O2AE2RKM
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
M8RX6KJ#M%=?Y7:[Q'[S,:#MCD13_7$$)@IT^K#4]=5OE<9Y3E,5R@]K/*TM
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
MY*=@/@Y\/[!@XQ7D"#<YT S;U]IV?<^V:U42NA+B^:N(K1C/VHM\4[GQ7%2
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
M/CW5<+[F:Y4!8D\'1W/CNK']&>0]Q<>NL95,_+S#T*?.+^8J\EC$,A;\&A0
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
M80* L&F2'P0SN(!_3%*T59=4!/:\U4,2MIORBQ<T&2!FU)T28K(@UZ$59C^
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
M.SN.:O$ZOH+?!3A_[@Q.+\N2-/R*F<"#-(U;K:';'VV+AGET7+[-Z0Q&73
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
M@1&0_J K$8*^X2VC^R-O#'^T[5\2\1D&"CT*S@5_%P':W/! #EJH,!M'+B9
MU&1.W%87PL GF[?I=Q09N,EH;N@X!%D7L-+I- MR-M<?=CLU,5=US:#16Z-K
M>N8OJ_1L@ZZIN9YK20C?+5)Y<AHL(@\HPW>Y9&G1SN\ID([NP@[O:O6"KQK5
M6_@-9-TA0H\[[+2K;D.KV7-[S0[RS;K(YJCO=MJCAK/JQ:SJKR%FY&KUUZ"L
MO\HO*2DPT4+3(I +L8^^PWL.5H" >OUE$8 T/ S=8[85R+8L@:;.7=R&;A/\
MS?YJ?+W?ZKGM3G.]?=9JNJ,!9?!:C>Z#K?1O/OMOU&D,>Z-M1_]UFHUFK_U(
MH_^Z[<[CS(X#C3?:]N7?YZ(ZC<[PL28W/NJB1L?1?]^N6NGI1O\=&LUJ1D ]
M:HO)0^=H'2?#'>?P?9]S^ Z$I@^:QG?DV%NH>\ H!?4;WN#P'>?V'5?VK5;V
M'2&K_TK%L1%'0/UY&(=8$(IU94=T]>W0U=T.%@\T[]E*>FSJ^?H'-!PV77#E
M]_: 'GPHNR9\#GE"'*;_1O=H#-P!/CML0?"\V]ABA,\A-?<]W'?8!XOF,HC@
MEU?'Z7#;(5ZA<APU.\?I8SMZ/J-.RVUVM@5H/)[/MU+W3;?5.8Z&V[V#:3?Z
M1X#UPXU?? RRP$NQ]#+V'3^X#J*$FF&/T8MMJ#CJ8UW3_LY./^S3&7:;;K-U
MG VWFZ?3:L/=:1_#?CMZ.MU&[PAJ?N N_Z]8R2WP'E0JGV5!?IP/OR7H%7:@
M;3%*\>C!?*.#Z?3==G-P/)A=.YAVUVUNK?>/A_.-;DV_OTV8_^CX[YW.3Q+_
M)HPB0J4*TZ//O[7X:@W<]N@IC..CWW+[Z2"X2:O]ZG@Z.WDZQ[NSRZ?S='=G
M'TV 7:X2WC UY+&]^SN6CVX+V'W(15F/29F=OF&F#_=!XZ,>1*$G\A*/U^)X
M+39<"VE#/UZ+X[4X7@M=<L+8"UM'G_;X/AQX,+'UO<82'S0/9%?P5M;W.-4!
ML#R3RGT&MFMT?W =!EW1'3X*'^IVV* R:HON0%&H+=9<!$(>;;?+<(_PS3!W
M(L0'DH5J?!]\_TT:Y@'(B)L8DYX*T4IP>W%,0!!>X_%E@DY'X*<^HNOBQ .@
M?A1,\A %C(4B\ZP%ENYHV*\ 3\:(P<N0Y5F>T0>'7<1++7TNRY/)Y],QT1'W
M#DMFL&$UGP&VWVF5ON+-$[@ _S8?\X,%+#VD7VA(,H3N#6%72P8G>];N@]TQ
MZ)9P5Q?>,DTB/F8"1T<,8#CZ:2@+'C7=WJA3^HZ>B\"@819Q@4-BADVOG:.
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
M*]RMZ[R%5WJ3&2P@AX]'?.<6:3 /,XW'AFLP_9[PI)2BWN,@OPF"&/'**,O
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
M+5?.E(@!LBG4I.!*=YXF""R4X*1D1&3 5^$KPAAK(<*YLJ_4K<6R4N4#@[G
MURH,N$14?9$"S?J[^O/(P$6N\@(8ZE><:E$8:^DC=$"QM@R^[^/"V#91=#W(
M"C%I!\*@50'66X;%EJJ\YBZ<B:Y$S!D;./G B[/R1RVOMN8+NB[/EC9!3&^D
MO]5:GEAN&ZC%F;B%/%.<?>9[*?T+<[@1&/W .$,QGH<ZKGH9<$%OJ_/<>X%_
M;O6>^R_4?86_8G(/2S!?JVF59Y.<8QD3K 7U7>6RXS]Y. K!?\BTP215_"WK
MRD,]&"AS<"X.\['\]?+UN1:<:1%)&3'2@+I,;S\/*<EWZ97H[$;A/,P]G?^K
M_=)#J6\.]!L1WYM,BGG!:2>6 /-Y$6.<Q#0*\HHT->LU#:Y%M\I@#XYH&R:0
M^KUG3.F$U4Q&*58X1HR4X7^14!2H W)'7HI%K[0W+)?+,(H#DB=EF9)@N6ER
M0YP041\\3<1$EKKR4I]%M1#;W,#OQ%A;<01I*"4&.,5:8P5D]/Y'I=^VF2.T
M-^*YHD])[E"$)T0CC'H8,BQG#K.9<O2H;P?^CW[V@9%XQJI0L:S'Z\P$4ME3
MRK?#;?Y(0JC5\4[A;DY?L 5D$NWK[BA<X=:HTV7FYPJ+ P5)8%"+,G77$Q=E
MEX[QWMG$-H)!FFX$<6II^OXJ9QBK@I9@X:7:BC(?S4Q$2S7"T :4$4!AA@EJ
M.%J ;0J"R#I6[6VNVFL=J_:.57M[7;7W1#>'VW/0J#,6EYAAD6F#^C,.\3.7
M/(;;J9/ &_2;:EH%\QB]GB3"#K$5DQ@MUY</4%B"H'F*Z*HON[W;5=CIZ,E4
M&.4[^Z^^3O'57990IE:OT4-2+ 0F0LQYNQV9YK*C<E(>1FSK33^ [Y'17F R
M(F)$B*D7IIBT#:81Y_"! T"[9M[$%$=9  TZ9",H%?+3.:?(7ATYXRDYX_9P
M9.EDTT![ZVB/Q@%:7YBZ,Q6W=S&4:DRB/QN7#;N28J/X.C+-;C,-U58O),=+
M04H_S%7,RKK\Q%#C  ]W#@X6.*G1LHXYO )43!K^V]/RQ/+D6-RH]LBJ=,&_
M'IEE1YG%>&,+@@%@H9&:>$XN82WL28T5%Y!4*(,:40RI @IDL8&.B8@*(B8%
MN1+YSLS#&)4)_7-: ,,EDH@Q==9UHNP@(]D_!Q.O8+R,D*0U]I3'=@"4< 3N
MZ*F[V(8.],5<TBRY<6Z"*-(.N\N]\TFN.("A,?#<'>P[,(1V* U/W((MQ%0>
M;'(X=X\;8&N\8DJ2-[6<26)'IJU3Y_WJV=N:#E<798FK[9PL4RTEM3FSNR\7
MD6M(-G+JRU.![@EU2,![/Z3)7\%$"T:4JD$I35M^.:$(4,&M1NI(J6G]+]DI
MQ47"[+.Z).($X#&-0?7/D=8Z&#8VG#(Q516Z\I!CNSI=Y0=89\%='?-%%!I*
M4X1%^0])*<N!+Z;&E9 *8@[RPKU]_-PMGD$QX:A^A2&2K>)L8X4Y0@BBJ3</
M-/+*) U):IK(*4<ZJX%F$K_M5_CK*RYJ>J.>XZJF;<D\<5-%SEQRB>'9A#J&
MWJ=77FP; /CA3W!U_1O@#_I6)HVP5))J[3A4&600,"&<EWS93R9%*3&J6-VM
MD(LY%\75ZCTVW\D##9.&7["@3==]1R!R.,.=<6+(!"=+>T"$(@V!_Q72S8@2
MQ*UW@I!&N.R$Q&(96H(JD_'J4#7F8-7E#(1UQ]1YPV#85/98>E4E[;\=QZ+(
M+&?X-]4>'*1 ^4H%(1JNK(J34Y?>EKZ@+<X-:UI6S0#D]B!-%?8)_@ABJ, L
MR%FE4F:CJ<%)] 4/)7 WV0$N[5&%S=W'J-#Y9(0(:?'R]YTYL$\IH#+UK.Z(
M-!#/FT&<^.JE&,41"!'JX(3[/@WSLHBAYX[Y&[!1AE7F!(*(DU!P9&&-;Q =
M&H_9TNH\O&/5_B,O+8HJ^\CH ,KB4Z_%)KBB;96T)9-/%>;0X2-#T+$S8?&
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
M:.\VU4H3'G^6J=.7LR"X918:L1U.:'\LU)N](I1U_8!"[W4SAQY A?9'MM$
M.1+0$- *=&3_<%Z#?9DOCZ2\%RG/O6SFO $KX,B+FZM;.#-"[42!?_N@VZ^K
M1)^(#&>8%Z("S.S_9^]=N]I6L@30OZ+E[IE)[A6.7GZ1;NXB0'*8X0 32)_I
M3[UDNXS5D26W)$/H7W_WWE4ER;;\D"VP;&NF3P!;CZI=^_V4R@)AS<O0Z0UY
MD2C%9!S1&T@4L2=Y0>DR55X$-M4X!6TW.;TP-AN3Y-A >(0PF3B82(^0R.F%
M,XA?DRJS'F!Q>%(][_/RQH/4Z#]T/RK*&\7MMU5)I;%UD&3Q2"-/I#498 >
M,$HF/LBP(5?+XX B8B?&6JF\<)$G!"]RLH)8:SH?#FA"FM[$7B!Q</6!!G%D
MC3+<?TI^G.K\$?(^8R.J)4#62!4?HJN!&$CRFC1%23QOO(1?X)2 H;PNL>*K
MVKD5^9)6$?F2K63@W!OF2\(>>R< M\#N1:<",TKC2MPFB?+L+]W@TZJDP,S=
MEP&QLN%Q]7^_77^Y?@1X7%[]WV9LK)&UG2PN%I'V%9-G *SU!'OIV..0G<I?
M/F.G4M=^/74\6BW=- - ?.,S"R)0M%SQ5GH=_UH@9J=3;S=,Q,TH@/_Z\L4"
M;>NP^T_SG\--[>QOM+J>^?FB)UEFW=(ZA3U*S[Y%/NH3;9)O%$")Y_C7FEF;
MZ01R:HQ_*7KF><W DX/R_9&2N(E45FZICU^,E5%_>GO-V@PR"?2 #2ID&"ER
MJ?NU_4L6]@)G/-7:!?>^XHR[=N_G$XWL/A$KQ99-@\%G 1VDU0)  X]Y?R%(
M<#'J^CJX4#084-E?B!_$*0O-L-_:S$F2[Z=DD3 ./N]\@2(O'S,)0Y%*".NL
M/_G/G\Z#WA ;!'YB_2<[^-2W(_N3WC!;EMGX!.L5O^I-_+W9^60;\$/7-;U]
M\G/$@B>P4W[93U%]&,'1G,NYQ;QUHVM3FN;O=)FJ<*<)=Q;?^L^\#05YEO2F
MRH?-P=<CWWM2'GF>(YA./54YISQ6>-;E-^7*@X>]XN=UWN;E\MM575[-7P06
M0I=?,&5><8MJ+MXL^9XA4SMGXL075.L<S<;!VF")9 2@X>MX9P;?63VCJF$C
MSC*@_]LOYF%LQ#Q6[S2+/_!]9JN4*_T$;T666MGYQO(%;L\W6KAXH_DI>O).
M@!Q:FFF8[9_LEV%P[F'K@G7@*#EB'3$=KL]-?K=A,8IA$L6U%O.2^D)FHA;-
M38QBN(G8F<5W5A@O$>)YCWB)N9TB4O&2G2]P>UYBX>(;AN0EEM;4.[]"W3;9
M+U/'WJQ^BI>(UBG?F>B6B@FGO#L>XS%^2<VB)_O:M&UR32%A6+=^73$SR?V[
M^(/>D61<2+)_.-&5#U/7T*-,\T3OF*V._G$!4_COB<<4HT4\P3IB_<*L](N*
M)RSA"4;WU;5?PB5,X0M=D)/\C<.C_?W3!W2M4@@JXE],_)8>1C_#,:?]!YQ1
M!.1'_6")'/W>SUF-(&TGY.((5ETR@&D.4!8ND682NR#5^G%J)\"AC/^WTD\J
M%K6019D^!APXBR)RERF.RAU%(E(>D*4U,RQF1.9!6B9[J9V8E79RW*1O<"RS
M/HDM61:\*.PE9!@*RR05>T0.\#U-IZF^H/E4$BN3[)<TK4AG 6?W"M<[Z@*R
M%VY*G4(>AG;$+@D@?*N2^<=$^ G!IVF?$W_GDVC8@KEYWK]"WY8"?5KHW_K>
MR?\"8?*1*M,JP NV%DH4@0]7HG$.D>['J2SI%*$#&1KB06#/X&"(9\9#*#,4
M7$1XHD-D;QRWO&]4\KXB^PRR]P<.T#U2\33-)V2YE-X/D;[W4JPW*[%>T7<&
M?0>AO4"J8Y0A<'IQAZ8%M'TX=+V7<KM5R>V*KC/H6K:K!+7=WEQ;QVMCC3WN
M7W6XJOM>BO9VY:8_*AZ0X:9O4YIB&]WT_P!FT R1_L@][XV!].P1XSQ@*DB(
M%V92*HYH5^Q4PD$@$P[2"<(B]3F78P_#WCD]>^HZKKW6(M>>2$#D5[7KNXXE
M*D>KIW3^5"DJ1\ZDEL02=4TW7QP14+CZU7,G-#3VQ@%,#M.IU%T6O6!#A"E&
M)AM6_^&$/=\+@?^<NY.1YZ )PX@!?$6<LOD<3M'\@G6#"18@-Y U:*W<;.S=
M8I6+6%N51IFD4FGOJ &E"[DJ_E(V_M*T4OS%U'XA;S$LN__$XC*OKW;/<7E0
MDEJ8BL&0LI5I!K=95L(U79_!F<OYY FP@#<?:JO\)ZY(W4A96O!V8"U@Q@5
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
M"V!/_23]@7+A\]:K?_ED%]^UDC]NHQ%'\R_8I,$F*J6E&8^4@'K[M6\%A6F
MOC<89"?F@7(-R#)FA#$*G[O! M97[B==U^DIY[V>/^&MCK\ZP8B+H?E_5S3C
MWHP4U]K*.[&%;=>R/E]HMVMG7T^,'*R@7)@%!$;J*7;W3:7?/T3P ;4H/MUN
M6V7IPCRUSZ[MPCX9-LEF4;A;*LE:[JZH).=:UJ>2CHY48FU/):5$IS F%N30
M_IAQ2(5*A5EOCUDMQ*S&46!6&/F]GT/?Q5&%_Z5@&_GHM4*Q-T<Q73,1QYI'
M@6,].QPJ ]=_J<3B>V!6!S&K=3B8=>OCO @QZ:*71K-!K%LF"+<(Q2I$*QK1
M= ,1K;T4T2JO)*[RZXFB%^*7;+^'7W*W7J:='M2&/I'-''9Y'$D[L.VS(?3H
M)_V:$4XRG,<G_#RDM$G\]A%8S!/S )J]M5S+V[@8M=VX0/+R^KNQX^$4+C$,
M*<L]LH<[KIW]P92AC2T7)GTGHEGI\#N0R0C60K/ >HN]);.HHGS N__S3VW#
MT#Y?\$?07_KGCSB.#/$N<T <(2'\8LI1[BZ]K;>.9:UFVD)\<ENBP:I3T^IH
MT)S'9]:)X72IUWJDN'R $W!Q]-HS<U_ANP$+D)/@Q#6Z7:EEJ3&UCW4 A>)/
M E@B80S?4M:URCA@(3*J@>T$[BN?UN>ZR@@N"/!2^'H,*PAG'R%EJ^S"+D"]
M+HB3_883EX,39^^EG!4T"PP^2N"W!'Q\2AT.O,,I>'RF7\)GQ[R]APL0!32!
M-^#0-_B>C1'48N#8#X]PCTB)UG,^ @CT[+J2@Z9*QS*^V*'# 2>9QUYRB,<A
M8&DV ML!DY@T!KQQNHZ+.#"-EO\5 D9[H.W@/77E#DACYGJ'S 3V"^D!D4^2
MCF2VR8,R5]&U0T93ZI#JB(^%=07X&J[.5L9<]*=0$L<:BLEWI!S$\R.%EB#)
M*:4MW#T#;T&8" GZ80IC/RH?:O<7YW=?:A_Y0,0@'NW7%T,-G91>0N\3M"WM
M(_E.9 'PVJ!/;#9>V8_Z0UT9L#[2CQ(F$P)=^R6,Z=D>CV'Y%)D,)JX8W@?[
MG+B"K.<G#"X8DQD_DG:5BPK+@[=_D-79G_3PH!+46 1B0"BO#V<;@TGL_9$/
MB(V_%0?+AV*^,)RYZDU-_:2CP%?AV?K=R(87@IH?^AX=C1V&DX!>;7?]"3QB
MR&C0Z4(I@=@T"!B%FV/1@ <E+U'C9_0G-$03)!4P'?C?(("%X!92"!:B?)M"
M3Y3_*GP:P';@7; GYCT!O=*78E<H-<2NA+C F:.!!TL!($>![RH^T$AJ!WQ"
M)1!/75'.0=;97$%/'<0+FZ,4 2YX%_%1@CK2'[YSW?>I2A? BIN4,DN,1,6G
M"";#AYS.\ADV&'"![R$?FN9BJ,?HK<\Y]TUX!K^C=$>X"A;G^4HXP:&R_/WK
MCM(L%WW=I4FJYTYP_J_ %B[X_1[K3P+N P*LQXV3L'#"G^%"9)9@SR*%%8BN
MILEP=@E(K5SL]#G/182@I=25!SR+U,7Q=M@O )Q'.(5,40%>'Z&X<6 I[-D!
M;MZC&:HV'3*G_!'*#,Y9^T[8<_U0/'/AMKA,%*"TW=!/+>#9=B=V%#\\4Z^:
MH/BCH<^ %,X 1 " $5;JC$B=&ME]FJ>;"&$:(/S"<.!S./L*Q&940H5N:J?U
MS.S% Y_M,M=ASX(GIB@<8(I0 LBE&& W5HM26O)>RIAERM\%2M@>@.J<F.;O
M=@3(OI\F8KP5SO]'?"OQ3QNHB-2JP.?"#[2+ "D9*-'Q^XG46"CAA"@-4&"/
M1A./#QA&NI[1HJ:^%IH3?SQ^X\!ZF%!=[.A4^:!_%#8=<2!..S2@.DV8]'*4
M0S$[$@_.%L;P] _&1Z#09]]]%HH%J7(.63:@2H'5Z#TA0,))]Y]<GJA\\O8(
MR/67\L])_RDA'3*^^PQ>#9R&\:7S4=\<(B J>MGPE\.:IZ"]W53F31PX2Y_T
MWJB*"?M_<7Z=>KYW.R$;DL0T+.\[NL=[)WI-\>P1K*C/G%,B33^XA0]JY,H=
MG#0L4!SO;KXJ_VF/QI^5B[O?[\]O_ZXJ]W5,LIQZ\EX"B)1:Y?HR/Y3087K=
MC^'4J)V9'>,00"*)$&Y'@A;>G<3FM/G^0;JBM#<TW2J$R-Y[F[D/_,;OD52+
MC[Q9._OBAQ&ZM'X'?<[N#4'SB-#ON?](0 4>W&,FJSS6U4CR15K>>V,KR@^*
M#AKM_:.KR*>(?!I%1#XQV6_[R">>7E6.495C+*[Z6:,>8]E9[)36+NYN'^YN
MKB_/'Z\NE2_G-^>W%U?*PV]75X\/Z^#13M=^OD[$*1:D5(4W4QB)439['+)3
M^<MG,,[&KOUZZGCT/KKI\S2K1,X\4QY)$.%?"U;1ZM0[+>(6HCI3O%@PDCI\
M]6G^\V:SKK>:F5]I=3WS\T6/ D6QK5FY'K7X\Y:>[TE+%[5\?_M0P-U9Q5UX
M6]2'AS05;=2VA=-7F7:%Q/4N9=BEW+J9I_I:\A*P3MAB$+SE5:O*P^W>SZ?
M![EW(D#8ZS$&$G?F6!3\V2H+M647B5]@MD"<=H&>NV?;G4J,$<BZ:N_KU<QK
M2JDX4#9,_OQ&>_\\JTF6:=/"U? UL'L4/IAX#G<T3,)^;<;ST*@IH/\Y(]L-
M_UK3I!MB$IX\V?;X%%'JW.OCCZL$G\ZC"SL(,#OI;[8[ 5T1 SYV! ;)K^C4
MFXQ.^CYIE?A4H#0 "J-G"S]&J_0K;-?.&JJE-53#-*5W1:[U;.Z#[.9DQ2":
M9#UK(]Q"QKB2TZ7E5,4A*@XAZ:_Y_O37J9WIJMG05:.EE9[<<FL8 _J_?=0P
MSF4,+P"+$\X:+$-5\5BT4!LV\H$ADV'L-?$L%UX2GM]C<-ZRZ(('%'/23%.K
MG355S6BJ#:NQ+<TLP="W$$0SK\LTF(X>DY:SX2(Q24=,:ID-U32;)<&D([+B
MKD9CUW]EF->$GE1$BU[ ,/$@8;H;\=L,D!P>E63SV^B)>:<2L-\E7"\(K)E$
M,G!^L?[)OUG@9]"'@5&]MJ$;GPO234J@\%<8M)S/YL:@U6S6K)U9356WVB7!
MHB/28W]X7<=U&6;G/S-OLAD_/0JM8X7S!5.PX2E_.-'P8A+"CEAP'H8LVESY
ML#"OJ:VV.UN31:7$E@^=5O@2BD>G!GH2C$9;;9A&21#JB'39:P_8:^0'KYM[
M"8Y"YUC.96,H AGDQ?]F[:RC-DU+U;2MO0*5MEH^S%G.4+?!G!9P3DUM-$S5
MTCLE09TC4E'O S:V'5Y7Y%/-E2PTP%*N^9ANI6.LQTP%7*]^C9D7LG.O?X?
M)2TCW%#':-?.FFT@E6;E=SU =%K.8=\ G3I@ 34U$-I;<]UR*:QEYK:/?H05
MQ=MSV%71QK5"Y'M-+RLB7EM01DNKG1F&JEL-U;"VCDSD/:D]4'6WR,K8:Y1;
M$1K;!N5TS'E43:VAFI95I2*4!S_N ^R7A(VFL %(1'HRICR.>8']EDD)QTI)
MJW1G#O-[A#CH.E<2WOG-RY:!CKF6V5:UPH+,N\^H*TBA/E;L6Z5J%X=])F*?
MWC341JM5>NP[(H?Q=^KQY0^PIXI0PY43V1G/>U)<9H=L*\W\L"EH.?^^DW"\
M03 2K.\&/\!L14#G)2&+,W!0CAIEB6!7GN5W8\:%HE*C=M:R3%7K%&7457KT
MEAR7]]YAV_#;HW .+N>WO$DQ*X)$FK4SJV&H9F?K?/C*QUP^-%K.:PM$HQ:Z
M,S15;Q>E]5:Z;8YDB,CVGAS1@Y1A.\4J*6(;WNI$[,9Y9OT$L-S5MX$]V :Z
M4!NZ"911EEAWI<R^)X,M$)<ZB$N6V50-LZCBM4J?71LKOOE^_\5QW4IGW8RO
M2OCEQ/HVQN94TVJJC699BH8J%?7=..BF6(/A-15M?\O8.KI6::1YSY]R50K(
M=CALS%_A4TWR?6Y]K[=1E+F-P;!F4[5:1868*^6S1 BTPI-:! *9:-?K:JNE
MEP2!"M(XR\$]LWMA/=X]GM\HV2W.WC#"6S8ALG[_E'Q[/QCR7R<A+B^]8Y6<
MKFH=0S4:1:6)ECI]HB*HBJ#RI/OE):@&"-"6V@*":AKE)R@A7>4*9)MFZK%=
MI.JVQOVI3<+[E;X_00?WU"XW??1[+NT(])6;Z_,OUS?7C]=7#\KY[:7R\'AW
M\3^_W=U<7GU_$-.UE*O__7']^/<UFIMNYD79Q?U'4+T@<IL5U[%IHJ/#PM.-
MSK @PBO\_B/R7W\70W!Q7M^K&(4[ME^SNOYL[9 LV]YS:SZ'J=\L-QAN$27N
M.4;DU7*:F+/7L-IJNU66;@CO8!M4=%">K16GYV]#!ZW:64-KJ(WM>R)408>\
M&!#W$%T@U2J_<;[>H8($-JMO:[=K9Y:J6V#VMJHL[@/$H?6ZAFZ'0QW$H89N
MJ99>EAXS1V0PP!D&$YJ53"T(JF3MS?DIPO$FL:$W(X<.9<*T.YK:;E>9, >(
M1BM9:C%H1*DQ#<TJT"%=::EK(\0E&[ @2#J$JK(Y2*6N;L9>)4"_<WAN2!0&
MM2;7=%4WRY+I4*FK[\9;B\$AJOUN6BW5T*IZP_?/.9RNY5;\+BR)AH^&V_'8
MH] ]\M1W2Q7D=4,ZL<"LP_+N]@&YBBM,VJ2\>UM,PN0*JZUV,H:I58KL&^/$
MUW0E=W'<]BBTD?6KN[>ED&;MK-T I:0L"DFEU.ZDNGM;-&J!R-;4AE75'>[
M#?NOB1,ZA RI/)Q*I]V2RWZ9A/#T,+SP1UV@%)JZ [<#. "H\%OH]$E5\;UM
MB:==.^MHAMIH5/KN 6+9<B;\?EC6 4EO-52S6>G".QC[-+"?_0!#G80="/CB
MF/51Z#)+YNMET-!WUO.?/%A)_[J/$],&CAUW5B"!&;#^N9<.EL!WDQ'K<Z7(
ML=VMXRBPQ=J9KINJ956=/0X0(9>,ZRLK0NJ D*VF:FA;-V$JEYI>9M8_W> _
MQ?.K+M%%:^RY*432!57!JVV]H3:V[P29ZXCV0#L_5EQ;KK=OC&LF3;>RVH;:
M*FS29.D[0)>90=_XWM-)Q()1855,JX^C!(6)JU9V1!ZT^90;CU%G6BFUQWZ
MU%EYT@K)P-FXV8BN6;Q[?D/M-+;.PJE\9>7#HUQ9.%O@40,GG774IEX6+#HB
M7]C2/)P"&>]1."$V2LO9@G"HCM.T=+55M:L]1'S:*#EG"WS">DC#5)O-*G!<
MI@2=2O]]\WR=+8BF#=J+T5 -LRQ%Q)4.O-NDG2UPJ0,"O='!K/22X-(1:<(+
M,W<J+7C'B3R;$Y2.05]5T]IJJS0Z3:4AESF=9PM<T\D=UL;VNV6QQHY(?UZ:
MU/-:*=%OSL4+S:G(37P&:.%:IQJ,=IC(F)O-[Q89S=J991AJVSRPBOTR\W^>
MV;-M1L^JR.SA)UJLG=23FRHL'$Z@=II-M6445;6_]D'M@:9^Q$BW=G9/;J1K
M@%)NJKJEJ:99U%25-T6Z(TC"!#D]<J(1P^Y_MM<G7"";K <GK'S CHZ*;GS<
MIOWTNJDU>5GCK] Y]1SWK[4HF+!9/$WM"W2+B_2N$H1LPCMGT7 G';;7PN(-
MH-0L DJMA5 Z E7F(?)[/X>^"\<3RH[L#'36Z+5JY[UGK.X1[1#F*==>KPZO
M+O9<"V($>]]JO^\\RV>+1YS@]:=-8ET[$G"^Q\];5?Z\C'O>L^!A: =LJ49D
M9O%0WR,^<6\'=\%#A,WB_V:[$Y8\<%X9:B_GY(O6TGB+M71J9UI=T^8-@;D/
ML >^\HS/^ZPL7'Z([PGS&3.IE=,RP_-)-/0#]!KDU3,-;0EHL]>V7.<M<FWH
MF-8T5>/_K0%POF#%CE_YUH"_FT1A!*H@D&[NW1FY(9]S<==A.-D ZCB+SU([
M#4TUFNM@N4.O(8783\"AV)%RR7ILU&6!8NJJ8FB&11>]+;IMN&GKK<E@&TRA
M_D-J>^T3$62P_L&8L1@'D52%AO,ZEU*'3>(C]P$W)<F5)/Q6A7K?S4>T->ZT
M)',H">X<4>CV'%:,D+9=4/6<_HGC*3U[[$2V6X5G-VQB'D/T'@!Z[5UP<.8F
M"C 8&BT5&Y48VV>85X'5\J'1BB;F!:%1A]"HJ>FJI96EJ])193;V)J,)GR?7
M9P.GYQQ99YL/VW#6$%;_U]K)+&U\9Y$-+^I?V8$'T A30+[D,,Y+)J96.[.
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
MC(^\Z%8VBMXFVV/9WO>3Q++JT*RE0452K(>^"S )K_XU<:+7:Z_G3A 0]WZ
M3W^+RO%.6Y)D18X5.1X5.3;*2(Z=VEFCI9H-'!8T7T=:D61%DGM&DOE*M9OK
ME6KOA#@-3:N=F6W5:.MJPSKT0085759TF=!EJ]1TJ=?.=*VI-IK;='"LB+)4
M^'F41)F+)MOETU\-S0!2;*N==DMM[8%)N=>5!^NAU*43\F/&&038HRQOV\@C
MFXNX'E0I(<[XG!.?JZF5U>E4IU.=3G4ZU>F\A]766:HA_NYX?D!Z(=< +EDO
M8';(<(#1E-:P2#G\C6N7N75$'(9NJ,W.-L/X*H0K(\(M+YO;&<)9Y4&X(TCM
M(,OSI L'BUL<X00;*K#995K'_A'>9G(X&UNJ[O#5Z1S3Z>2168:V5&:=]_\Y
M"2.JW7WTD\1;S+F]]D2V+>5%$;^[2+&[[^Q?$R=T(O; @F>GASG2CM__CAWB
M/7H*I3[GEF58&][05+-CE62>5X6-%:^H3J<ZG9US\A761^DX>;-LG/P(HB'8
M!E$,N_V [1#G[+_*&U Y!ZO3J4ZG.IWC.IU<?D[CK<?2&EJQXV0J]"F3GKH\
M++,%TK073@&LN$XIT:9<DXD-K5/H9.(J5K)-&:Q9E<'NI S6,-ZX#-;0M6,K
M@ZU0;PVETBAA/J^N'U-Y:(6F:Z#I<B_KCM#4H++)IJ:KEK:U]ENA:GE1-9^=
M/EMQ7ZJR)=#GSRQ#;;<Z:G,K=;O"UT/!U]F2]'+AJU4[ZUBJF='*K<+50\#5
M/*@Z6ZA="@1MU,YT"YBIH1J=1NFU@-*/;JBN*L5P\_V+LE_]8D'/":DI?DCM
M2/TQ)797T?:W=%RMP9.OPW#"^I>3 #DQI;%P;Q9]><</29Y>?P7_E5RWB=7W
MF@J@J,(.>XY863KI1EA%&5$+D$KB38OPIL*9 \29V78A6^/,6HP(PY^:VJEP
M:E]PJDJ)J4ZG.IUWR#C9"3ON #O62Z06'D$ZP9LV>SG:(H2J1*0ZG>ITJM.I
M3J<ZG?+&#I>W WRGWAM"]S.TVEFGJ79:\Z5MN4.%%9J5"<V6FQ+OC&5Z>;#L
M"*(ZA?9U.5J[O?*J5*=3G<[.8Q [[@8@)1BV2VX9V"^Y)$ZR"@<K#E&=3G4Z
M.^??RPV-DK!OLVSL^PAB',6T<#E::[]R^56G4YU.=3J'=SKYW.6S33BV;:8@
M50(+6RBTFIIJF 6,B*N0ID0JZ8H02VY4:=3.VDW5:A8UY[-"EC)QF*)[1$FL
M:2*#:;9,M=4J8-Q=%?=8>>I+>K18NXQ]B,HT#II3$PZO[T^Z+N/5:4=1F)A=
M"&-J!7=PD:37HF88G6+ZMA1XBCMR5NT,0<O&(=:?55DD9/:39#,DY32][J:8
M6))X6Y)X1=X5>5?D70AYKU%^\%[DW:$^06VKH1KM3D7B%8E7)%Z(L6O.-J_;
M9><:0>R@5IQ9+;5I=M1VQHR%W.U,*SJOZ/SHZ7S-'L3O2N<Z-A*PU+8V'X6O
MB+PB\HK(\^GKLTWH=DC9F!ZIJ;K14!L9T;3]4M?)4_Z)H (_^\[SV5_@'[G<
MD1T\.9Y<57.:P'H,P28PY^POW0 ?)W:]^8,*0T%=6X6#!N+@XY I=@\K!VSO
M%:N1/3^"I]L!?.Q1:?)38+O*V XB;!P5#5G($#7I#.R(]96!X]E>SX&+P@@^
MH/2O>@&06 %2L0O+J+<:\)2Q'U*BV&G 7#MRGMGG%Z<?#26EI6X4K]:26^PN
M[&82+;ZEO,?W]41I3(,H_2]N :G6Z5G=0=\8V(SU!Y;5TNQ^SVAW.P.SV[7-
MKM7[AXY3!L1=PT#N8FP_L9-NP.R?)_8 -GEJNR_V:XB$DX8.@&;F-!8!\OW!
MULK&^JN+NV]7M\KU[<5B5)WE(HO7.AALLM;F&DOEB 8LV \H4?(46"<+\"I8
MC5V6I2C# *74GU;C6;L!P$=NB\SD B4<<(N_?++/LI!XIXB336\7=[</=S?7
ME^>/5Y?*PR/\^/WJ]O%!N?NJ7)P__*9\O;G[XV$=C.*[X#!U )!>=&K"*>R*
MC?@!LG;E[\P.0N4*UM./PZI<H,O8*DB%_M0@C$*7VUEKM8I\-\GMA*^3D@!K
M<.UQR$[E+Y]EKT?'HT?139^G63KRK!D=@4Z&?RW86:=1-PT=.9H(K8L7"V97
MAZ5]FO^\I=<MJYGYE5;7,S]?]"C=J!N6F>M1BS]O- M<5&/IHT0ZPHSDYM@^
M8V(%_LMLJ'UI1#[[EDTRJ@5!OHMY,(OF<^R6!.>J5(9--GZ,0)R>V;,N,NH)
M) ZJ6>Q*%DM@2X29\O7[W>_*W?W5]_/'Z]MOROG%X_7?KA^OKQY.M\FS66W2
M+4+5K3)XBEW97A=VK(D(:5,/*SNVR67;L:-JO1VO[ZC*VN&.'$[K;6VGJ9)S
MG>%-LU1)DP4DVE:T<*BT\.93'DVKF"F/509Q"@'H@:=8=NKTUD")5/TJMFD,
M&"!!SP$+TV,1R3YJW@B_]^QPJ$RPY8KC*?Z8H4/$>U+PL)Z=R&'A5JK1KA6@
MMU)S.,,#<[&Q<\18WJ^3C>'H'7)RJ>@<#Q@Q"/1\V",,I_Q;? >XL/"@]ZS6
M8CW0%%<KG@8R_.X2B,^]_GD*P+EY:*-VUFB .M$VJ^*= T2HY4,.WP2CFH!1
MS9;:THN:7WCP\XD*TASV15A\LU$%@+?:/*9AAR&+%H_4V;,.(N]@5DX3,8(3
MU><[[Q+P2@1H[P;G!%4]-_GB-!-#U=O;#,>K^M"4$8N6RX*"T:A=.S.;JE%$
M*EM)>LGL"WL%@_K9"1$;X,@4T,3[#C?%V&8\]C@4I545\1RD7_W@TI]TH\'$
M/>_U $I1?J]%!X<[-E5-+VH4>:5QEPF1EG/9(C')PN;4FJ%:9J5I5YKV:E'@
M>,_,B_S@50D8/.^9'9?*79PXN): _"-P(G;IO^0VDBV=1KPUS++,%*I4[?>3
M 06@CU$[LX#SM[?WVKV/CKV'G'^_C8#</>XKQ6UYM0AV6ODRVX,U-]T6UV>U
MTOU+B$++^7Y!.&35SHR&IIH9I<"EU/H/3:G^YOO]%\=U%6<TMIT 8]^5(KVA
MZUJ \CJ&Y"9Y(%8#*$)OJ4:G41)MJ-*FWX^KKH-# ^<7ZY_\FP5^%OHTXX:X
M)4&?(]-5;WWOA-*#Y%17A?U"\;B9?^(X-(U,DHB>F'>*=<H 3%F@?,5!F9NG
MML#";*B:L35+K135$J)/-DLM$G_:M;.&VM#*@CY'F9QY,;2])WC^=,8E!70I
M,\]U[*[C\NQ+I4J_7(!F+5Z?76(!^N':X^,I/R)5TV]PYILEU*[#/W=Q_Y$9
MF3(FB!G5S'G&^MO*R-RR[$92B1SF>NU)*'^/@9Q;SG5J9TVMK7:,HKHP5K;G
M'B5-O05*-;3:65M7]0QO1I4Z];:H$4?FJCJ%MV&X$L .R^WE:^A %E9;;;?+
MXO>N3-*=<MIM<,D 7#+41H9W8U_+!O>%Q?[PP.1T61\46SB^2:75;IR#-$L/
MV!H*G_N'$PTO)B'LD04WPL)_S4TA)E!(HZ,VS:VY;:77EA"W\C+;8I'+PA(Q
MM;-]!+M2<S=+"V5CV^G+, MW!OK1D 5*;Q($(%6WJ<DZ$G5EL0=]GGH$P(4O
M_=SKWR&P+SBL>85-;AIJU,Y,O:-VC!*T/J@TX;?DS3/6U3OB&([HT]3&]D.$
M*EUY$ZRA$U0\#(]OSY:/0Z_9U#%!H+Z30;(-R:4%:HVNJ2VC+%G9E<[\CGSY
MC9$+![HU&X!<94ER.ZX8JSQ5Y8,,L7ZL8JS[+5[C&.O8?CV^ .M;-#9<' Z[
MYR#.S?4Z8.6T=+5E;F/E5-)T#Z3I&V-24ZN=Z:K>U%5+G\>E_9>@^\%O@PE+
MW$['Y5UZ2]>_@.Q-DL^7FSQT8+3MI@I&3$EL_<JGM&-NNRU&X<PKHZVVFUMG
M1E7>H\UZ<@Y8$%21UN+9K83L=P[8W)1A8FY\NZ&I8-"71!6I=-M=<MMM$0KC
MJ9:IMJVM&P%5FNWFCGKII$^551R7BOL^+H5T7&M]_4222J-VUC8-, 3G2:4*
MF^XW0FWGG\^-4?-L&,.EAJYJUKS&NZ]IA67FNK=RK, 8VYSA_+WNJ_)!S!CX
MF#ED8!L=>(O!TJ4CK.*T8SB$"SB#>W$$7UY_ /R!I.)H5PS[W.2$)<BJUM34
MAK6U4R+7&>Z! GU(R/@F7/X-\;*-]3DMM9W1P#5W3.*-QW0?^*"UF8E[U[=_
MNWHH9.*>@,7"TTD?T*["M_D6=V3.K_M)T!O:F-OJ#U _ +*/7BG/E?UKXHR/
MKVE3@0,'[NU7&OCTZ)_W )@!NQ?PO7=M+SKW^E<2Q+E9:Z=VUFEVP#J;SZ"J
MPKW[C5(K^F*_&4ZU-% CFVJ[48*!%D?F%H,S!+CUP_2PEP)Y\=ZZ-0H=3$ 0
M_AKXHP> \-V@.+K1,9M5A1V4)'Q7><O>=4S!F^&543LS+;79V)/64'O8NGK/
M57>N"M#(@NXDA._#4+%1*^ SB8Y+;W]#M?V+ "X+;UET-T!WB?BFGZ-]9LLL
M6_O,2G'?I>*^-E:M(2HL;)>NJ5J&#E+I[F^</>2$4>!T)PAL/L39]Q Q M]U
M,:8B>[4>E^9>5(EP0C6W4V"573=#;&X2;N>G;C70F:)V6O-5]E6D>[\1:TG[
MUG?!K&;MK&FHS<XV7KHJSITGSBVBVC3#*ZR"VN^6?K0@C%@$$>&@7573+;5E
M%C DM8IL[SU&;A?9+@(EL<;8LM1V>YL$IBJR77QD^^OU[?GM1179KB+;25!E
M$/@C)6"N'8%J,+8QIN+Y457F44 HY1;@N&FA::M#<EW+=EM4'K']1Z/U0R?;
MX%%;JYTU2H5%1^8!^^IXMM=CBDMM/\:!X_6<L>UBMPBRL"O/UX:<5@#V!N%Z
M+\$J_1:YR40G7T0[(T6X\G*5#8D*9+,YD&AI^*IM%!:^*I=':U_8[+0^RWZQ
MH.>$E"H4X@QCQ1]3"*)2:PO($$* WG%X7@E YP[*M<W:64LOD5I2*;<[R@M:
MC4W+.:]5ML2!(W L9=;,#4B6%A!46.6_.73BV:12[JL$_N9^VW:#NQS:JM[8
MNO5HKC/< RWY:)%Q.2=_0VQL%N:X>'-</(+H,1\"BK%CXON8=D^_8.[],QS=
MIIZ,56&>(Z"PI02&U(7_725P_LXPIZH7L3YEQ7G]Z0]25][#XOW^?*>"GCM!
M@%[]ZM&I?K<C=C48L%[N+.PV+ZYNF&HGH]:JX.+J0XI"[R=:OTD@NN08CA.H
M*4OI+8/953Q[/2&T2/2H2I<].9Z'QH<_4*(A4UZ9'1R7;ST/<3;?3NCDIC"*
M=)H-735:59'8 >*:WBX/LG6H?W-'1X7EP!J*[BGC9C@T;#'+7E.D\LV=F@#^
MOC_INBP6J]NI8&4#Y)]W")^#84B-$O$C+(]6+:VA&F;!!E0!1[XC"ZNB^8KF
M#UCA[1@%*KREH'G28#Y%F)\&/_O.\]E?X!^Y:'J.X_4!5GBP1>.*KLT@2VL6
M60SM/_AFX$Q\[-OF>Z< 0A;@5;6SA\EX[#+,^+!=I>^$/=</)P'E#I"Z,G#]
M%\7Q^"'CO?'AS.YT9 =@A:9.X;/X!,$^DT#18UA*]3D-'+-)T"$XQB?.SPV@
MY-KCD)W*7S[+\G['H[W239^G%X!OG#DS>AW_^O.+TX^&IYU&W31TI":A@HH7
M\V_U.A#:I_G/6WK=LIJ97VEU/?/S18_"Y!++S/6HQ9\WF@4NJK'T4<>BMM.,
M7^RBL*A6=^M4A[)M.[? /4R1N6J> <>&>T"/6Y;;K]HQ:V<6:+VM=DFR-MY!
M;ZT(H3Q;*W00PW:4@.TIM,P)W%7^TKL(MLC^-9^IM+7/MFQ[7I^8LW9X.,2\
M:JB*/V*/B!!(SKEIN5$[,PRUL?U GO($,BI".%!"6#E>:"M*:-;.3$.U.O/]
M4G<:99'O$6#C_H@BLT+V\?Z#DOAS[A^>L>Q[)^3-R=7ZY-C';[?*<JC9[.X[
M_G[B#TXF(5/L,&21:/&(\PK)PY<:WT(%F.NK>>6SV>8<G0=DM*VYM^(4/4*=
MN\&/D)TCWMQU(QO>UK_V9,K85S^(IWQ0>: <Z?2:6Q12BYYF VR\SGP3M<K;
M419NLI>$\^YZX7L23AL(QVJK6D:'N+UVC1R(;!VD6QM4#I1CL1L7=XW\&QLZ
M/9>%LE/O#T23=(E]_EAYIW9F=!JJUJX\*A5EE)TREC14+9PT3$T#TM T56]O
M/=:P7(FL^R =S]F3,S5.8+,V>@?N$.*\RRSY4?9ZL!/0;@+68\XS)=_T@$*=
M]1,=*KZ]WWQ[,=LF&^<\(?,+WPN=/N-)9(\!K&_  D"66_B*1A1P7/H>H](%
M8=+Z_2Q,32];)Z%*XZDH9P.-YTU(9PVU" =#%=HWH$QJT=X(TS%O5XF>@\F(
M]:N^6^\G?#([A2Z7.=7PI8-&L>*Y]&;=:$W-JIUU=%6SRI+U>4R&#APM^N1Q
M*%XO?<I5E?S;\^8$]E,7YJ8?S"]K&6I'*TM:354I7TY&713"-3%V;32::K.Q
M=7YR"?7IDKL9'WVL21O83J \V^Z$:M(\F<FTE(EO53"X3;>[LH&PV.K9=2%S
M."RI,(Z4F_6T"I-U!9YL29-M*G*NR/F=-8S<]-RF-#BKI;:THM+@=D71RPO>
MIZNPFUEUWP)3SO[2#?!Q:]63+WO0.R9B&J28#)EB]WK^"-[]BMFU.#,J5.P
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
M!ZE,F$5Q:#O'67$+87F46>5+2@624^]<"I64"0AKNTO%>6=6GHZ?+<.1%&Z
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
MDP7A/[$$SPAGB!#LJ-WM!]OA72D3G(B  [O+-G3IZ[K:NYA)'G&\!9$"J*P
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
M8/, BOP*U8XI#HB"6)[Q1;;,A^OR$I;"O\93U'610QU4DWZ8+! F%;:9OTL
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
MA$NL7M16S [C@"$V$ R/(1NV_J67SAF]R/:PSO'!B9;P\P!^#E.A!1*1: )
M?WS*GT:P#)J/XW%U@%-,YP:_$>3:T.3$RV'.\.(8Z!VQ%5(=7C2-0]B:,,0I
M3!TO)=G,]CP_TH!9@!C:E&U\^,/WF+9A=J M G]%$[ 5KIW;$8/U4Y[D'4QF
M-64!US9]P<@ZT%I2%7;#CX.$</32A*C=2V3Y'909$&60^T'#SC7/UY!7<->(
M8^PY+@7_&N+F(N&SZ2?\Y @)N'- SF@0X,@I3T]N<%Q[MG38/<H"?ADP^!F\
M$%@;S$W$^*9Q-HAB$!R"S?RQ9K,H]R9,FX4:ES2:7!CA/(G;D0N$!MC* &@,
M^/KXUQF6$$0>F-W1$#9B[7-^?$-UQ+"RMP_./%I* ZT\*)BHESYB3\&HQ='V
M1XKLI_#;#-;$@C-QUX<KS;!R5%/^NPQ2!_6.74U!PWR_LA<PWS>V^V!O0C3#
MZD)AE3G";J/)TU-@5&Y2WM]^_N7])^WCI]OM^J,ID_WDH_Q@^_=X[J"X8"\"
M=*BH]/V#@W*#$O$U@@^XY*-%E-I#DXJ#9&ZGD[!MQ==_G0;H>A4Y)B=LTJLT
M)E?]CE S,9O?1/+3P6,RTB057=$]^\"F08Q&E8A] SLQSV "7Y!]VL\EV^F'
M<==AJR'*^EEZZV@=XVCQ_#]]23^%QV&/=K@7<NNP#X'VITJ1ZK@2)J;<X(\I
MT424(WI1P[P_>M(/O$F<FRU-!>6!Z6.H32%$EHRF)\/@2>=ZHIM]LQ $*QX5
M;:(W0T9@N_TH>1^)[W4S2<CQ#G[=A7=0E8KC7N=ZJ/>&NZD( \<SR8]%:*:"
MJM@9* SV#A1()^$KLWK:EGKZN082%:W4;W9KH.HW4*U].E$B@,OWTKZO*.0)
MF[\T^5:3@_^49'FF2W]4Q(NIC9TRK3W889*2F&O(QW=")H"YX$=KD"Y[MNQJ
M.#CCI3PS.UQJ"]=_H*?G3DA&E0EA9"&*)Y\"'P\H0>.L P?>H@7X'YA<P*(X
M\/ A.0%Z,Y#[.XMRZ1EI$W<O1F94 B?\3M>>_9E#ZR*%0)F?.$(9ELD8D T&
MJP'5-H])*ZQ]S*U@[#A;PMB,!#QY._-8<(=*DYP!'EB"="D_Q7> 2O7\E3/3
M[ATE&P3?@(]T^[<O&K BZJBE,UN"5X-J4O/YDR%0ST8]$3TP!KK(ALG"5.Z
MRHN8B121RV91X,QP6" H;(BN@2K'5_ A40^CTL$UPXQ0,Y GX;M=[7_8AM\&
M7W.E"ROF=*Y 9. ,-T9O&9^1FY]LZE:W#GPET&0%SVZB>G9FQK/+^V"_I=K_
MH[>.H\3=NC)3?POK\(OG-G_6T4HL0&5()S0E@IYP0^9#;H\B(/2:6(C]<,*(
MVS/NEFE!C-2->&*.<VX$@HNI/(7$<01O1/LJN$,1EU2.5OX<MC<.N0PEXI *
M,Y>_++4#MD!>0'V?/@);@#O.]02;7X&9".P[)FKO%O#.-2K.KG:)"O"#[P(U
M$T?:]87ZX<Z-+7T&($.\1D*'N/&:/,47IV4EA64[PHW?TD3MS5W N%+X0KSV
M=6EO*3*#]<W>S., O8"4=<W.]2A_<O>:/(603+Z-XW,E"Z;\AMTYX79O#%04
M,"+\EE:-N2OD J%.)</#OK@\WXST47/.F-M&W2*=J[FVCH,PMGG(QYD]_;6=
MK#PMX"3GAB;9U3X+UA<,JK@[^B'Y>!IK1TY>I,IM=Q9S,(P8.#,H,VO20"7R
MHFV1ER:HMOXVU2;5@F1\8>02]1(6#+-0;_"C,)Z&P"OP#44#PLDE+E-VQ08?
M%LD5L+4?T'MH+_&=;GX'DZV;$?8(6=O0=R&H[FH?E"&58QENN%; U5/<6="B
M*Y#M.;XVG5_NY>CE@]F;*B<_J;5+D\%AF@)&U;@6?,2=9!H!;:4#D0-H=%S)
MG2@6T*:VRYD;\_R<Y0OAQW/UH!]U([?*'^@<T#[D&0@' U1'M+E:."!W1VG2
M+0FL+_8&";Y#B\[M32HD@\[U8%C4HO ;/ -0S0/Y70O.URALWAQ",M": =_N
MP(_ON,\("MAUX#.AFMB/M2.(@9$5\:JMAK<!N&CWJ"G+5:2NB8",K _XI:]&
MT?(U\*,') PH]!0#%<-"L379_4A4O3B#G,>S**?I0T754\1:6/ J=B-G[6)^
M<[H1'CN$5[31J0'A,TC6 ISIK$G'AG(@T"+V'7Q_QST4;F<B8'V9/]@V-%=)
MPMR$PF O@2UA<J4/:,XB71Y&)L(EY2]+OA)3+ATAX'X[F:J*VGW4VZ[=]^7L
M9"*EZG[8N2[1]KC/5:=JG'JJ%EBFXI6:/_.['E&&8U!>A#.[RX*#KN?V*N3'
MW[H2W"2'Y$"**9GTF,:AM]G:,3I((@TI7MTMOOZC>,<.+?0 -@@FG!)EU+D&
M+<+8%7IP>8TD7=$D!53B&^'Z@ YH,M,(5#;)$O18VG,R8%.,%\-XL8!XA=MR
MHJI-9A3"1%0Y/L\2*2\02J+$\5/TU66&"LB!X-)"Z!XR'D>7:5W,;T!P[<]L
MP6]<P<AXV)N7)4D?Z5=-GRMY5YO\#B=S*6IJ8RB($P 11)4ZF[$U3B%-ZT5L
MMO2<?\<\[P _ /ZC':1<!^5/S9ZN=<CE^B>-JGB9>@>FL]O.@"JF; ]J8A%>
MHNE49BGR("$- L$KCH=%S0YP(36"5<)@2ETDI2_PPZ*3RDMM[IGKK\DI5U)&
MF< WS"2CQ!KR>UF\9<8SSU'F)&_/'4,V2+Q,^+OT$;N:+"TEORB U04.;E<4
M!<XTII),R35WOD@>S%C@81:'I%C,BP=S,HVLBQP+/N!$- VV@J%@(G[P'?9C
MQI(XR/6]NRM4JCQ;5,R8;7-";*S=<S%7D4ES4-P3;C#1A13 M%BZ+K$4YCJJ
MSV//X5].& 54,$2D7S)[KA '> 3="^0>J>_XBE7.@W_R7'E&N\_Q:"PB^>)%
MC12_1?8/W/&U'[(+U4^*44HP'7DA&%?\LA",M 3P)I@G8A>L4<'3%XRY0"1D
MA>8<M#QLTBKF8A;&- 0-QX1)]4+.W(D]?24.8:Z&O:M^[\IXW=:5'5)7-FKK
MRMJZLE/6E0TZ6[]%L7U.]66/'V^E(3P95[#/:)O^(YR0?6!PA>-3?K;ZIH(M
M*>QA&:'$-#,W1# 6M]<A>R/_\E:B7SD>+9L>>IM](PI[[@H(O8Y_+?2 ->F.
M^A:J @$=(%XLM$07R/A3\?/!J#L:6*5?];I&Z>?;AC('W=YP5&FH[9];_7%]
MDYKL'.I8N+%C<7U+[J4)GCK+_:R">A0XO#D]UP1$Z6=)N7Z&<C5A.3?Y4J-:
M@Z'H9%TC7U.IN*K"27LCR5?FL7TP/.N=V4MJ3IDF&;/)[&,Z0#WOJ[U[K?!R
M[NY6*.?-I*&_!3!!GJ'=DJB^Y>IDOYN^8VQ1:X[U_K N/*@&0)"U0G.90C/*
MH[&<2V@FG6NSU].M?E-:U+:M,%YB*XQ3&1P)-EY)*"9XS6,TT,&U;]'J+X]_
MJNC>P_C'Z%Q;@X$^PIBZ$?QSDH1(BXI:BXHJ@J!68S:S<SWIF?JPY%9:TV!0
M6^YKG(([EOOZG>OQ8*CWK;H:03>HD^ %)>:2PH*:4G-Y/*P&Y>8>G5J;G"LF
MYZJHU<M6GB=,9WWRO5DEY4H8Y[W>6!]9%Y33:GGM";) E7EM"&[D!&*605V&
MO"'F^EFHZ381]%2)H&UR4=*T<&*U30LOF'L.20-5UJHC[-TTTGO'MQ%K8"9H
MSU#N!8,\GY0R%R.)QV7+*LODN'ZONEFXZZT0MT+<:'-:@Q!/4(B-L:&/1G6=
M7#<,\7WK98R=M<O-J?(V3."@W^657JRA!ZJ'H8!NR=\=RD(D2Z@\NLY2![B@
M[!SUL[B4I3 CXGM\0)83<ZT("CCL]3K7IFZ-P*8,BSVJ:>%/M8)/+"(D1/8K
M$+KR.JCI[<@:Z*99[#A2?1U;%,(I=P([I>KC\4 ?3^K8B2-6<-Q.]$FY62/8
MB>*E<40X"O%6G7//W(V>(,(1M,Q.Z-/D(@N_<ID )>5%$Z]E)[A0 H;CJX20
M"=D=!PMP4%35R\X<H4!.+4564JX%AE4@-IX)*AWI.7Z5W)EIOS,55P2HHF3@
M%;/W7,BP<]'E"'4[P7[6 ;O*7% N2WQEKOD0XDP"9)/#K1'W[E-0E_SE9P%2
ML2F@NB4@>2HN3I# <(F;P3 IPH1S03H$>IQ $L)+PR%Z 7/\_@ZQY 3J?^X"
MK;B,*5]<#F>31;.I+"3G9X4_"(D#U1Q!*@<9*4B@+$_#(=$N=:?@#T5+?CE?
MF]E!L$'VR?!M9DR\K?Y#<,A6?A$/%I_7TRO_=CE$G"0)QTF9.QSW@=]*+](O
MQ196E?U.75_I'G5S5<P?7"IC3UZ^E_"P AV'6]8,YJO ,9 X8?+:L]'#F\_F
M*P3G"1/L/A!LO&8/O.FLUF1A.:Q,:MV2X?*,N009]P/TZ#.OA[UV)8J'@*7-
MXJ=5N'9]P/7.I[]K2_N$=VTU2^MJNP%;C+P/]<X)UWYHN[] 0+9&8!8.E/ .
M948T5_B<Z,5WR89]@R%_=OW9]]1G&A3Z,<!G^$(&_M4:(]$ /,KKK^!KH<2^
MY^"?7PA@"77!30J*G" =?%PA7@O'D,[UX,IL8OE]7?[^YRAZ=$%7 =5?. %8
M/0DN!=0S>\:$4 S) ,X@LD7T90&HNDYH*CM2I0 89*-3)-?,$T)\9.Q'JLY'
MM+ZLD8#75_/B,YT:KZP\"WY!9!0V#S^ B")W?%Y\$=.Y%WA^B8MNI>PV5. =
MTQ #ML&%OSQ_Y2OZL2$I/<9IG*#N<N!8$%K&D2SI?B9%"@A0F8)')@](-!="
M+9)(1B1IW.=AZ;!ABC(%Q@]^EGIY*<#-?OSS2J*^W<1W0%?@V7Z?7OIWVQ/P
M^/U!-IAZC5X:^\%]18ZB"<,MW8VV8 +%##9NF45A299!&_^-@($5*N"$<+D)
MF#IB?@"]IIL$^/L.IF/#@"DH44HQ6R!]K#07P70XVAS,>4F>YT)%W$D!R/<B
M4%>[X:VJ.)X+=[4)=3U()R)?GKYSZES9'A 0\>8)=1%WREE-XP#7#9XV_"R(
M%@ABG%\,4$= SOR@GE=V\?V<_@H24&$"'#PU(+9S(I=/M2*&VG [A!JW"U\2
M>BDPL EJVN?%>YKC+=#^ Y+^9@I<^TW.L @H!K-( ,4*@&O#GM6Y7CB+:%/4
M)P+=CJ"8$.1%T"9%0%6!O?X@\$R&#2_D#]<<;I$B%^+<RHF"#]6S"TD#-P&)
M54E;ES=^?V1K1+ZHRK[LDX89@8[OZV9)14SU7)*1[Q=\SH6-.]?F4+?ZQ87E
MDTM^@LJ8@OBA2L:44+BT4X2J/)B\RJ0[E=#'7*))' ,(5D9G/-R)\:&P'8<3
MS,\#GJRV5<-#=DKTHH$=D]-&?Z+>;<,>/F-]/"K6$AR096[H(HW>GKQY(3X6
MA\$)& >44Z&WW=#?QWE(<<17]G<&7_LNR_D0,N=U3Y"=E(#!?$0 ECY*8>"V
M"NFK\#5F86PRTAPG%TP)"QX<;!,E$'.!(E.&"^%@N)% V4_!=1>/O*6K?5U2
MZ P+FRIA]ZZ%<15#EC&E$)F?!QIJFO420L:^DV$"%W.3NDO5J<'?:VNA QQA
M!^G+Y8;)!@%^J)YF.9[D8 Y5C/"Z"N(P67 U%43VDV<OU2DFB76Q*0+Z3>QR
M%>M^$1(D4D0D+TA>#!8QA5/F))$+CQT[4/GYJY43XJYQ*$?"I7462&\]ZX?*
M^#9U@F7K)9!#'*V+E,X,1]B941+4()YDDAX%"?;$FRC+C*S."/P/AJO.D%J\
M)@#1 G+U+EG[XXD]M*] C!R-"(JWLGDP\+ZZ#AQ5M(&2YJ5;NW_F-,G(GMZ]
MVX\J:FEJD2!FYQKT19$:6052 V'RZJ(\<XG3<F:#Z6)N+FPP3(O!8-2SYS-S
M/)TL^M.IW9\.9O]G]/N=FM5.&=9>BV!9@F YWHY@664#K60#6]S+9DWVQ+B7
ME7%YST@&;53Y1.*CAVZR'VQVG388Q>[/\%GQM"$93$>PZD</$?:?Y=?9DLUC
M3%8GKQ#W=K]A6%8RXT%^;MM.+6@=EX(RFE#GD6-B9',5A9E[4 D^:3V=89J"
M*SI$A-!Q55S18;\['/?K@?#L=2?FL!9<47B%56VDG9/:#79:T\WA)E=!EY?.
M7BR49XM[6HU8)X$ZY;<#N"?88-'XW7Y(FD*&PJ ??C5S:SWY7I<GGO55@?($
M>\$! WK_)LG]B46?%_(67N6DP;!S/=:'YE ?'W]9H.KV/<$]S[WF<N@ET!?,
MI^5G)"?D4POY=-SKZ[UA7<AA)^73%^ /_>$'W\%9OQ+]DUK<E".5.M+SH_>%
M4_,X:1EUKB?]GCZRF@)=VF*C/+WRK9&?QIWKT03]A+J ]!J"@-)D]?H!KTHL
MV9S?ISC:J;YLD=A3Q4J:8AGSD2*!MVQ'([T_+-:ZM@@HSYZ?]E2Q]?&3V0.3
M/33T\?$@4Y<&A]+;=<5\KU"K::J]7CR%:O2Y&!'=4^6#5%:610-D4;?Z [W7
M*UXR/@&"0J4=? +WNY[)M@J@50 -L-&'* !$2^CIPV%?'QA/@J%R<@VP%Y)*
M_A#^^*Z0N\J/]BVGF>Q7#]6<RHKQ 945LKDZOU:WJ\#"+"FP,$L++)*&[<H%
M3@5H0?N,I<K:MR602=[K/.@R)W][R9S,BRF64&Y\5KWN(\N686\(,R.I6PZC
MM 4U5AF):E2JJ:7.\J(PE:IOL6FY%^4Z9&-Y8F#/&9#Q>PA,=X.%OBH\B9/R
M@&P!'S#-97=T=9271HL93#=:3*51_&*V>"&O?\++)WBMST7\![R7A@WK898;
M>">_U2=^K6N^N!R^H3>M77O&9Q)RD!1^$\5>(4C%?R0,  )"(*VOD.Z(#^ H
M=QU3> $&'.:O0)A<9\%*;CP*^NFB<7C 42VHEET!+7 WNV5S-,@+)P9Y$?L5
M+X_EY/0?(5O$[J\PG>+%MGD<(*>D8CM0KL5*\;K:/97AB:8R1/.6GPMG;%1=
M==1>;9]IN*4,R[0*95B7H3L^%H70FU? Z5 +L KE5U7Z.!],L4<*B)]EH5?/
MZ/9Z_,7EE5[YV$5\T3>[YG#+=UL?VO[%J+:QAD9#)V;U&SJQQE*LL1-K[E::
M7)IW/2,2FKEK#\:0*X'S%+>5/F\,+ZPZ[NGZJ5\\Z4JK#',L;?8KL723CT;+
MB5+PJ(YIW72RWN<E:9MF\QI>L#M)?_IM6>&72>:;V2Q>Q3R.O^&1\.[&4RWI
MZR+]IQTU%*VJ:%5%T\C<JHK&J(HZHP>%2F85*C7M&/-+6<;Z,&?L^.*1%WXT
M_)).?D>/'?UF$\Z_((+[^Q\":%,>=54^%$;,L]%('U@UUX0THN2C%;R7*GBO
M:I2\':<^BBNC>C*5I1!+T7L3?3PL2N'K5@!; 7Q^ GA"RP=.[/%V;]*YMD:Z
M9=3<$:Z5ND9P7RMU>TC=Z S^9K_7^INMX%V>X%7S-W=+WNG]S;X!UF\XUJT2
M:.'6WVP%\!D*X DM7QW^9A^+[XVQ/AK77'E_4J"'X_+"33Z"WY+ZY06_)SM-
M>_$W4$>[>YV>R.?L=Z['X[$^.3[8:V\U-]&=VLU43^!.#3K7P_% 'TR*UYSW
M=Z=:WGKV^JH63V'8N>[W@)F,%H/A$CEJ<@X+:+46\)GQ5#4+N)NIGL "CCK7
M@XFECWM%I=5:P*;QU@GU52T6< P6<&+J1J]AJ#&U7K)X!N'P.^Q Z:^QF1*;
M+3UXZ=WF9)<<7CP WKAW#L]@TKDV!^4-=EI0Q4;R5"7/X!&F.KUG,.AUK@UP
M/<L8K/)10\M;SU=?U>$9#(S.]=!LE=6%,E1YI[G3&L"!V1K 9\93U0S@;J9Z
M @/81TS5<J75&L"F\=8)]54M!G#0N;;*G:FS0E:_M(/B;PE 57M6?#+Q,L_A
M#@S!';#T\:18&-4FRB^=I8YU!G8V[AU8V&QM;!KFVY:U7AQKG<09&+6ZZH(9
MJKS#^(G-W[AEJ1?+4J<U?Y/6_+U<UCJ%^1OV&J:K7N@I\4=/$\WRM-__RUZM
MW[YKSXA/)F:#,S@%0P,%K:]/^D=+6IO&;&**?#=3G3Y%/L3+,0-#[T^*75#;
M%'G3>.N$^JH6MP#/6TQ3'PZ:TM:QY:@Z.>JQ#EDGL8"#U@(^,YZJ9@%W,]43
M6$!J7M'7K9+KH:T%;!IOG5!?U6(!+6 FJZ>;@Z-O$+6GQ$<U.[;O_8 :@"!/
MX!:<&MF[S4.= T1Q..I<]_'^Y_&@-FUNLXGNP;GQ 8=X(V8TT<?]8]R#EK>>
MO;ZJQ3V8=*X'NF4V)6W>\E.=_'0.4#>KU]J_9\93U>S?N?'*+ /MGZ4;K?U[
M!KQU0GU5A_VSS,[U6.\WQOY=W+'QXQU$>;>5.(27LR )CI^ZQ<+E8_M=)GS?
M^!P@8E:_<VWJICG4#?-H6(+F)&I;&7D^,E+-9SLW*)J%9V:3GMXS:^AIT !)
M:8\T#M2_M?AL>#ZF3_I#O3<9M]JWU;X-EY!S@+Q9>.RGCT:F;@WK AEN9:25
MD9-Y*.<&K;-&B,G=TT<3H_50+LM#>7K0.FN,VM>R#'UL-<5#.479Q:$]5"NI
M=O',5HC[2U;ZU=9^,2)[CK).BTY"QST+3$!=)U?[[=N9SAU:@;ML@:OD?YV[
MYG74HXSJI*];O6/:$+6"UR@>?)&"=SI+5X=O.L(+?/K0Z.O&\>V'6G%K%.>U
MXO:(N)VC('ADHF/9'\+_^\7<0BMPK< ],X&KY%B>NUIZU*?#(F.L&[WB'=#6
ML6P%[_D(WNDL72V.)9[QZX.^I9MF\QW+4Q3:54Z'UO2\0J4^D&+NQWC-+-_^
MLYU=.[MV=EMG=_'74D=; )ND)=!<QYXZKA,=UM;GA$=#[?/M\V=[ODY'05%)
MYF-MNINA-,H=T7]XB^)M]N/4QQ%%/X*JG""[=/T%1C<'D>!B@IQ)>=>AZ(YY
M2HCSJV1,RN=5#FL0!%ZW,(%06RU'I>UJ:*E=*W67)'65<GJ[Q*XTHR<ET&&U
MI?4LE$IC,M3[)<F&R@5[K4"V MDL@3R=&00A_,2BR@*'39U-LQ1UI#6"K<R]
M.)DK[_=5K^LY;EW/5NHN7>JJN9X[Q.ZI7$_LDJWWC(ENF,><*+<"V0ID(P7R
M=&;P,-=SW.M<#R<3O3>H"W#YY#)'2>.?(DR0PI]SY_Y:SOQ3O()-F5W_%3Z4
M\US9P9WCR>E8L$GB$TP46UE!^5<<1LYBPS]RO#GSHC=]BY+13XS;8E+ORR73
M[+N[@-V!6M5L1:UJ[,>:>2'3 D8J5XM\#=9_E>2+Y>=.>@+% 5&U!SO4_E2%
M"W?W7E65_>=%OO2A,C<:G6MC8NK#4;&83[.]><69[VZ54_/4L;TUQG#C8FL%
M;1X'P/%:!!NZ8780:@R8:ZZ]8S.VFK* "UK?T#6S9PYHH?"7O@[;&*X9C''/
MW$U70W[P6*3PA&2#5[. S9WHM<H/^+(,S_@+^FP/'L$)N*E:04I4G7M=?$;*
M3MTI?W$K%O [GW]^XV &1ZK$?N?:TD=F$=.9LV EGZK @R$HFO_N7)US?0-^
M&[=74C'[.L]S6J+^2=%65JQ/HD5IQ#=.!%I\MH=>E036B*"TJ;\6SM<.6VYC
M[4C)F:*=K#[>>>0("H*D'[B,W?FDQ^B7 5L#K\#:^+>V$VCWMALS5#0W[WYY
M_Y=0F^61QT+M%5!PJ:W]T$$6(]52?#E701XJ.?FCLCF&K[6'I3-;:@\L .4U
M^W?L@![4IALM#C40S-_LC08!/B@D8Z2]"AG3/OF@-0==K7.#/\8Y<,5X0XX#
M;,V[7[3W'@ON-MI';];MO.9:M[ .03S'P[H^V"FDP,H&3<H\VYLQ#7;JWIG!
M%\J*"M.[60>.JW'-V8<1M;4=1%)-W[ [1SPDIHDD6<=!&-M(<J[@/[!I$-O!
MABM?6(4W7^&.X&_Q>Z1 ]BL0Z5=?)26&2 EZ42(3^*30/$(^%%)UNL?J@T8*
MR$W.3*86,11;C%Q?,)Q@76,/=A;(!SIVQJ-?V%MIZD/X.;Y%PS=J*Q8M_;GF
M@U]+WP8,&09_&X=L$;OPJP7(CL)C$0M6NN#P "8$@A#X*\U>KP/_!RCW"#2T
MEB$8$&!VY?RX6CISH.D;5/;#SK7O,;%KR#9_S?C*^9"COW\5^3]HVK_"K#,6
M".?P!AR>!X@#0#ND9L?J7#.7W3./^Q%YIUTGUD-:+H%OD+QW0)\P@AF&)!6A
MS?>#>S:SF;^")6W$SE"Y!]$_C. /$@)XQE^S@+8U[.Y>N)%?]]?9DLUCE_F+
M'77T'^(H#IC*/N^Y1_8-]=0W&/YGUY]]3VDPXOZ!X\5L?A.)S_#E#,ST&OV!
M(&; D(F'MZ WY!PYR4(>O$!;H(;DGAD0CX%@K:0+.$6/#O;&=?V'\$TA2LI(
M,GXIID9OR<BVD):!V1T-0:*X]O8A4D-)@/>_?7#FT5*&N,J#0AOTTD?L*6Q5
M'&U_I*A'%,4Q@WUEP9G4Q(<KS9CDJ*;\=YG4,:WM.W8U#9C]_<I>P'S?V.Z#
MO0DQ>%47"JO,$78;39Z> H6"1NY)O+_]_,O[3]K'3[?=K8:@*9-%"Q>B&-R
M_D:)N%75!$@U6&K'=K6O4F'P0$<&-EHAIBG;^IS4I((.0KWU6[-_93[&](KQ
M');)0)GMY'Y9(GJ4AP%JN_8Z9&_D7][.G7#MVILWCD<THX?>9B> ;\SE7^AU
M_&O!IH/>H&N*4KU 30T)+N[V\CE.\<6D3]Q>^MW6A[9]T>=SJ&4LJ\[!C!H7
M^:PG5E[DV>_O*/+<L]"TXL]*4N-"EAI4,_YI=QIOGXY&ETB6VY8D>9)\\R/;
MS:S]X@#.]SM3,0GY]BQUT<7+<R_J1&Z/Y5_.:=SAS9N+\>$G'!<<,B#3MP?F
MWK/?X%W+ZH<.B(5G3?31L'CH<-3IW>,;V^S3\E8N7XY<EL/\;*]:$4*9'J-L
M/K%HMXP:YH'R.>E<C_!PO:X.V:UX-HE-6_$\%(2K$=(Y05R\P5@?36JN?3F-
M>%[\)>JMWKW5MO%]%EZMD,?_97;P[<&O+(Y8_&.-=7-PM#-;SN5M [J+]-..
MY#H3N,X<Z(/QT<VF6JYK'M<UE.FPQ]G$+"TR:WLC/JUS,:H[=;B7\+V([A G
M<RZ6 6.590[+'JV1/NG7Y>TW(-YN>>U)W8N#^ X[JO4-W9A<4*^HEN^>TL$X
MB.T0Q&$RT8W^T0TW&MPDYWFX&.,V?_'<7(P/?AQ4%KD1['9?-T='WR=O(\D&
M<MH3:/J#N [/@/LCW>RU;'>!;-=4KIM@--73!^.CHZDV@W&D>S%I,QC/SKV
M1RJ*G-7#J_KZZ'B!:\/(!C+:4^CY0YC.J,V[:-FN>6S75*[#0[F!J4\F==4U
M-L*[>'[)BV]+%C"ZP]:F,)Z3CW&#6W:P]&%;)Z,4A*4-*)\_NYU8YQ_'>H/.
M]:0WTD>#NMI$M[S7(-YK-.L-@?6,B=XWVHS&61FJG-A5%KLW!%VM.(QM;7M=
M]+D8?7>X:U<=U\OJ69WKX<#2A]:3H8A?R'645J9;F7Y"__D@V#ZK-\)FNT/#
MTL?CNDHZ6@%O!;P5\+J#E /EFQH2]*R^/JC[-O>9Y'L+4',696PG[M@>6&#;
M, 2O_SH-?LIAG.'(2&UG-I@NYN;"9FR^& Q&/7L^,\?3R:(_G=K]Z6#V?\8
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
M1R5>EOP-B;*8VPHG(87^WG=C+T)U!C]PO/2?4]O['L3K:":^"7T7)@S_ DG
MHRB85W(B4.^>F7OMV67:%X43T3*H,1Q^G,G=P@X#S]B>L_+C$$R"O<:\(E=J
MJ'&FOAW,B<%$EC;<WE[^(D@VQ?/"A/6EW,51&-D\IE6$A%NOC_AC3,+\CM(8
M)\>[=%5E]#;4;M9KUYE12^H/#,03?XI*D:L&Q9"( 2-8&1HA;G#L$F\6E87'
M>)Q#CH'-=W8>V ]S_P$T[#>A 4+P"C;XFK500;"O<8AO0N6";^*_55:5M *G
M_#SG&. CBK68HA; H(?Q]%\P#5P); %H>ISC.G4(*NB[ $\7(S!*D9Q0SMRC
M5E7>-P,&@GV'KVGT4%6"-%W4<6CC%D!P)+W(EXO#;]_CN3-R:.3O-#S%!"M(
M(6:YTT&SL",G7#A<2*2JY6<6R=Q1NV6DCC_*?JQA_HE9B$-Q4@W6F?@"["WE
M(V;VVHG@W^LX6/LA"_,FL_S@-'M=9&!2%^FW,  M]4V YA\\-M&V7-0(*0\*
MR>VEC]A34-EQM/V1HLPK0LX;Y9Y)I#]<F4:.:,I_E\GEFC7X75?3@-G?K^P%
M3/>-[3[8FQ K?M1UPB)S=&TR2<H/H;^]O_W\R_M/VL=/M]NU>%,F^TF&*C?@
MOZ#(W/H>57-1UO$#/_4"$?D:P0?<FJ$D%2X.D3;(H,CNN^+KOTZ#GZYK>>R4
MMO*1:3YCJ[SC5-[L7-]LK3=#Q\6?PHKX4\!#^2AV:TP6"I<YQ,BV\E%J?_=1
MW4=A.D52]Y9\^>C&FW_R/>[81Y43O>/.]<#4^Y,BIB897&&T*8KP1 S")Z%K
M#W98[_J.REA/Z!A\RUJZ6M7=YJG&K?M\W#;O!F4XP39/>IUK2Q^,BHATI]CE
MW<L[9I<G>%35*U])M^C5E(1G^Q:'#0XI#BO1A6>T?IIA5BZANH70W.$WH&^)
MDN!9SAP6 O?]$MOH7C,6%BNK)B6559.2RBIE>.*VS#L.JK"BMS2U<II&?(.>
MN#/;)[&[!B<>Z0':QPZ9]CG12N$EFN<_(+*A=?J+!:8K80YX>1O8XH&*N""Z
MT1;VS'$AEF!2%]_;@0/?B"?55 15=$& Y&#DM@S\^&Z9G"R9O;X!L96/,5'
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
M5?:83RA/3I\&QLOHG*/EINP@S$+*]K3:K(27=(V")Q^@D?7_7QJOP:;FY:F
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
MYJE)R)P-9]I)OE7D1P9U"/<T6>T51U+OIC<V<7DM-;\$Q0J*/9@N49%BS<X
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
MV];!B]Y;4G(C@J5GKI&WJ83=LLXA,'J6+BU![H+<ZY%[!0<63D/MVDT5E9^
MM-Q/Q3MYVJI^_/,CO&7UMD4%Y%:?CE3:V\EU(@IM0Q*]K4BYKE*\N6&3AZP4
MM^R3J!07W/I,N/46+MW>>O$>-N21=:,O6_V3X-QGU75Z8_4*ML=ORC/(@9"[
M&1U@/PX2[-LO7(--YXWBU>WF&NQA%QZYK]LR6-4-A0NKW[H()A[E^0.3;=OX
M6^U<AAKG/TUV=41[+\>Q:MI[/0WMO9(1H()+"2XAN$1[[(P]C/,<=UBV,VK/
M#.[IG4$?VWSO;V:\"<.X@ P$-@XZ'<]-1OA''-"9Y8?)2.!#ODIN2Z0L'-8N
M85=][>-0='K1WP/\:.],AAXF-LJ6:LKV_@VQ&D>6$_(,G]/S1^8&;6.SN_I+
MFX#/:7+)(YI#VQEE72O)I%&QO:TDP1R;94Z"!S4,AI-E-6\=N]G.8K*Y87O&
M=BST)6L]35:5NFW=C\IFJ.WU"YT/G$XH7HGCGLE0YS^)E$1H@J7-"I*02"%<
M/$X?7XNS/E?5]RPRS&'L< W&_K<;Q4&(=[2H@?H&V\N0[4I;8!NV\BJ*N;^A
M20D_'B4>G@N'5:\:F^G$==>G7[-ATLXP>"%=26(@HE_\Z@&COWH<30,/Y[.S
M4=@SV![@FO0<C(F'*XY)3,)G #5]9N*XH?2"U(,@C7)#M"/IB;5DA9?\$=&O
M'?I+"AR^7DC^2ES<&URUPV"%[WAV?A!I!.CKP)Z=*$J>^9*O;CR%AR(\(/XP
M(AX[*EO.]6= Y?#"E/2EEP#KS#R<Y8T3NC- C27JDI$"!A.'*1OYGV_"D!%<
ML^//-Z*(TDS-'+,;'R9?@3VX(V_^/73&;!''=TD$D!U_]M/C_C/;/F+1#3\L
MO*B8T0%(_@H\)B)^&6?K=P:3( F+D^GIR4.*03.^(RFF6V)?X9X _M]S,,W0
MT7,GA-X"X"0 "3]*(L0MO('(?9[!#UR\2Q)/@W$1UY876KH_1'-<:4:K!ZG+
M9;1(:I%PE4B&=_@CV $!9BOY02Q-88OT<9^,2!0YX5R:9A0)KV.:IS1V8F=Y
M-\#)EC>#<^*7D+^;$I:#;WWR\+5,K[TJAPO2*B,C/H(>+S^B)PG)*'CR@>U1
M$*>X@T>'Q>&,N.X5,C^$B0N4"R^@QZ+4%;G %H!_OH#^G,('MTN<T10^Q]N,
M"=QB!L(@9,M/&&70?? K#=WHQ]4D) 0H#6"!O(5R4WAI=AU_=!^[TO>0.%$"
M\/P/"0/0&I,9?.-BIT-.PPYLCF<?T=N17J<N[,>9S<+@)T6.J.3.*2M ?A[3
M+\><DU-&TY4R64LEVN8T*[6@=8RF9)QXY&%23H?Y=HS_3+G8]8(U?4>:^ ZO
M^-6#'RXHR>X NH^<&3*"$'2,'43K\>4HWGV*OQE=Y_DRE;)<OE00(XA_*U("
MGT8W*,5XG$DJP2W .^"WGA>\1A^6;W='_83G]Y> E4G%9?4,P.LYLXA\2/_Q
M,:VC<WT*)/K0Q^4-F+."YD5?Q[[^R&:\FW:W9YNH.',7.'_QYIGQ1J]KFF8C
M@^SA%9K6R"![3>_JAMW"39F;E]H2@&AEG*%\#/)C3O P?IVGS0\5LC$K.@):
M6CA3#I6-,96S/_KR2.==D_IJ6Z&JUM7,ME#+NNP_KE& "'%! HREN4N\]4WL
MWB ;H?634_?M,+G&HL9D]X7!5#XC;1>;Z0Z,4NK1R>EGZ;5_XK?.S.R\PV?B
M_@3M'!76,O.[K^1J\59M<($\ GDV(H]:%7F:'")P2LP8S;NFRT;.MB;XS4J(
M-M$"5@JIVRN%^G2FY"*+\;"50I=ZY<W-%VWBRO7*5]YD[^038'??ROUGQU0?
M3I$*6JDCX-W>P=5^YC>[+H[3-SH#HZOUVZ5%GC<:&"U$ Q/1H%=,ZA/ZX'+<
M3J@(9\ <RP.4I71A 5TH7;4XIG W_B@PH5W\L08F8->9?M<HIM:4L,A+R&9A
M,^)HC(UJTA+Q,>Z>5A*PA*.TG""+H\D8\,Y"R&,6IKYBX=JE>#*&6GV6J+%Q
M&EG=63'7GA>,,-I?CD>W[+5UDZ_ZV VEI\EVO\@IZ-EKGD$[QAGLSD S%5FW
MBS4[<IKFXKX0;XY_L;25.* (@+%T;*-<R+KI2NO35G8X^.WSS OFA#RR!(+R
MXW]W?OY*?#)QX[LP>-X*F!)?V0(FMM+LI**W/X#:&=P')</Q5I$T=GY*0_96
MFA63H]&5R]Y*LOAHB+Q@S%@$<>&Q,$WAH,P"\.(ZWLXK:((8SF):?M$H0%-U
ML:O$?V'%35$A]AC1U)HYB?,'<J.Z]+@Y1[32K=X'?)=4&$5TQ%3^^QLXU'T0
M_XO 6].=UB5A6P,2[O5EPRHV0Y1VX4/ZB9Q;!S7-5&7-+AJRRZR+IPZM8,P2
M=CEK$?/5]3P@DCPJT>PFIYB.PE.;%FE[E5-_#@94ULO^+@CY1_B["OXSFW:S
MU]<T5^HN)\+@;_"$KL]2DIBR@RNY(V,X&6L3AY#QQ#!ZBC,>:?VA/=&'0T<?
M&J/_5;&-4_V$FH.K/X6H-E5_ +I$4JV%@%MSP:O7FVFAG]QHY 41SADH)FK9
M)J-%@"/<<<P_P]66T[=P-8DN)_U.<]S8),J"RKF:BY:_H\4[<?V2MVJ[I(FU
M4F?]OIPC#!N&"^-RZ>[Z\5?I>C0"<XMF'CYB>CZ5(#?!V)V ,46!-08)Z<..
M<LLX:7+@:(HV",TNPTQ.8"2O0>*-.<L@P(!8LJ-#TXA!)L&_9X[+)"O8+]&$
M,A//=88LZ_<=3>T$B4R7?)_FM,%?_LB=@5B$!9Y1&#KC%\>/@?$$"68OAS]@
M<7P3S9E,7[58%_.8?8F&:EG&++ -)@Z&)'XEQ$_7F#EH1L*K *G2[-;G!:+1
MG,<NRZ]=0.XI<<=4&P2I$6!Z+1A#;C0%H#EYL$U=8)7A:#KGV999]C4>&E:"
M?=+DZY_N,V:;XJL39A $0\P@I2ER+,<:K K0,##)UW$]UDD)A=VSZQ>>3?S"
MT_BPSX^%^U_LD1X-UPUQ#?24>P2D2(0+\6?I-3\[<[QDFG>(>V80RBW43+Y@
MRZCI"\)"4J4KZ0_?&>/FX/A_)0'^'T58FN3O4,G+$2JB6(E1:^J=8+@9Y9&3
M9FS_2:11$H;P*T#/?'JTX\^E]+5 AX!E[MI5JD@F#C%^+$/K]M E.0LB*AT_
M4!T3=L_S)+D_(_<@OS9E\8@SC (OB=<_4KSP@O?F2/=Y=Z59*T#+_7<:+K+/
MGLC5,"3.CRMG MO]X'BOSCQ"/U;^G'#(%;BV&23E4O[[[<W#;[?WTN?[F^Y:
M$F[+9E$EB9#_7"=CG X&@LNG"3C43KK+R 4D6\ST!$J-A=X/F0%6^\2#OP_#
M7P:-/+9-5=%*517];%059GHP7J<!BWTH2*V 6M4@?_P"TQUYR9@EL7-FV972
ME?C#_#<K3U9@SK@H:)97RVQ=+EDH MGK.>'Z958D V+=MJ-1:8O2."?$Z;N2
M(993QH#>J-"@FI=XK-(F*QTIJ$&K-1KG@3CLHG4JE8NJ3D@F6*-&BQ^R(C>:
M#-;["'!_72YP<X9!PHI;Z.-9845:/U$-KKO91]<4;;A5,W[PP6H%E0#>^BN6
M%9683%8)1["*)M.97#,U96@Q"KT(5@,'VC-EZXM["0E64"W*849YD3!T/*JG
M@VX./^5:*ZUG<N,E"X<6=X7I!?#"+H>JP5M\>-)PSG1F6FC%-U%F!)Q918VB
MT^CV^I*:U18%_ M+H:K2FNJ2FE]8?!.-+*8VN3'XIO[[WV)CK858DQMK<JTJ
M&^-I(ZO6EL'HHXE"F&9_UK*P>GE9S?_L8&A?: 72(VR >O#\F*N6!<5(0*;,
M,]8\5%:GLJ[P!$W=P!,N+=VP_,IHK$<D9U:$%K=_!;QJP4L3\*H%+UW JR*\
M_O!# KO T/D3MM-YYP51]+XLR7A%,JAF+<G0YOZ\99!A.QMCY@SU='Y(<%P>
M_JHSJ-Z<MP)$MA=H'JM_7Z7R;K&Y\]Y<(\1_>D. ,N=FWC?VO)31<7P!(YX_
MD^?/7L*N&UZ,+NIU_[U.<T>N)D%X%3E@!&-"2CR7(B1.&K5J0\V'>/Y,GK]0
M4;>9"C?_]S8)@T?L(/@5A\)+G_U1=Y4DZT#JM)LY5SKA&?5I[FVNB4G9]UT0
M/@+S?LR8]B<RC!=_U4XM[W4&MB[WC*8&V;1@MI6@D7.ED?X!:&1S?5%_?2\A
M01]M02)!'YP^[./($%O($$$C)T(C?>6-98BM;&AF*.BC+4@DZ(/3Q^8*[P?,
M+\%2S)!,B1^Y+P2LU."9? FB:#WM7-/R&?3TWI/X8?+=^5F'?C;T<SP._:Q)
M[M#/W,%(4S-R>;(5??F-1%#.D(_4/OX9,9DM#4!H-E])*7%-S=16M*8TT[J7
M=:2!=(+6!*VMTMKF)A<5:6VSA-8;D]""S@2=M>;<]>C,>".99@B9)FCMPFEM
M<\.J1F2:*62:H+-+IS.K=<X@ZZ3(\A!), W,KBF9@7SL+#ZQ.[&[?-[8NM>D
M)>Q ^&3]9L2O]OO5V:?0[ENDLEM)5%MS-<7S(E=6E(6(Y\_Z^;.7::(L1#S?
M^N<O5-2)LA"1CK63!^XH92&V(LI"!(V<#(V\=5F(K8BR$$$?IT,?1RD+L151
M%B)HY%1HQ'[SLA!5E(4(^C@=^FA=68@JRD+:@4>'+0OA;<E+(L<B'ZDI^)P1
MFWJCPA+U0(4E#=QFN[,'!3D+<JY!SH>O75$/5;LB2%F0LB#E!2F_47F,>J#R
M&$'.@IP%.2_(^? 5..JA*G $*0M2%J2\(.76%?FHARKR.1+E4\?@+W3:7GY>
M<WZ"_7E,;?R32$GLXOP+R<E&LHZ<F#P%X7R-8Q G^O(QC$DHN?X+87B#,[]*
M,I]P+B,.F"_F+?*$Q3D.>)S!_H.Q1/PQSCAWXJ47NA'F.#H>G4L_S8;$\IGP
M**C0C<G&W*^L]>CB0,EX"DMDKX-_XP!O-I^,S9O'Z;2O;*[ZR'.B"*X(EX2M
M<Z"4S! M'01,!WR6C/W4SGK09Y0\P_YAD4@:31W_B0V 2_&)#]Q]G;JC*0,Q
M,B<79[<&$WZ+=)E"(BL=&H<W/B=.&.&-PC-;)GR^R6C[+8.E3W%$J*5W%57]
MV_H)H7\K';=H=?M]M?0KI5O^^;JE=*5KJ_;&I;:4FIU#WNG=@N<"*UNM8BH,
MPA+QVW-5\K;DD>[H?DD5MK:EB]:F[-,+NZZ,&EM;I*'5.W4I5;<.][EUL)LQ
M\.;(=6YBHU#\NNWDVZ>RG:] J7CV5I-;&V+PJ:CI-RQJJMW/T9I_-%2'M;X)
M0^T.#(*_";58\*I*O*IM&?!"+19JL5"+#R4V"H.+*ZH>Y5$)H33O"YE6DVH;
M^J5S,:4IAU&I][J]!N-L^<A*V2<Y3SN_(D/K]M#+/0LBEW:""HGG8'B'.[?Y
M%>8>Y&=5%H\X0SA9$J]_I.C5+[CQCQ23N;O2>LO!B/Q_IYE%,W.>R-40Y.V/
M*V<"V_W@>*_./,*KR)\3#KD"US:#I- 9C(6I;F\>?KN]ES[?WW37QFG:LMG[
M((;%XD"Z3L8NAC9O I^2F8-_W+F^XX]<QY,>8_B %F?0R%A!GF5!L-HGWA+0
MJO/8Y@"I>:5W-H5/SSM0.@M)1*\/@YJ>ZPQ=#R.>(9D%(5ZUZ]-O1OGK'SJ>
M@T'L:$I(%A<?HS[C(AXL-!R HY,KZQDZD1MA"#N8;(N92L.YY-%H[:L;3_DF
M<BM/71(ZX6@Z;R:XVI:0IZUU[;Y6-^2I]>"I?B,A3U7KFKW-(<_JGQN:V)38
M%-U4W]@GC%[1=7F8GY481YQ=M,@6^!^6@$0SCFBJ"\LEXKDL3#B[R-=POSS_
MI4)3MG,$U2-LP)W 9OQ8"C S40J&L-(+9?2N/TL$9  RB?\&4&DL7K!OA\>3
MN!Y:)=V&?J8G 2V6ZZ<*>-6"5R&=2\!K([QV:^)]B?!B/1XPH!))[[P -)#H
M_1+PSBJRM&]S^$(@8,=(_1KWZ+%ZN5:JD1";.^_-74"43[2E%\^_>5OZ?24G
M#9;UVDU8-]1'_X0U6.BNQR C]4V[P'^H4!6=YL7S37>:WU=2L?P*O>64!0(+
MR$KD+5Y*WN*6EM?H(KX>_96X+!EAP7AO\NSV2QHQY.A3,5U$[0QTK2_KIM*2
MM,8&1+B@E#.EE'Z%%F+[4LK&9@::UK8^I8)<!+GL,\7^L.327#\^02Z"7%HP
MB/Y@>I@A]#!!*:="*?;F(219\OKO"S_KGVX\_2.7R?"9)C)\([#R",B%DD[F
MJ_T5TQ,S0OK-<7UL4/79'WG)F(P_^[=.Z,//ZDQHT)IK0->N^JV3<&E\"?RG
MJYB$SY=5PG5,-\ ]$%8M"61U!JJL*'VY9^TM@QJJ0FO2ZR@0K&'K>1V";6;#
MO::[ 0H<:Q6.-6MR[H9CS0WT$SC61AQKUDZK+2AM(2C/&L$T9?/\N#::-WIS
M ^@:0LD+R"UJ>EB6:+!U>=T MEA]*9=P21/S-'0519>N]V15;<K/>+@. &_@
M@12D=D&DML7^K4-JFV5QXT%B06/M0#=!8WO:_\W16..194%C[4 W06-[^C\:
M5AD-H3(*4KM44CL]/U#C8>XW;ZFLM;VELMB:V-I;;>VLO*C[EF*WHL1?/'\F
MSY]5EX.W+'YN:XV@>/Y\:C0OLOBYK9Q2/'\6DNHD,H7K%C]7S4AIVSEKC[L^
M3P^+IFSVL1RTZ$:W.@--461+MUN2--. "!>4<IZ4HMK'+G[6SS%W6Y#+N9++
ML8N?]7-,0Q?D<J[D<HSBYR+-V$(C$S1S(C2C*9LG>;4Q/FR<:YW 23@W]BN#
MKMHUX<2)JEF'0-WJ+D/M#&S;D'N&WI(^ 4UZ'R\>O9JVHG<J4#7.L8N8P+%#
MF9Z[X=@YMMX2.'8H>ZVRF"PBFB$$YADCFJ9L%IBM-').K=?3":44[5GS?/%#
MTL4L]!K&7K.E+ ;M< 624];[6DW&<*0AZ)O919F341"8(+#JYFYC]9C&SK%A
M05F"LEIR\B:-_.8H:^<PLJ L05DM.7F3KHV&E4);*(6"P"Z+P$[/HV/N'+8^
M$HU2A\\O,<(*_G_LO@SHOD?4#9M0> W^#A^G^WQVPB?73_=IP9WS3W!OUC+5
M_3N)8G<R9Q^Y_ACNYX-NT:KI1C%/5;:AGH:H]R>1DABN^C]$<B0^BUD:.3%Y
M"L+Y&O^0% ?\PWA*I-%2-<W".RUY*1))3BS-8'O!6"(^7*[KC^BC(;P3_N<'
MTE])$).Q- O=$1P-$ N^=J-L!1 6DNO##_TK1)L7V(T3_B!Q)&];)G(!9DZX
MNM+R*I(#NUI:R*44 I_!SO&C!>VP59-A%#MP;,?SYA0(D\3S),P-D(()_0#_
MEP&@*WW?!"A P5'BL7^'Y*_$#6&7<+/.4P;N9^<'D0A@#E <81MVHBAYGN%#
MZ48G$S**Z9M#,@M"!(7S'"2P M_48D,;]P.0GSES>EKBC*:X/[@W@.)?B0.K
MXN6$0?(TI6L2)_1<^(R_@OR<N7P9O$6 B.OS/R=\:QYY =C!D5S@:[Z#R. \
MA82Y'F7Z&/PN ESTXZGTKA=/W\.!?;BP,'( *?E"SB(^(HT!*AF0ET\"\'0\
M!"$^,PN#<3**%WN!=R0 3Z V#V ' $/D*![X.?%B=P;G'$M#0&?XS0S^&E$0
M 6;CE'"X++:#["Q RNX,[Q5>P!<";'&>X/LG^#!]NQ0#KTBQ<-W2,OT6MO\"
MAV.H[4A3H&/87.D#DCM9'(_\'!$R9GA)7Y9]Q;=<ND+H '+ N\+@65HKH4!'
M&Y*PZ!I<LJ^T5$K%@&T??E]<_'5V[]?9%KYF.\A$R96VD"5J9V 6I,C?\()K
M[]$\U!XUT$J+[7;^)@4OA"'W D>00KK2@T\_1C1&W,RAMLS8RX(/<]1=2[RO
M3I0Q%+CS)$(_OR,Q(8 < ?: MSL*(DH'(V?F8E  _ED3@):]'GZ? 3C^DPN@
MHK',**>-4.VC%&PZ@*WD;F5I# 8"\C$\"N.V,2P&6X^FTL0+7B.\_AEP300'
M!5,WTR@V2&]\KSLRAI.Q-G& 0":&T5.<\4CK#^V)/APZ^M 8_:_:@^ODZ]20
M^0>7YX5^#%2>WX,$E-1>5TIO\SYYAI5&Q=XXRWKC3? \(WY$H7/MCV^?9UXP
M)^17XI.)&W_U8$O?X?%?O6#T8W%C1H<C8D+&US'_#!<G<+TS1(8P(5C)'KM<
M=: KI7?,]S98OJR5NUJ\#!8^([5K"I0(A#D&^/IDS"J1W6'"M8 ,8#, F/0.
ML1Y5:$WYB!"D_U0_OI>EUZD+$AIEG#M!Y88VX) >":-@0U'?_7B?\@P@2A+Z
M0.O?N.2Y"<9$>O?YV\W[KO0'?1!_AB^0)<(Q #010BCEC4!=!K:8JBB4)8(4
MGTO$HWI'L#@#'BPG2=C[@85%CH<2/)FE OG9^>D^)\\2*%+!*Y.N=*??;KK2
MG_AU/)HBTP*J#ETJH+A&,W0B^!R..'-0B7=G3EK-S6$8\;<XV3OJ<[BE^-;G
M^[M5HOG$[NXF]UH$'B>>\'?</4!NZ7L&E5+^9W8&1K=,N,'.J2*6.RNUIWH?
MHPRD0#">]#O<AJ9H"J % 5% &.?D!,H!SO9$U^17O (WIGX'$<GA@!\@=$%T
MH$BAF.*D2A,JTD.@.T -*FI2T=:5;JE"BM__(P'-A[>!D7%?(7%](,@XB?F^
M^*M"ML$JU\LPWZ%R8#9#)(F7+_N_Z@4SK5*[FDJS-??\.WO7_Z2ZW99[_[HX
M2IF1C.6L)?/CD(XR/125P+<ZUK4/#-BK<Z9ZOCNSQR8QK#GRQ,4GI#G8%S+]
M((<)E#<LF,T8%=@P^$F-(T"T6A#:',-> Z(;4)[0?_+D \\?USYYOS/H6W)?
MZQ6/7ON&M_B##G, NS.P3+FG%)D5&E 9CUDF6,[R\?7X*^ %!CTN8PJ@O<T8
MM_#FC6IOYLEI;_W:VMLC>4*6^XV:_0#YA4>]J+192E%ILY2BTL;7W$U98PN6
MO$8[&Q7N(0FEFZE+)M+M3S)*J)Q[F$Q<4)-0+0O0^1!DOWF840,-B.(3D%6$
MH/K=^0%L[5WGYN'3[YWWW.'#GAFBV4:B*/.TK.4($;NE>ESMGFH[#Y-L4^E=
M+S$" ,P(F<%K$([!LBKA Q8HY+!#0HIL(,C.RW<8R<Q0C6+4:E_=>"I-@U<&
M(0# !^F=^QX,WQ&<&B5_]CC\@^X)W42!S_1*-Q@#30S14RW#<^Y[ZA^+D(?
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
MRZJ[*.]/A>.WVOE3+[>N6FK=(J,N[<(/^CN XR$KP/N5@&JXT,!)=/LS#AV
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
MS+XE,[N$/KX;/M5DVDW@D[V1@[\Y/@G=?!?=7,9&;SO*6=$G\_#P:36'.HC
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
M6GUF%_-P54JX\Z[T)P\6+0)%3FK^X*]KNIDVA(T7?'S!C^X(X0T4><?$^J
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
MX;A_>,R\_9;:#:;NGK%R)"]','L%) I'@%"M9C!"5,YUT2DR4T+5UX?*^;G
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
MEVY)RF'[EN25O&!+#B81)$]BSI6:=MJFBEFO&1-++7$*%P2ZXH$5^F\?LG^
MH+!0*:1! YU$ZC6YVAJ"I0LY*H]G%()NI+%5T=+M?8:7_=ET)/#:C3 5IG_0
M?TM=CD& R?(KCA1'SY5D-NCV1^POJ81')HHUT]B@U2U<1%P<4]4T"&W03SY&
M.Z0-A78%_*7P$5'>A:"BLD$S&0L9 =JO\\Q)X,H<J.;[A1JIGC]5Z"PFU.@1
M'.$'_DJ%(A.BIK05D:#KR83ZS.T"N.PY@N_\D?HXA.? E9,51:^H2VZ%LG<S
M.,1D@45%UQ/Z]QU^H/_X@OP(!^*_8H_X(CNPC7TN"4M9>T.5%*5^7WH$GR(6
M+QK'(@](X09/5+D-S5ZTU.O)+61]%)V>R,=-V'GK?\'E%Q  <<]S>BR9OWE
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
M>A36\ *6+:C26A[-B/)Z>D%CS^;?ZDF*X"Q(G2V9\RZ1;^ 3A)@$)%:*B9Y
M2->8$=?''UXTLX7H#U[A#@-9HQ!\5)81S3BY:\H6 4[I DQ@--DJ),[U'(@Y
MQ$P^.YM-5\]=JUJRNE1.U?_4/(+*I4 (W$'R.AJ33$;6?/O;PC D%^E(N=^V
M@H]8[G;>?R93C.8>)N](H;Z>/@^?Q\LP&7F%7GH;P#"D5]2(",$*3M-S.6<?
M60C-XP!W0QF2#]28 BT6OQD3R#P/XRGFEV$^)6MK07[\^5E=:LPOL(S3>#F*
M7.;@'"GJ$&@C+4@,Y:C!B"R-+D;XY@KA<51#\I@:\Z.Q2!H&5,[.QLNSE7E.
M!CNY\X0.IVF,BQ'Y["4%<N=LD!:4T@C>U$02%5(L2FCAVP=2[H4S)$^I@_VC
MA1":L>+-.,3QA!0:5D!WS%9:D8N,&;PJAK#8"#Y:!KG&SC4Y<%ZU3NM\#--
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
M#,Q'!LJX>D:5/&@,Y,,FD;EJW9^H_2R&=.K=DP75H]C[I&_-;*??U\*;YLN
MRF+D'8N:EP RU\* (M6K#B6#(:LP)J>1MNW^:7H/VB&=C)^&CBW$V!WM7D\O
M<%J/H$;*".G(JH.BA2(\4H'C9.UI672NL3K+.Z?5%9HAG6?W09O#Q- =+>YO
M.Q]4<E9Z#3K4*K,A"H@J$EQA V?2,^U:%VW8'=V0SIG[H$T;,75'H[4?J7@@
MQ99-A9% >5)R(7L/7!7G<O YB<[MJMV/W_HZZ^TE0+GW^G?!A6NQA5'TW'/A
M&5@=:VHUKP<U*0 R2R88\\F+UH>T=R-I'Z=8B2]:;FPM2:%3J#U]::9>88V>
MN*2B=Z[XUI?9=SF5>#06W^WA8 ,R/!Y\V'O]N]-[=^10T"M=2_PS"$578-I"
M,"* MMKY6%)I7[6Y4?;+">+MG9'D2,'L>'1\^?WZ2PP+_.L?_C]02P,$%
M  @ X&)R6EX#Q*MOE0  O=T& !4   !T9V5N+3(P,C0Q,C,Q7V1E9BYX;6SL
MO5F36T>2)OK>OT*WYO5Z*?:EK+O'N$G-,4JDD=+4W"=8+!XD2DB #2 I<G[]
M]4 "S W(/ #B )E0EI51S(4X7[A_)\+=PY=__Y]?ST8_?,'I;#@9_\??^-_9
MWW[ <9KDX?CC?_SM]]]^ O>W__F?__9O__[_ /R?Y^_?_/!RDL[/<#S_X<44
MPQSS#W\.YY]^F'_"'_XYF?XQ_!)^>#<*\S*9G@'\Y^*?O9A\_C8=?OPT_T$P
MH5>_MOKI]!_"!J630T@I6E"(#&(H#I )6PS]&Z'E__OQ'\'8I)1A4+C(H+2)
MX$Q!B*IX3/1[T:3%AXZ&XS_^4?^(888_T/+&L\67__&W3_/YYW_\^..??_[Y
M]Z]Q.OK[9/KQ1\&8_''UVW];_OK76[__IUS\-O?>_[CXZ?=?G0W7_2)]+/_Q
M__SRYD/ZA&<!AN/9/(S3Y0/H\7G^_1]>1:-_O/@A_>IL^(_9XM^_F:0P7RCH
MWB7\L/$WZE>P^C6HWP(N0/*_?YWEO_WGO_WPPX7DPC1-)R-\C^6'Y5]_?__Z
M-M+A>/YC'I[]N/R='\-H1(@7GS#_]AG_XV^SX=GG$:Z^]VF*92/ZU9(K*%WA
M_(_Z:3_NC>D3 9FF\XA W\5QI7A#C.L^?7_,WS\+,I9P/IHW1'S[LYOBG9R%
M84L!W_KH!F@7'P1G>!9QVA+JM<^]@G,%\B;"^I%S3)././Y[FIS]N$#W8C*>
M34;#7/?5#W/ZLVZTLTEY2T1;O/^S^R'/Z1,)EU!<7+S:_Z/#IUX!3,P8CH?U
MVV_HR^5'5W1MH>/7.8XS7FP\JV>/)NG:+XWJMC?YKJ=1B#A:?'=P/H./(7P>
M?'\4@<77]-?9@+O,>#T+K!<1E,("/OD"@GM4R1II@[NMY=F*-27,XD+/RT?\
M6&7Y(X[FL]5W%M)=2'8SB@N)-EC7;R&.<. %\[0<!RY(!2H[ ]$@K<ZK'$UP
M-O:WI@6"Z^NYY,BSZ6IERS=LJX.B3"=G3?4YGS03XX6F"/3??IA,,T[)-J(?
M+5[[?Z319(:9WK7I.5Y^<S*>$ZM?C18/I)<3/]:_[,J$V70^>#>=Y/,T?SO]
M@-,OPX3/O@YG@X)2)&<R&"$***D#!,\X9.5YLE)S$7P7+M #KO" OKKDP*9G
M-V3!'4?S':S808V3AN)<QXG]U3M[-LY+1+.7BW.D$ZC!#?M@?UW?!M)0X1OM
MFDMUM]'1;84W$O#!M.^YX2BR!!T#.41$9_"!W)T4,01!['<L/SZM7[,.CZ+T
M;>3:4-FK76P)[)>%C3C ['3@=*Q)KCAYO<&#XY%\VIBU,<+XH%/C(_T:@)9*
M7F=4K]7PODJ9M)+H;?6RO4VVBW4MP3@M6)&T#EN*)O9:"XZ.*_!6.&L+UYR5
MUA;;50"GH-[=)=K#V_MJC-./WZY#0FL*MXF15>II<8DA>),TV.1-Q)(+P6JL
MY#4P3D'5^TKWML+%O@I_CU]P?(X_T>K)N9U/0YK_<SC_].)\-I^<X?35US0Z
MKU'29[,9TO_S;^'K()22#2T?$GH)RG%&D*.'D'U0-IND0FM"[ #S<(3IR:WK
M6S4]G XO)K/YV_+S9)*OOCD?)J,\,-HIST* [),A9))!M$R"B,8Q@I9B;'U4
M;$;SZ+G12- ]G" _3R>S&6V?93@?F!B$X%9!"&3AJDI$YU@U7;)+*B9N8^N
MSI7'/WHE[RK*'HZ)98!S_/'5U\_DZN#L69PM=J2!"$[)E!788'FE&P$+O)HN
M1GBK0N2IDQNWA8XW@GGT&F\CYMOZEWN_U4BF2QC17O,LGY%4*ZKY\ LN<0YB
MCD10S, \DBECB@%?.(>8E+;:LB*X;OVFWPWI\%QHI+R;FT!#R?>PW7_ T>AR
MR0/MG'7.<T"KB?PZ,MJPHH7H+-,I*>F*:>X07D5P*FK?0ZZ]> DSI _\1"Q\
M25;I:/*Y[GDK<-X9EU.(X)0*U>C4$)DT@,IK#(H.*&Q]!-P)Z%0XT$[J?9P(
M))<W9)^\';\<SCY/9@L)ORW5&9G/^"";DI7W"4PIA(X<60@D"T!G"XO%9ZMB
MZP/A3D2G0HJ&<K_-"K4O*UZ??0[#::7IV_)F,O[XADZJ?('MOW"4?YI,?R?J
M\L14T8F!",G6()>!&.D/971V*A05N6Q,CD[ 3H4C[;5PFRIZ[PV$G-<_AZ/1
M)=A*ZX$3RB1._JJMFYFRJ08O4$%%BCEK<H-8ZXUC+9)3(4,#.=_6OFGN4 YX
MEDH52<ZM(V])H0X0@]802B6CC>B8Z-N1/!6=[R?=V^JVS=3]>IPF9[A@H ^E
M&"P.<A8)%$\)O#5T5%7S5FMCE6MM(JR!<3HQ@QU%VX,5\';^":<7<,AVO<5L
MI35'I6BU@KGJLEJR8:V#($O0R5B6?.LM_FY$CY\#[03>\*2O29J#U^,Y3G$V
M)UQ74*Z<&&610&@)WDC:EHHB<S4$ 4EAL,)JE_'&IG\[\_/^QQQA6V^HD$DO
MTNPA%K0"MX3SZV0\6>U- \^E4"%'D%I(4#D6B(E9X)KV*49'D..M3_<[X)P$
M(5J+O8>XT54LUZD:<W)>5U.$AU*OO3.0AZH@\L)R=,$'T_IJ:".8DV)#&Y'W
M$#"Z-$]6-]K#\3F!O,R=?XYE,L6+W_LM?,79JZ\D#WK^<!RFWQ:G)*VN9B"3
MK$>+]5TP?V"EKE$P#<ES$EA*-6O&"# Z62&BJE53S7>7WI;SZ,V1AZ+JAG[K
M\O1=XEV^4L]Q3,J9+Z0WL)J)Q#-)R'IRJ%60X') 0F<M,Y9'GV1'4V;S4QXM
M-=K*KP</]>*>?>$]88E%)@*1736CR)F"*%B"7%+06&]BF&J?M+I\^J/5\)Z"
MO*U2M[?U@?/+G>C9?#X=QO-YK:WX;;)A<PDF:%=, )$" Q62!L^%(,"H3# 2
M@VYMI6X-\M$3I%^UW.:1;\JC@=,R25,T( L*%"8!@<"!E;)P[XN/H74BVS4
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
M.$D][R; -7K=.R/YIRI.' V_8'X]GH?QQT49[K4[ SZ0*0KI?1W2'2PH<N'
M<2&@^&(TS\9;WKKG=1=<CYT:O>E@#5':AH!O7"I)%HPFJH+AL5Y:2P,Q^5J[
M41O8JAB3V2W0>X+W<@U%N4;-;:.V[W&&TR\XH].G9EA: [;(VM$Z9PB:U4V+
MYYQ\D$&PG12\>L))JG8G\:U1:MO@ZG7"D9'Q9ACB<#1<M.N?S<[/,/^*\X&.
M=#)EAU!4K >3(F>%^0(LQ<RE+E;QW4+QW9Y_DH3H0?1KZ++?C/>;F+^WCN%>
MVX2T'X5<"RXS<G!2*;"::2TR2YGO%K,Z7K^= ZA\)_&M4>K>\]U70%;L>WE^
MY:I0%RD9!@>2U>)(SQP$F2280ERT6<E@6]>2W(7GL3.AN<S7$&+G..2"IC?M
MS)NU$ ,7L_4Z:BBVD/61:E0]UME.47NNE(U&E4YO^WU/>NRZ;B_.-<K>._:W
MKD7NN^GDI\GT++Q'<D;/<:"%SLPZ1<BXKG$&!UXP"YH%Y3W3,I@#M-.Z">NQ
M\Z,O#:Q)WMJ[2/TNC-?G#"J!7A;T(#E+H%3*A!0+2,U+8$8$J0[0?GH]N+\"
M8W;7QAK>M T.;GDK\N*<?CB>#XQTN6#)$'G-5G)R,42\SL[U&B,KQ=PL<=[S
M2O1N/(^=1,=2S1IZ[9=4NLFI7H%3:!(3@I-(:L!$T7992Y<@YZBYI;= 6+\3
M;VX\Z"0)L8\PUVBZ;9#QMG.\@AF8-IA0@-.YD#65(SBA"MB2Z>\^6!MWT_G&
M1YZD]ML(> T/VD8AM]RU?IV,TW(9CDF17>&@A8F@!-G?WB@Z'+F30@N60DJ'
M.%,N(9TDCPZCH#4\:QL876V&5_ IED4(/D'AB@RKJ"S$)#DH:4SBTA7%NA4:
MW?^LDV3&GB)=H_*VP<TU\==+I$2_Y))-P"*W0$N.9/$07)%52#X%Y\J];7VW
M?NI)TJ"9F-<0HGD"Y[HM:UERM8S<)6DD1]JKLL$:N2/V>L]K4->9*#%GW-'\
MZ/+TDR1(<[&O(<I^ =.NB+^/5QBX%#2)1T P>A'R<^!(6F"8(5M*9%O<;F?'
MO8_^2U%D-X&OX<?.,=:U<%_BA0UTK=9F-I^]OMCW\I+3151+VWK0*,G0%M9!
MR)X#+S98IFQ2V*WJ=;?GGR13>A#]FI+*9L'6%Y.S.!R'9?K?EV%MTA)&K\>E
MQODNDL5H66&T3&.G=V 1^?L\PCE>#KN_S"@+ME@II0(3 QE8]'>(V3A0Q6IA
M&;-2M\X/[VDICYV=#TG3:QC<;)I+FW7]-*RO*OW:%6MQP*,2"5,"K>N9'UP
M)UB&@B%E;ZS.K*][AOY6]<3K7O2_AN)[I\>V7>+&+'\9$O?"&" K5H!"KVJS
M.P6UN#\5@1ADZRK#PZSLB>J]\6 -W=O&W_=;X#IC??5F?QMH5F0Q&"$C^?M*
MD4)"M!8<,L9C\5;@SO4B?8%^[%Q^T$I>P^:VMPC[G4S#.;ZY*S]_8%R.P3$.
MD1DZJ+AS$-%+$ )S\<72>G=+@>\7]Q.G^U7U&EKO?&G1ESNQ6F:= &B4(SDO
MWE"RMK@&IQ6#HFNFNLT81>NQ:[TMYK$S^V%I>PV/^VC'<?=Y8ES4-IH,1B5-
M7FZMC>'>@=?!E,+(0TBM9\%NB_%46->K;M:0:>_T]N55P4^3Z7U0+V8BTV\\
M2_/AEPLW4^8<="0W,U5S15G!R5*A=7AK;9:167HG&C-K+\"G0K/#:6T-YUS[
M.;$?P@@GY=G+GR],ACWFP6[XI/WGOG:!V&B^ZT6&ZH=YF"\RX9^'48W%?_B$
M6&O;+QM%U=D:HTE-F)\]_T9??)[,PNCGZ>3\<XW9C\XSJ7TQ?Z-2Y!SSV\]+
M=LPN6>BY9U+X"$$$,LHP1_ LE-JTG)D891&Z4Y?H+=[@ RYOW]VQ?Z@70QND
M0<595A"#3J"DEO4*#L%DCH);GW-I;4 >:&F'FI/[4-^9FSOW0V34L6?YUC[L
M9)O78>9OI\L)A(MA"H)G(1:M-XWQH*KOZ$- 8,E&48Q 7CK=8MS3PG[=LX\U
MU.5!\F/24$^-!U8L\<Q(.*O9E<OY1EU -9P?LQ'(X:?)[*^CVPIO)."#:=^D
M8.LLJIHIZ>IT*S)OA9%0F PZ2.XQLL>G]3M&T!Q(Z=O(M74?_(L1M4ML2^>Z
M]N!=#N\HWJ$OT8%E-?D^H 7GM(84M$&?4B@W6XYN""7?_9S#SCAII(E)/V+L
M8>#OK=X/E<<HZGJLA^PR65S""3JM. .IG W2,!5=ZSK[=3B>C(+;1D$SO?4P
M-OA6AMO%F],%54\C@]<C.LZXX/TUUFT\_"[B[F$T[ 9T!"=AU!F"JMM=9H3.
MF C,HXP\FY*X?,0DN&<\\*$XL(V4FP_6NFN\??2HLPYTVLF:$J]"]>J3A\*+
MP<)M<AW'Y]SUE..'G7=1PZ0/&?9@,2R[0/Q$0EB-9?CG</[IQ?EL3J?F]/O)
M5V5"_\^_A:\#'YPL20>(,C,21"*1!$^,EU[65L.%-P][[@#S\+QY+&&TOG7>
M>B#;39O[R@2:[X48;\NKKZG>6(?9IY]&DS]GS^+D"_Y&])M]FHSR0(2$R7 /
M@M>"KR)2O;:IB?>.JU(<&?_=JG(;@'EB9B?7JF\U]^UA7^)?OG#W@9<L%B&D
M@1(<.:5"*_ 8!$B?R:) 94WL5ONY+Y(G@FY)T!X4W'I.WF;PJU$5[S'A\$OU
M9>O)<,]*T"3AI (N$JW$8 +G"H/(8BYUW$[2W2R_IK">>+LE;_M6?>NI@)M7
M\F$XQY=(RC@;SJKS1O)<U-\-,#"?) _DC\D,2L< SFH-S-8P+KUTC+D]F;KI
MV4]TW)*.392X<:I@RYR;RY3&L,AH">,\NJP@FM1)4?-/]!O+7IR_AFF5WQ?<
M(SEGWT?NG\73=-&-TGU6"=)WY%!?4M:)@B8S"Y+5VH L"T1O:HC>VYQE'5;;
M?,;,%OCV]>4_I$^8ST=DAMS_U.???@G_FDQ?C$B5%_'KX(Q@R9$T?$VFS-Q
MH#<+;$[1>V\#MZ:Q</8"?*CDF-X8=M,M/YSZCIVS<GE<+=6V7JQ7%[F(K9ID
M0VVY 5&CK9WB%(1 1DCQE@FN6)'H&U-T2XC'NN0Z('=NY63UI\,>+C+N@7L)
M]M=PAM\OB^^'W-.5UPYPCW,?UBL-MJ-<,QT^$/HE+Z5=S(HTJI;,L )>:PDE
M1B=R8=FK]OFM#X1V]]S /736;:.Z'MCVVS1D/ O3/U;I*4D*YD40$$L4H$16
MX(MQX,F#UUBRRJ)UR?]-#,=PBGM6W*2AU'NXXKO#<+WU@CCOT*JBP)4Z_TD8
M#:%&TH4Q4GNEF16M+_2W@/?7LZ[ZTET/^4)W0%W[BG6!VY-5M274XUA4O:F^
M.\6:Z:V'LVU[V#8P;A)8SB0HF06$0E\*;4J.2JN<6B<M/ B:W6-!/5R6=5=7
MZXO<96CZ!4[GPS),B\#W\BBWGDD6))W=1=!1GJT&%VA#S\;K:(OTA76;1[;Y
M&8<WD'K5S:2]8'NPD=Z%>;V ^)Z3)43FB5:4ZD@<)%C1)0;"VYBY=HZEUG'B
M:P!.DP+[R[KUB_Y3^#*95AMME0:U6/'*:M>J6.4UF>F,?$6, :*IS06R3%+S
MZ(F4G5[UNYYRFIIN*]P>;-45I.=AMD8,RQTIQE*<1X@VECH0,Q$Q?086,E/>
M)=-^,ED'6*=)F+[TTC#_H-83O2<\%[5A7D:!IO9YCK6/KU65R46 L-(F-$9S
MWJ*X]OL#_SJ>[^YR[D/92\YU@=&P'/;*HP]? +NC\&^J;P_)-:YSO0I'<Z]R
MT *DJ8QTDK:1((B6PB>#3A86.L72CZW .VI9V^IO&X$UUMLO)*FS\[,ED)QT
M-M'5+KPU(BN8@2CK*2-\,996R:5HH+EK#SULM>K.8I^TD%E#IVH!)'R] D1'
M[HSC'JRJ(]Y";1HNBX*41=2>.!I<)X?J/N5=?>@C5-[.,NOEIO):*N&;R86[
MOMA8LC B*8&@;3%UZ 5"2%%#) ,LL#ISV+;VC^^ \]>QC5KK9F.J9'/:+'V#
M+N!ZRZ2X ]BQ<B8:J;$;/?;0P>'VER7(:$5 6PMW!.U[*MH"SEIR\CBY>5DP
MZWRGT_YA$^3>[(9C\&,;T;<.R+V9C#\NML_%IOGZ[',83BO$Y9$8BLLR&(0Z
MM:^.X$K@@Y'@9/"2^YPP="N0NOLY1\_;WT<CDW[$>="\A-]G6,Y';X8%Z[!.
MJXT3D()81'MJ+JTI=2JTYTX'KGCK)JE=<!VA*/U0:<C-U=(;=49W=4SG Y$J
MFY6I/=+KT$];2Y:9!FL2%J,0M6\=P.V"Z^2ITU M?70R.9M,Y\/_N]A?WY:;
M, >N,,,QU);2-;I<BH=HDX,LI6&L&N>Y]>RGNQ&=,%T:JJ)UM>Q5:).RNI9X
MCR,ZH6])(XSSE?%1O^)\$*23J7C:'EWRH$SF$+*H"8!&J%A]^:XSP/?"<8+<
M.;1V&EXJ?#?VOMMAMTG_ZNNR^O+G91'=0 K.D[,"O.6T73*23PA(B)',?%FR
MP>;7D%L!/$&.]:^H'@(O/Y/HWDQFL[?CU?OP&T[/EL,[!L$4E"$S$!')731U
M(!(1'U"J0K::EDRT/M;N!'3"K&FGB-LLT?U7,M\JXUV%.2>WWH&&Q<P[/+5]
M/?.^2V]4TMR)H<9A+M998$I5'A4.+B@%2$Z[#<(9M =,9WW3OH3YCJ==!-!C
M%#DZR4$+4U.(5.V\&<E:E,H%YS@RU[HLJCNZ0Q4G-^?*YJ+DI@HY=@7R18;:
MNA5]'_ZR"+.FR-%YP8$OQJZ5D,@'H>U:1QM8S,Y(:;LE =[[K.-?8[75\*0_
M23?/ [T3WJHDK / ]7=7.U'B&!=3O>BJ.P_V$/11&*&-U1QK$T0?":B2 7QR
M#I)2CDO,,?)N/=./QX0--U /@PC;R+<U 7X?EYOYR]_A+:]/C#=&EI+ R^)
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
M3>>#]\32"P,;HX].U:JMY!2HZ!)XJ^H 4)_(L\\81*=H(WWJ%>735Y>*O_;
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
M6>NTA_N134%X)ML0,S=@4Z:#UQ@.7A@$B4E@L"P:/T!TXA.Q2%H*>]#@Y2[
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
M#2[E-_\T782+V[]_.9TO_IPN_B\N/M1.#9/Z3C0JA>09-0/#/;FA0=)BS+R
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
MU?$:VT&!(\0]'!DD"AV#('/5YPA*UNK_113(2C"?G8G9M'Y%&)($.]Z:AN+
M/E)N72WI!7X>SU]-</;YQT?RO\8)YV_?OKQZMG &$QJ:9C:*@_)T*#N3 V0=
MM0H"L22^RW3?.<KPWG$+-4S[D&$/E]ZW')FE7_V)_KLECY/P@CQY#M$)FJV3
M IQ#!S6+/ULT*'/KZ,U-6)ZW;=!$0SW<^JW#=;52NB#KR4;8C.HT=D(;[76@
MQ!&B[\%>V(+0LV0RY@0V& :*>]I&G0A@>:(=SZB42VN;86A2[+ ;AN;$/A(?
M@ OUAK&&+G\(B^L84%:\EU)D.O4L[8]!& @,,R"F@D'%P$/?A\U#5,,;'JUT
MN(,:1RJ@H14RGRU&'VK.[LITCME9F@JP7*LZ>J,A&/I*:LNRC2K%;O':]*FW
M&$#?_=3^G0&?IUUQN,P;OH3<@+@I&[\;QCX60Q<*G"*?[ CAWU??$9)KN,G?
MAY,S.4>6>)AY,74C*1 SUM;;W).#$ZP(G5X63JW #4=X>_WM([#&>ON#)/7U
M\NMUY^ @G7'&0HD6067:1H(.EDX8%F,J.7K1Z>EQA^;N##K<$7N4V*<M9-;X
MV/PC_'4;2)0Z^%I:M,9]J-J+,Z18IZ,#"R9Z*SK%1NQ2WNU!'Z'R#I99ZVNU
M-Y,%S6=,9_B="(P;$VTD93&$SP$WC%57(*SJMSN-Q5NC@]3=JD?O&NGDP2<G
M> YLKX+61<;_($$N<!(F"5]\GN$JT.#%MV\7XU0-O_=D;-)/PF<<!<=]2IJ!
MX\*"DDR KX6^6!*"&W21B6YWL)V'?+:,Z4<I&[>6EI$W'U<OR,=4@[K_$<='
MTVP%U2ANYFJ,#_BMYKY./K^9E.GLZ_V(>,Q1"%D-MUKRBY.F'!/DR_G"LW8^
M1MVZK$H77,=>O%P7QGI7MHSVVX^K7ZX\2NX4<LX\^9&U/;,( 5PQ&;@/(A-M
M$9&U%L7^,(>*7&G.GOM7,WVKZ-2A)]7JJF5.IQ?CO)S+4F1+YTG;8I..#J*P
M- T,DK[R&J21*+/BF:=.,>T[3-;UHY_JZJ=W?4^;RKVQP_D0T=7M9A=,#:]_
M-N$8_BZHA8ZVJOP( 0^E?!:U$H8;,I:"!E6$!I^4(H EZQ*-X*G3@]!9*7W+
M_=%0.M]'KCT\^[S[MJQL/?E\;>9=E[#BG";G+21K:)X^^NI12;*2A2[*HF*&
M-[8P-D 9]@*CC9[N-_9H(.0>HDK(M\;9E>GPZF+\=3Q9SOH*7$*KM38)A*V]
M9U,M=D4>-119,T9RL$6U;L.Z%= 3X$$[@?>P$WQ<A,6JWMGEG*SF^?R:K%?5
M&!C9SR&!K-UC5?#D-6?) !E':8VTTK;.;=P*Z*F;ANVUTD-PT166FU(LN\'T
M%$]T!\AI0H@:*NH^!8Z6<A^[Q1U0"HMGM/]!CD'5%VX#/M2J+9HX;HHPH7E%
M[ %4OB- :"B-[R/<UB\@[V?3?)D6M9;[=5#L=3$4M(6Y;* D94"9$,$+)X Y
M:7A@P>?[>;X;;K0W#C'\#?81<I\V%UKKQXI5:/,5MI]6A]:1EQ0U6,7)GN&1
M@XN13BCK?0U84@_JOV[0X_K/?[1*;""N'K;=E],9F1NT[[R8Y&6[P.NW5J-#
MEL83ITK-2#8((:E0&Z8&8I8L*%K?C6^ \A@5WE*Z#<VL.YO)U2ROXXD<<A:B
M(AP.R:0TY( H5B^W65+":^G#?KOOG8]_C#IL)*R&T7-+1-<'P#6C[B+SG/2A
M CD%W-)Y4&@CB5Q+,(&9XIPF_Z^;&K<.\VC5V4YX/?1=^_.RHGA7'ESNC+AT
MRI+'#I97=$E&"(J^1:4U8RJ19=@Z=GXCF)/IOK_7N#:"[^$^[0-^Q\DEOB:1
MU/:!LY"655%>7LX7TZ\X>_57+7%2 Q_F<_(6,"];]3KM4Z2S)!LDR%GJ"MF
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
M]PE%/N5,^*')P<R*BY%/7@]?><&Q(FBVU=HAJK>ECHZ3V0)NV+G8.KG4'%V
M-4\7ZLQ#.+C%.;L -9I \0448^XVR;-P<;09VO$PZ:9W%DS[F]MY@]EI*W6&
M4?]__<<J_X;GBL(=EWHP5\9Q?9VY8+N_V'JR2>V0>VJA6'W+F__*?\]7*D?N
M^CO]JKQA:J]M;,(9CQ$.4<0ACM( HBCS(4$^@2SUPMC+?.PEV:Q:9S0,+M]I
MV3?2CR>R/_IV[YJ<\C;5KB>\8,T/?,.RF>*<>'(]E&'.DQBFGMR^$"4!)&D:
MP8AY/ Z#B"..3/:P'WARS3>_CH-_W.G5VU!_W$DS-*7KB)W:N;C%X 78\ Z:
M1]0\[OUR]XU&*-!)!7[NY/KE JQ% YULS4&YD<[==OXZL^+(#IB8^4D-B->9
MF'W+XY6XL'6$WA9+*FTER9$T@JAB[BW_QN?+9V4A?>!/A!>SQ,,\"((,$L%B
MB#Q/P"R.,A@%'"=>DC"6)J8.3@VZHSLN;Q;@N6$#W/T/_/3\O]Z:^BUUT-/U
M1SI&Q$Q%2RAN.RA:!FIMO,4"^-(PX?"NQTAH9VY!'9H3N_L,8#ATXYF\;!$Y
MN3E$+<OR"A?%BU@6?^*"E=??G_."LUF69 '%/(6">D3JARB%1!JI4#"2>)Z'
M(TST\X\'R8UL7&[<!?4%-MWF0(4OUCP81#8-P]>O(-R#8J89MMPG"H^K73RN
M1\##($[+*2YV45;GX6,6-Z4M;F_4T_ HT\4L:4NT$W&D_Y:=6?1!6EVKHDX7
MOED\KZJW>5D'HBN[J]W54>;Q(,HP1(3[$*&,2IO(%]"+LI2RR NHSTT.Z,,D
M1]9[6PR FH,+T/%0GZ/,3",-!/7L(K>XF*F^(4A&L(CTQ75D#FD0G-06T@=@
MWQ R>'.$VZ@/N%H5\K\/*E'E@7^OWDBI?I^Q(""()1%,LRR#*(P13&F:0#](
M61!Z-)!'*&=W4<=Y&%EOO%M)HAQ\R!=U6G'-D0HQ?\J;F!^']U,G,'9P.W4^
M<N/>377\@2\UAT"Q"&H>'>J>,Q":XI;J! <_SAU5/T1&-U0#0]GIK[>\2:Y[
MP-_K/+SR9O%-KM!E\3(+>1#$0ETR1!1!E(4A)+X72KLF2'#((TI3K4SI85(C
M:Z,U'3.UTP.-GG9Q(["9$NEHUO%=#57E!1\"P%@O#,OF:/GW$)ITE0\+O+^8
M-=XX,U*U3:2H7MXNGW"^F$6)'R$2QQ %OC0L,.4P$P&%@J)0+N7,P]@HR.44
MH='7ZSI"\=^EQBM9WI39^M)0/[V[F:&EZX,]'P-3MZNE^/:1FB=D<QUTN4_F
M=>(G3PA[,A3RU/-FBY=3-ONX7'SDR[(]ZVHLQ(.71EYYJI3"Q^M/FO;YH4C]
M2^HL:<S64">(P]/X2>Y[(C7E.^T"H6RS+@Y'FF0AG!2@^_)//V"W3[7U@/@]
M+[[EE!]/"90+K(TF?B<YW?Y+&VL\2[(H\CD)H1?X'D01EQ:I%P00(Y3XE'I>
MDFIEU[ME:^Q83JG]2<, */B\KG8N#W]U3BXD=<HVW4[9Y@U79ENCHPG2VTBG
MA]U,9=0,P28;O@T&!)=%G2FM?J[=]HJ#BWIG;KETMQ>[A<?1SNV(J4GW>;=
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
M \K3^EW-(3GPP%H,81=NHJPO^66H.]Z<U=;8<J$2 )MZ#ET-AC#&6*013)-
M0,0S!+'@'HQ3DK @BN/82TQB3G2(CA]XTG(!=MBX !M&S((MM)#4,*!&P,=,
MC>A 8V-2Z6)D%I7B&BOKT!3[S\DX,L5$YJ'P%*VQ)HU1,9%N/U#%Z%V;(C5U
M(WMI[*V+;ZF.C;L)=O?RV^%XP=[+>9ROG^/EY9-*KNFZ+\T("M)49 FD.%+5
M;7Q5RH\2B!GULD!:;S'2#^1SQ]?(>K<C8U(4QAWF&NKW=9 TT]!K'L%64;VZ
MR>LNGQ>@YK2NHESSNO4\+R] PZ^J*/&:DV)2W>=5)L>R(M#4DV183\@YE/TU
MB-R1F[!ND7.,=FL=N1_>8DNKO1:7](]57N:*XL[>^5#@1=G0D-OH%2Z_SC*1
M"<14Q4<6^1!1ED(<\@0B'Z4Q3^61P!/:^Y8A\;$OV)>57'Y"G9V_U6?GI5#%
MC>0.77X%=)LU TUIBJ_&'C4B:F8;4>-0W.+D8M?\!5O,U*8P5/R,")[!7C(B
MB'8;AF,PS;8#2S1Z=;[IF-,I=DMI=[2W[1AV?N![_JB^J#O^K%Q#B\<F]V\_
M?90$048IBR!*(JF1*4(P2Y$'6<R\3/B8^)%6L4PCJB,KY98':16)9?%DH'W-
MH-/S\SH'Q$S?=EBLZ4^3CFLDM2/WKA[-21V[1C#LNW3-7K:PX^[Q7)J%"_8!
M%[]S1>'RL>"UV_^!%T^S!(4BX6D(H[K41A(D*F\0PY#R,*(L]CE*M<VV?EIC
M*P1%O#XN/77D >[H7P YXI.!A3$ FX8UY@X,0V50XR )@S5E<+G!X<$I#@:&
ME3L\[.RH<W Q,YKT).VUD0:&F,XDTI-EQP+2?,7.X#GH4B]_:*K(7^&B>)&V
M@(H>+V=^)(^<Q%<%QJC\GX@E$$<HAG$<HRR*$?)CHUYPFG1'UG%W_P,_/?^O
MMTW_LX<K0)OZ^72;!3,K2!=//3MH!)3,E%_'0.U5Z]K"J9_;3@-76D@96T*&
M<CNRA72I3FH-&4*Q;P^9OFX9/B,_FH_XB;]=/N%<[EM>%H=IQ* GZGIC0OFN
M,@(#'!,>^B+UA)&RV!U^[" 8^2^@J($O#3W#<JU[6.@M='L)S=:S@7#F,2I'
M97 5AK([^+21)D<%.P@F.?Z4W8+Z.\\?OU:<77[C!7[D'U?J1O5M/E_)W]7U
MP\I/JZJLY+ZE[ 'VGZNR>JK[! 4I255]/WG:8!!1$<*4!S'T?88SSGTOB8V*
M-5OR,?;1Q#Z]UQ98O64\ 5QFZ[UC"+0<@88EY7%O^ %;#%V EM4+L.'-G7XX
M$QQ'BL26BTDUSIE0[:NF<X=STU_Q_3H/V><!C@1AT$_580(+#C.4!3!&A(8(
M$T%]?$Z/Q?<VF<ON^BR^U\A=-D1,PS_B"@<S!3,=!.=U7[2"PLXQLBU\W97M
ME5HR'HALVI;Q_;1)[=IR#+5G/'S!S@C[5'WE17-JV@2WS9 OHABK7";FJ9*J
M60Q3GW"(4))X+"2!U&$F)M91*B,KKIHFP#51,_OI."9ZUM'9DIJIID;(SFGA
M,D!42R!']LIQ&I-:([UB[ML:_0_;+<0Z;[&\)&558%K-(B$$RC(.PU05-28!
MD^9#%$*4R9./0(DT);3N6(X//_+2:XB!+QTY0^_"'A1Z"\]>0+,5IR^;\5([
M+H*C-;8W^*2+Z[A@^ZOJQ%,6AOF[?*':C-8#WA;Y@N;/>'Z+7^H*>9<+5J_?
M*U46=!9B2D@4R*W-YP(B+Z[;!C"8Q-S'*<J\D.A73-"G._("5%$BX!GGK+;-
M\%/3.D,R-%\Q>5#.%T!R IZVTKGD85DTW#>E%< \QR2?YU5N5"G4 'D-<W\<
M/,W6>\M#E_Z_9@-T?-37@\T^?&58:=8 +8.3P3BHV9T3W*%G=E0PQZ#WX& P
MW'3'"',9=PX5%J];=H%?5#E3CIC\&[]7[:5JI;)U?2!X[&6AE\$X\BE$-/ A
M#B,/)ESPE'*>T$ K?467X,C*=YL\V-"_..?"91!#/2/))3)F:O1,4,S[N&M*
MZJIU^Q"Y:;NU:PI_T*!=]ST+FZS3+*>:@I:J%T59AWZH1(::\HRPR*,X4:U=
M? P1#@G$ >809P'C69201&"#OF_6C&BMBQ^L&[(]ZAJ6V6@@VMWX=L;$Z9[%
M4M.L60(;GL:&TL!L&QM2.P-N!&C-++ES8.FUZ:P&GLZZ.T?N'3OOK(&L>WJV
M26@["6C2REP6_\%QL95\-F.^+R*,&&1IHJIV>S',<.9!GN$@C(4( Y^;=>_2
MICVR';B.*ZOP=WD8+ROP(NF#JEAQN'K^GX9.:1-,]8S!D9 R4]WZJ:TU7T Q
M=C2KU6DW4%-<W#4%U:8\=6]04TB.M @U'L+R2JLK!=CF291M,9"8(ZE,!%65
MFA%$GB>/F00%\M3)O4A@J8,\H]8 )^B,?:VU+DC9D36\W#J!CN;UUODR&UYP
M'8@[0N6I :E<W7*=H#+M/5>_J <W70./VZW0C[Q2'NK;8ODM9YR]>?E<<G:S
M6!/;/@'ZQ,<BS6#(58\R@C*8)O(8&,29M UX3&D:SRJ5;*VW:/5)&ZWC-0/:
M'[9D!-3)X,\M*X"\@)]79>V>_P4LU]\]-CRL6("<D<"G+ M@0!&'B#-YS,Y2
M L,TS3PODIK2-XIE'@EDRWN0%M-I(=53I^, 9:9AU8=8XW2[_2%^[C[$C0)V
M>;2S!\"1,C8@/*E^-@=D7V5;C&!3ZF/%\FHKCUKSMK[WW1&]SXKB=MJW<6Q"
MO] FM2(<"&]9%&(?!%?U'@8DZB_L<.KE"2LX#/"_6ZIAZ.&Q+:+U-T<ICU,/
M$RAW;KEIAWX&<1AC*"TFY(7$2X-4*\#8GH6Q-^_+^W\#[]Y_^OL]>'?WZ0/X
M='M]=_EP\_$W<'GU</.WFX>;Z_N_CK6!&T8?C0O>Z!OZ*.%,]IA,OL>_3EB4
M/4#V>[XC?760<BE)2V+5B\H0JRX7[/J/5?Y<9Q51/\8IPA[T(Z02)9& *?,Q
M3*CO22T54HRT*OZ:DQY9/W5T+\"SHEPG6/..]ID9U:?AU--'XX!DIH>.YE5O
M0+M=@W8]"-KYR=6#\H^57WV:\.NF6 \",IAE/3R"?4_'#[SZNF2;DDH:^J'G
M];$#?K8[/#:D]99_G\3]Z]R1L(:GJ$,Y'?=;UA#KK#:6^V-.WLCRA%#'6EF>
M>M1\43T4N$YZ+(HW+S<+5N=DZ:ZH8^^.O)Q:DD#2E+]NVII?*!M6TI=6#%OA
MN?[R.BK[\-HZ5VRSA:4AL;M4NB'QK!;8T0$G6UU]XFPOK=[GG(8Z?%PNI!V^
MDF:W)'']_9DO2G[YI,JU_5?C(XI])K(DC2&)/ *1NM(@61)#C_ @B[W,\[&1
MR]V2CY&7\LVBDO]4M%42PIJJD\B'08CU+.4)@#-3!OH1$3L\@I;).AYBS>9D
MT1&Z>(T;*3'(Q8\0-:$+E68$A?9PEM'[JBRM-/O?Y8N\XG5SLLVJ;@X"[]?Y
MZVF"2>Q%,10T32#*E%9+1 91$*G&81&/B6\4R6] ?&PCOV4%-+S FAFPI> :
M=BS* E@AK:?<QL+/\-S@$CKS3  +#%QE!9B0GC9#P *4@VP!FS'LE-"Z9=F;
MEZT>=.\*_L>*+^C+Y?>\G'E^%,1^$,/ 5P57@BB"F <"4@\QPGU,N5G!:@V:
M(ZN<[79[:[K@BZ)LJ%IT\-/3*(Y1,5,D5H 8*PP#$1WI"1V*DZH' PCVM8+)
MJS:EJ54IIS>XY.QJ^:1LG>86=G-P?O.R>:0-?:\]*DU+Z/)*Y3S.Y_5;*LOQ
MW;(0/*\DF^7-XI87^9+-4!+3.(@)Y"F+(6()AFD@Y(DW1"ITE'$>1*991Q/P
MK;7NSDY2:AB1^[?RW(N&"_FOG\NZQM8O)F6B)YC*?J7V0\V,7>%NQ1DDBC6P
MS?ZV*TDYDK:?:V4 M1!=0_OR NP(4D_OEB@J@*X1Y@>;89-JXC_63%N6)/^!
M9MRPQ/ET\/?729^ CPF+K4^'ZF[%]@GIFMD)C.>SZT655R^2LR?5]VQ)?S\H
M 3GS!<TBWTOE>8$(B%#$H#PF>!#QV(^R3"1<:+4XUR,W\E&A80 T'(":A8LC
MU4_U=+<F@/U[JWM8#-VH9R*BK=O,!.VY79$#-8<%^</FC* Y_"0*QTS43ET8
MOF7I(=BJ9K)7"O:.J]H%DD3]1]5/PI\EOH=QDOB0DD159\TP),Q7U04R^5^*
M0JS7PL:._,C*H&, XK8@<M&QT-9V4GUM -PM^&28"F&(MZ9S8304S73'7M6B
M@P+3:V::)QSU@3D/!5>N"#/BTWHEK( Y<%#8C6(>=G'3-/%K+YWK]EPY5U%3
M5->-KSG*> NA)0ZZ (6.?'U64#QP5A\5W'KN#<6V"EC0&7^R^ 4#8;?#&4Q>
M,_M\RZ*:W?%2-0RN[?9UN?0V61@E"?%2'D(B(@Y1RE56)E&[:>83&C :Q9G.
M]CE 9^1]\HY_RTMU=%Z*MKI <^[0:@U@A%?_,G>(@MGRU@' 8;JUIIQ].YD<
M8FL7D__:K.JAT2=9S9HB=JM8]W$[F_ASR3^)Z[+*G^3XY2R)N!<*SX-)%H1R
MT2(.LR!%D- (IUF$21@9%?7>'7[DM2J)J:]T3<[,6MU#0L\:M9?/;!7NBS9-
M(];CTCFR(O<&G]1*/"[8OA5XXBF[8L.'U]_OV^JY+UVWL%2EUB,$$TQ5RU0<
MP)3458ZB+& IBS*BW^E>A^+(R_%4),>:"\,ZE_I(:MSHN,;'^/#X2M"8U0AV
M"I%E%Y$6B+I*M09NCB[ZC1$8J@T\/-"D58&UY=JO!ZS_HD5F#_O/AZ6Z*KA\
MJK33>;;>&3N\;V/P5LN=B[7!$-I^48=/^+92FJFETP(Z"Q$^)8Q=RL[V0-/E
MZ1QA?R<YY]C?S1?#EM];!?-^X\6+X=(X/<+("\7DRS&1>WB=N!'9;-5LT00=
MT?$6S["$5DNI9]C)%M:P:-O+3.-IBQWH\;&Z^KIXO%V4B[_A^<WB?O7TU Q<
M5HL',G^W+"Z?YV3^'T7KMM'=IDP''GLO>WPLZO@N</55W<;7D1SR>:7[Z] \
M==R\I-)B6\U5%!AXPQ=<Y%5MAEW.Y^!6?MWJVU:9O:7\[I^71=74T%*2X?TE
M4.=1&6R/QO.@L8>..06&&^UKH._02W<6G'9;O3&UZ>P!6R!VC ;K06P#7^Z?
M\'S^9E7F"UZ6L\PG01)Y&61)BB&B1$#,0A]Z3 0>]D+BAUJ%3T^,/TUH2TT2
M=#1- UEV >G7)P[$--,89A):!*8<E>.,2)3=\28./3DJS&&LR?''S*V&J^4]
MGW,J-7 ;SFY@I!][=P+S'"_DQ]02!BUE8U/]J-S#&_&Y(INM'%MIC3;#/I&L
M]KNC TZVI?6)L[UK]3[W"ID;O\D'*^6;:NXHK[_S@N9UZRK*9RAC7A+)W8T@
M52;8#P*8ICB&F'H9];&/LE"_V_:8G(Z]6;:TP+,B!IYY >K$C OPV#"E2@RS
MS>^GS-?HG4 -M_Z/,BUF*LIEO'XKP28R_P*L)[P6XT>9S0F3,ES-ZNMG8]C/
M[K1Y&#J(CYJ T<O /T[FA0Z.3E,NM A:[.SK,I-UV&23^7VY8.\W'63?2QN<
M\W5-U92D82"/GC".L8I$B1-(/![(]1'AC"/B^T2K)*05]9%WX$UY59.P:CL<
M-3;-,=$Q=*6O@6G#JMNJ#ZH![!8[%Z!AR*Y"MS&$!CO5F%#:[3Z&D#K:/VQQ
MZ-T3C >=3L_;RKNCNZT'L2CWA\EJCHOW>5G5OF'C*IHG!QA9=;9T@2)\87JK
M<%KJ8:>%$X'-M.&VK&UM/[=Q?EIRV=7Z.SGJ= 7_A@3;J?HW^/"916EN%L^K
M2J[?;WP>MC=6 14\0D$&<11X$(5) +'$$!)& XR#D(G8J#A_#ZV1%V5-"H26
M]6:.0-._'!T+;+8H%='FCDZU-%5TU=99RS]"US$-$5W7ESE"Z77JRIP6^60]
MF9Y7;-I1UT>@3^*>J]0OR7Q["UN^6Q;_+W_Y@!>X.5-=/SW/ER^<EY\7*M?F
M*U?7LC.$$R_E\@1#4DPA"D@$TR#F,(UXZF4(TU"OT)T#7D9>_PUSZLZZ[-@#
MI.6OOK+^G;^ IS6+@'<\@I5B$E1?>5T?WZ33\GESHW$JF@YQ,P6T 7O-61<>
MT( MF0,;[L#U$;!O)P7;I,'U9*!;MKH>&WS#QM=.X.IO@7T>B0F;83O!8K<M
MMILA[4Q':T_>^W7F<!**+([##&8ID3M0S%*8$I'"* Y$G,19AD.MC!)W+(V\
M$9WM:C^C-*N#^=(S>Z>=!9N;K#>:$_#&=@*,[6AWF#DRMQTP-*E5[@[ ?>/=
MX<C696'RBL^/U:;MRM?Z,Y+$ 0Z)@'&"?7E89S[$5![6O22DG K*0V'4H4J'
MZ-AA0/@YK_ \_R^Y!D7-#@,U0R#?*LE?LV1<]V484,TCOF.8#,_Z_;6H.PZ<
MEG71%M==,9=ADE.7<-$&X4CA%OUW;=O:D>IF459%?7QXRVFAO/72(GR45.O0
MT2 @*/;]&";(SR!B02C-KBB#1'@>"47,<$S,NMD-4!Q942CZZG#3D;M0C3JT
M P7U<=-3"4[1,-,'-1 ;VA>@HWX!MNB[[%"G*:JSQG1#]";N1Z<I_F$;.MT7
M1V_H<]RZN5J6U8RE+,9A( V). L@(DS -(X2R%*/X92R+!9&M3:<<#6VIQ"_
MT*^<_@Z>BV6E6MC(HX'\\;' 3V"^Q(MM-3-:!Z">.=%309,C;::FSNX.=/1T
MMC'(7[5AT#"@T[</ZN'I1VTF- SC&:V%- :W;31$BQ7?CHBX6A6%_"1G7A 2
MINKST@P3B$080=4?#?J^3[,(I5PD@5E7H1.41E:0+5W &R0-E>!I?/04FQ.I
MS915)_!.+%)+U66#GP'!G'7S.45GXM8] ^(>]ND9>L%NP;Z78SW6J_^.E[SX
MQF<X4F6T_0#&:2P@\ID'21(P>5:B'"=!%L3,J*KN 861%VA+I;[LP8LJI_ES
MG:'+\!-^-%VOA_#HK=.SA#8T)MKZ5VJ%=D0W]7;<K="3(CE:F8?C3[HB3XJW
MOQ)//VB33R4YJ\,@%!RWDJF\+)?%RT=I>[>1-G$8A\PC(0P1454ZL9#+,8EA
MF%&1"IRD)-+R5>B1&_OZIZ,/% -@PP%0+)@DO@SBUK].W:-A> W3"\1PG)(-
M(B;Y/"Z1L4S*L?M4#+-H=.7L3X49'&7"?!9=B7:34K3?LCP6R'V8Y?.5.O/>
M<[HJ:@OF^CN=K^39Y)TDJ,XAJ^83^22N<:$*>)>WO*A/*LUI=D9$&&*.0W7%
MPR!*D ^)QRA,8DI8G!(1^T;MEIUP-?9Q0_((.R:;=,\V5&7^HG(&2M6' 2R;
MW""P-.T2XG:"-,\P4\-N>-[98@]L^ ,=@T"M.+#%8EWWM652)?TUWAGW/ABG
MN+DZ3CGA:=JCETL8#XYI3@<_OXO*^ASP62J%DJK1.9/L\+)LUZQ(XC3T109Q
MS'R(6"B/>Y@F,(B)KV["B#SQV391&:0^LO)4V3A_!;D"O+DTY_)APULQ,S3U
M-.!H&)EINKT.*6M.+L V+Z!AQKDZLP)AA 8IP[1?K3^*-BQ][5'T![&\:WMZ
MQGFA#/Q/Q=N\?%Z6>/Y)O%\N'NNPC.9NORF"ODGG$IX7>SC-H)=D&*(LR2#Q
M$PP9)1$-&?5%8*1U;)@86?EL6%(&@F*EC5.YM(C8L0)9\ZYL9.C,=-(V:@7H
M^#F*X#0E]L^!Q]5%EPT+T]YKG0'2P376.6-9'D_5F'7X49G7L8VJE7J,:)IQ
MG$ 6!9GJM)'!3" &8^(E02 $HD2K/4X?D;$/CXHDV*)IU7?^*#J:1[TS938\
MN9F*:WX$ZY''U8GJ&(EI#T@]0AZ<=_J>=;,8KY9-AZSZR/10X$4I>%&HF^N%
M2L67>F+GB1G),N3% D,JJ =1A%5.A1_ B'H8(Q$)'!OE5)S)S\A+?$,5T&VR
MYRUQ4\SMM,&(2)ZI."[ #F6PQ5S]IP[R*RW(SU8SED"-I)%,N7E5Y64)W9">
MLQWVS"(%C?'3EG)DGQ9WRL542()O<)F7GQ=+HFXD57V$.M%Z-Q#H"L_IJNG5
M?;><JWK%*DEC)E*AKOMC&*9! E$2^Y#P@$(_$R$.?"^(]5IH3\'LR,ITNW1
MFT+0L0^D%E@+ &H)E)MD(T-3:^ @@&]+#O!%20):40R-L%$_ 4VOU0\RL89.
MKA]B3NWK2HP(MNO"%&.P^CJ5+48$_61IC#%IGE,/\'+!CKH3'Y9O^"W.V7]P
M7#S(3XG/TM#S!2<I9)QQB$@J+>_8\R%.4LJ8"'#&J7E%0&WZ(V\.\KM/;(K8
MZ>/7KX8G0,5,LVX*UZE&TJ<O$ZHE(!PHIBZ 8@O4?(T+I4U%P%$@/;<FH%-H
M+4L$&@.C5R10?]A7*!-H+//Q0H'FP]B=$'Y;+MF?^7P^\Q(21:D04&0\:6)D
M<$Q\&#&2)$$D6!89I4%W X^L7#LR9D;Q6NJ041&)!,&4J)V'1S%,,Q)#GB'J
MD]"CD<"SY[I8R'V%BVH\V?>)&"-P(5?T8[Y8&(?PK,%0B6HL3'R8I"F#" <8
M9MCGD*9ABN,,IQPG+1C7"S8V%!T)"R"X12#3&@6],XV-7&:[Y."7;7PTV.?9
MD1F_'G92DWM?F'WS^.#O%J9L4Y1UMWCK_1\K7/!WG%<SSBCS0T^NDD!X$ 44
MPS0,4RB"-//\"'E>HM5928/6R%JT(02$I*1N3.O:U09VU@!.&N:I.^G-%EE#
M5Y7AWZNEW"*BJ+L#PL"X= >(G2%Y%C!FYJ*>J+VFX< 0TYF!>K+LF'R:K]B9
M=U>X_/I9F@2U:Z --8L\X04>PC"A?B!M'BH@QAZ%OM1E+$HP\Q(C2^\(C;'O
MKB1%Y7!K:1IUM^I#1F_K/U->,P5E**JQ3= CC"/SX!B%22V%'A'WC8:^1VT+
M2GR3NG=9O+S-2SI?JH$W<58>]:D(4"0-"(8@\L(0IES^,XY3SP\Q%2$RND'I
M(S9VT%I'VK2V0P\\>LO1E=!FZW)-%6S(@B_C!))I".BL,D(/J8D+'@P+?5C'
M0.,=BV/ _AWN^JB(@]1'L1]!/U'EH% D#P ))I"HRU O\%/$M()1>ZE,'>IU
M <Q\*OT0:=C^+@0W6[PCRVQ@YKN0W<[ M\' S*X?DJW7HC_Y\G2V_!#_.U;\
MX,.6]ONJK)9/O%#A(:HQ3-FFY*8\(@$*,!0X32 *?"(MA\R'(0N"./95N06C
M6+43=,:VXUNJ*@*M)FMHPI\ 1].,/U]D0U.^DW9-<82V$@-2N;+I3U"9UJ[O
M%_7 MA]XW&Z!=O7![U4Z;=-IK_T*HS (&)/6@)<)'Z+(YY $1, @D\=NYF$<
MQ$;&_4E*8_L&ZT3AMHF@V0(]#8[>$G4BLMDB'2R0UK QPLH=%-;1VCU-9]+5
M.RCN_OH=?L&RD-$1_]OZNK7]!,JW*_Y1'B4>_N3S;_R#U"!?RYG'*/<HCV&,
M$[G ,<(PJP\#82HB(7Q,J5&>ARTCXX>O1(:UCVP1U=,*4^#DZ!:A+^+BT\)!
MO(4K3%R58K)E8]J*36>"=5#8Z=SQ+-N(T*^<K>;\DSBS>$#=%V_&$Q:D2(20
MTCJ<FR80DR2&6<8P"CE!C!NI,[?LC>T%.5*[X^5B4[KC^O9^-WJW9LJTCXC;
M"=/3EJ\W#88^&<<S8-Y(9!2@7#45<<O<M U&1@'VH-G(.%3.KZ3R=YX_?JTX
MNU2=IA[YV[:4@JK:+$E25<(5J;,B80QRH?J%<B]3WAPA_TEH1D(:I8+;EE(9
M)C^R:NT8@+CA '3%)$"A"E=#U:&DCE(UZ9AN";2>RAP//C.5N!>^V[$"6EY
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
MA%2$FQ]#PM, $A;@A,09\JG607:8U,@*;DT8E(KR!<AKJG48>QV^7AK&K_>
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
M6;DH"A:+,&92@4=2B],B@JJ$+Q0X9C@AO.!187/FG8?MZ7U=38?AC>Y9LN,
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
M:=S/UP98SD@>9WD!6<:5!XV$L&"%@$42IUD8Q 7.$[N.#)ZA=>JQ\%N'F>
M@E=U5>,?.K/;><]PV&WR^X_L8?>1?=A_9"U,B@=_-_(6 GNZBS>A..LMO 4$
MQ_?O-J\ZEBO[)@^X/^-:Q4;O,YEOJTI=@RI*/[_N'VD]0/K8?/^B>Q+TCL9J
M,_BXKM0?%UE*(D'B N*$(H@XS6%>" YCC(H@#D(<"F%5[&P2-B=6ZDT]X9:#
M R?"'XH)T')A6S9MFADSTU]O/P]V*D\S S4WAZGZ/98!>07]YSHGM>;[IIN_
M&Y<)M"_^-BF^ODK'3</DO(7G)@7ZI&S=M-2N+ 6TKY"@JB,T?5WKMD@-%2(6
M*4XASU@!41%CB F1IK;@0<:10 FWZCAH0G1BM=QS!?<JH%Q;\F<(1#/=ZAL:
M2P^0(RKNI7T,Q/1=T6>(Y-L4\C$ X6+]'I-W?45W=WTYI7)2/3D7-$8Q$06'
M(DX81($Z*=(HABAFTL)+!&8TN"ZJ^XCBU.%*7=_1EX;<M4'<QWB9J0"O*-BM
M_PM!VSM<'D9P\1"K?4'6R6*TC^F]<6SV!?''8[(OO6A_-7_+_OFX?N!K9:5\
M7.U+5!K>O%]X?>JER_ZYK3=ZMWI<@X</]P>6_HVTTM>;U7ICN*2'8!B_ ?>
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
MK)_J<PTTV^ /Q3C0G+OVR/$RIV::\LUFRDZ#OLDDN;?L\0FF[]X^7GA[FR9
M/F&]V"W(*Q''VPAY8.*\-6E73[IH[J[#<)>U]'[+5<7!QS_7"QR2 ,<X@U3(
MHR**$PISAA+((A[E.8UI@>UN)^SH3ZR@Y:><6MY)6.)G>$<Q'2J6=Q::D1NP
M8Z4K=MWK7[Y9 \+;.PQ=F%)RY/$:PPT*7]<:EM3GO>9P@^;DVL-Q&#>%\YZ3
MS=VJWE0Z?NCVK[)>B 1SPH,0(A;)$RU-"<11IBY 507'* XC:E7MX)3$Y%%O
M9 /V%,$?BJ:E178&%S-=<9VT=NK 4E#KQ7Y9%D_K^0R!69?L90&/5^7 DRY%
MU+IB;/Q)#=>63@X$28I4)!#G128W<WD6(QFF,!!YQG!,0\Q2\T)GYTA,O/#V
MM?X:HC9%I,XB,KSD_,AIM^2.11PO^VPJJTU1JVME=HL7-9Y>RRI10](,5W(Z
M^^:,U9:&.#^LB#3XI./U$=\T05(J4&+!*"54! 06<:)J%.48YA(PF)(@$YE
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
MS=CJ#W_QBI:UBD:[D^NY7-4EU>%KX2*-BH0PEL$,J3X915[ G"(!XRA,Y:&
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
M-'VPMVF"LUB5>9Q0A7.2%IC$A<(\B1F.<QJ15&KSMT[U,3TTQG:H:F*(M=0
M5N(,) [&]')!819S/Y6FE?8ZF+0 PW>YU'[6#2X]S'[UR]5KI,Z\.ITEZN?]
MP-P,/ J/Q.P=T;78/+/%XN6>S>4_JMV87/#H&Y>U1O?BNO>_+2_(,H-^5']%
M^VG/[J&:$T+#(5MH<&#&QQF7$8;@0"3WBNN<"$P6WT'$[<9YH/<\KY'$=R6?
M[4R-6[:VA;S5MN:_GJ!UO93OYXMG.XO^,(4WS@G)HDSC6-BY&)I)S%498T98
MJF5L_E_BU&7K0C[&OFQJN;*;U.%(>-LFPWR>1Z,[-9?M$+FZ]JWE%'C_Y/DA
M'*^DQH<7>$O507;+TK[WR DT1\W(OA">4%=:GEQ,>\MU&51'%U\7+C=QEF?]
MCW^H:K.KPHIG*N-1EHL8ETDF,"'4EE+1!$O.TY0F!>6I4W+*&,R-':19BNA'
M0Q(]]5<)CO\E'&WA&^$+-)"7IS V7Z=E.'@-YQ@POG6.X2G6_G<D#O: &BP;
ML(\&/,S\8JQ^'/$L-I2OY>K)V/@/"_;@&EF>>7UD@V>I(DL6QP>*V'+@'D*>
MDWXX:@P@.,P2#<B,?K?D P6& \)YQ8+GUIPL_!L0JAOQ#3T::!Q'[4Q=-(RC
M7F$*[\)A3L6%XSH:,(85+PP.P#LU1PC:Z"C4=?N@I.'F<S3+ONUTC@/1!F=S
M'#Y]61.5>_/=OYM]]EH(V^/.WNC+?SU7F_I"?Y:3N(S2K,2,)@J3I*2X5&F,
M99)RP0@O3-CATTVEE^K82KV_&$,8L1U=OQXK_?BYQ0/!48&I^+[K2K?50^-?
MH>MA?+R;KSC)&[@+2S_--VG'X@3#N;XL;B_#=VWC=O^CZO14W)OZCX[)Z(ZK
MC/>[-L31C^J@J>>>?N \=*"P7KN7R_J3;6, 8;O[&>0UCQ^M4NN_K5?/3_4X
MU#J&; ;1?=DLKQ\WKO[FP#(C[T^6.JK)-U-=48<!]$5MGM?+H8:T8& <-#D<
M)D MOAP.F!:[">JGP0-K3Z>];D(>:*[C*R,VZ+[]\TD)>Q)O^UH^?-9?;9,J
MS83]NWIP[WO;:O#/>343A9:))!RG$8DQD23!+,L2G&H=,25+FL*Z(H5E;^PC
M(O?&UEN64<.SO0OK<GV%:KZ191S];ED'UK0%_JQN[O3;?2S@L=:;?*=QFI6#
MX9RRJ[D[<S]?^W,PL%Y]TN%4?)+['TU(*=CR_</M4JT?7MK*$LY8%D>:8U9D
M*2:12##-4XWCA*9"&V"Y<)\==)K&V"<*+5'T_F^H(0M)*3^-2K^I"R0K\"CP
M2$R?XKXS\D+RY"^6VS,9WD-^8,)[KV3]6>VG7YTP=;V7]\/\]/Y'X7%?W13$
M&K;V  L0ZYUX=61KT33QZ>[T+>G!.2-.<@^'<A>*##,:_M*"HK8>F;PBM5/K
M31:=]0C3C<CZ'KOL4F!_Q)=FNE"%5%A&)<6DB!CF>6S^$9=EG LFE%MYW5D*
M(RO;EMX%?3F.08&=ZD]PT@F3TON\WN48\Y*S^8F/,0?%.W?F?NE1Y;[9;%4I
MM1M1T30XWB?6%CDM2);D6!@/&).R%$;WS#]DF4<R4;J@,:@C;#^YD171KWMS
M+SYN:AA.:IA.-G2O.A-(&M*!BQE@8@;K[-Q+;.(&SRZ"'_=Y=GK+M]VS3<O_
MNC$KU>>DU>?G3;5A2ULO;W9N076<1T:-3<Q+2DHQ)S+&3(F2$*5U3$%7ZGW$
M1M;I;?F!I7W5G,M7Y@>_IP_M^-P#&TO2@K*DP!E))28LT[AD.<%,)R4595)D
M63[[H=9\-35P7:)0Z*H&NGHZ<(56HR#G9B9#H0$SDOZ_((^^U\,"!FMXW4-J
MXD[7PT(?M[AV>.?26J]ME>B'^7*^41_G/Y2\6QHB#W.^4'4AZ;N77]F_5NN;
M!:NJ)D$N)\J8Q\A$:K0H,,EUC,LLR3 M&$V25.A4P3I47\+-R*:U6YVTFX74
ML(=K_M">P:9ZV:;BUSRBFLG!?+P1/I";I9D,=I@I&A_Q"XK"+D J>&F8#R]O
M5"!V 6SGR\0N611F-J6:S]ZW1]65K?YLI^G)=R]?E%9K9>#8AT/$N$A:E1R7
MD?60.$F-8QEQG(M,DZPL,JV=PD40U9'-X(X/U&7$*MZ.%3<#!X.RWY"-!A#,
M8#E@$SC6]!*\Y_C5K->8'O.'O<6!49G$LG@)OK4@?B_[.5B' :V=8S13M(@*
M%1>8YN8?I"PS7/(BQYJE/(I(% M50KRF8Q)3G!PA]:<M% /.$#H!AYN/<IF0
MP!N2PP.B9OQ7."?BO"B!/(,3!";=[L\+^'H/[WG23]W.NP#5]:/MH_P_N^P*
M\]O]9)3\RVIAUGOX]H=:_%"_KI:;[]6L3$BB6!;C.&6EB6LBC2F/<Q/<,)86
M!1-%"AHE'X2KD97:_(HRF"Z'P=I-_2='$&8Q>J.2JKY8W?&(6B:OD&43M7RB
M.$$-E^$,35#0 MFF,#Q-:LZ"POC: H9=?.+6%]L^8\VIU/4/-E_8X.K#:OTW
M\^YF1DI"2$)C3'1N[&C,)2[3@N%<9VFA<Y44&C9K8B1&1S:M^ZYV[;'R>I=>
MRK:LU',&]?/&%L+,J^J9.0=2HW]%QT.DG^#; ,^7+F^GL?^R#??H^N![U@+\
M!.TU'"%^ZU8;0VS^[VB[X0AVL!8<KO1"Q*\?YXS/%_/-RR<#8COR-<E$QO-4
M&1>YB#"Q_^!EGF-&8\V+,LD3"NIU-$AQ[&S 7?2WJ./<Q9:#*[18+1^P6?+Q
MDJ#W%(8^,?"%R%P8$G_<H[*G/U:,W"/J*"'S*7IO&$'WB-\?4/>]Z#L+H+I>
MRNVZ<U4U:1NO&A F42E(E)18Q%%N3(+*,,V-2>""DC2+65)&@ ("1ZICW_\]
M/STM:D/,%N@=6]29LU^_J[HGZFXR$[1SO0N:_<9A-(Q@!F+;FWLI48<'8R=J
M+B"=&B] "MK:/S!B%W3T/XM<R,;] '&'^_6[+#9QFWZ ?,?=^2$OPR\-;Y<;
M8X:_L3_OI/F!S/5<U#^2QG>;Q06-(Q&E6*C,V,N8:7ME6.*,Q6F41YFDW,F%
M&J0TLHUL:"-#'!U2;P,E]YO!?KR&;P.#H0"S@MX @&[\G(3SNN7K7WFRFSTG
M ;NW>6XO7)HBU7-6U^9#R:(029QB)1.CQT1PS*76.-=*9A%+BYR#[@W<28^L
MV*^/M*\.\W NS&P:Q-7Q!&H4M& &X$*@+DA(<I4Y>/;1(.$W2C5R!>1\7I'S
M"AZQ5*>QU]WRZ7GSS^N;F^WLU8)F-$HRG*6YQJ2,,US20F):1E04!=&E<DH;
M&J SLLGH=BZK*5\A2QO@]O= Y! 2A1$<IOUG9/8IRNX1'A#EA '!+ZZ!_@!@
M <VP9+TA3,_KTP4MPS(<A"D.C_MY./=LH_9S1749)46F"IP5&<<D91$NBRS&
M5 FI\YP(&4<0)^9@]9&-3DL+YH@<BN_F:W@+!3,H+9F 70UZ!0CD&QRN/>GV
M?U*LUSO\Z8?\=,<X!O9G6H]JOUW89BVUE=SJDB9:%6;OUHFRI65I@CGC#-."
M9U'&(ENR#=&E7FKCQP [VJA#'*AM_8"Y:5\P&,#._6D$1M!/)Q$#Z6L_K4GU
MUTGLU_KL]I+GWFA^ 9_88]/MK$QU4?"2X3@FS*BSV16-2G.L1)YFE+,DAU6*
M=A<?>V<T_X8L+:^N<0<H..Z0GK(!-TA7L> ;Y G^0^V/W:6GW1Y/"'6T.YYZ
MQCL;UUZ3'=Y%MKD+U?MG=:W-+_F_%5M_,#&V3210I*0$RX*;N)?P&#.14ER8
ML)=SK<J2. TH\*(^LOI]^Z[6BEF"X!Q; ()NFCD:+C#5;=DXD5"P62&NZK&3
M5ZC&#%END&4G:'(L'(5P2;  VE,GN\)A.9'4ZK&(QRG:8-(4/Y,T]?=Y97X>
M<\$6'U9KK>8V[_*+"0MF,6<JT8Q@728))E)13'->XI1G24IYG!(WCWT<]D:V
M4GNR-GVQI8ML:13ZY:F93?X7P!E6^*_C<.[WIIC#+&#-!W),0$4G$U [7VS/
M-;)LO^EW AQ1ONGW\CO9?)OO!CL?'0W6WF/5\%2G.XT=#;&#0]SQJ'AV/%M5
MU<VJ'E.BEN+E/7MD#ZJJ*2KY#[9X-ELBTXP)GN"LS"-,HEAA6MB2.)KF.DFR
M3$>@6^UADB-O<Y8!)/8<7"'9\(!8PP2P*=HPA&Z.>5A@8'M1C<E-%Y.6/&KI
M7Z&:@X#]T9RE#=4C;9C@M'W2G $XZI7F_J9OFF]G)E>;'M<VV3A,DS-_9S90
M^4EM9DKDBMI>X8*) A-%$\QR0DT,+WBA!<ERELTV=E2%@^?LQP/(;NPX<=81
M0\$@U208U>FLK$W=;-F"IK3",7;P?\='#F98FL8\'8:NVJK8?4^?5ZFOJ&7+
M%L@ZMEZ^!%-HTO"HV%Z00CP"QAXYQM[H#&<<PY>>./_86_;C;&3_I3R3',TO
MKG8_;PV9S8OU35=+>UI3G_C3C(D\2F-L?#V!25H:YR^.4\QIE"FFRUPK#LIK
M[*,VLO/7D$1[FEX7(OUXN;E[P5" &60P /"D1!?!0N4A]M*:-O701>RC;$.G
ME\:Y?IF1-$NH$AGF(M.8V":.7#.),ZE%HI7*<AF[N&RN!$?VSYII=$W5YE-+
M->QU2Z ;EK>]5)GN#F7B:Y.?ZZ;$]W+D0J7_HBIE7OIN'(7WZH=:K)YJZ]+T
M#[E?+>;B9<8SDA0J3W%>)BDF+!&8<6[,0):G21&S0A2@DFT'FB/OZEL.:C^W
MPT/=N@MH!%P0=+,#@7&!F8*SD.SZ#S4<H-_;_QVE"SX @F #Z(8I3CQ5SAF"
MXU%Q[J_ZF8MNOXBO;*&^*O&\KF.+]XIO]O\V2U7.21E3'-$TQZ1@#+.R5%A1
M*G2:Y)E."XC-<"4\LN'8L8'U:HTKPPA2C8-<[5B F0]G1-ULR!@XP0R)I8/V
MA*[0(6:6J7#V BIN(*/A3'92RP$%X[7Y +_O9T.^K9E4QD35XZ_:L??5%R74
M_(<EWFZ9C)<JHHICR4K;$2R-,:-4XC2F">$1U8*!AN<X41W;>K1DT9XNS%BX
M0>=F*8(# CSH/<9B7-<")&\@.^%&<U(C 8+AM86 O>QQF73SW5YLWRWM=961
MZJOQ8M8V_'FGEDK/-W6RZ6HS%^I>K><K:0S5C?WKQ:(YCH_R,A-49,9H<&4G
M3"C,8U;B7&9%D9O_2V+JG(YU&2\CFY*&.31?HI8]M.,/M0PBR^$56M8\HJ>:
MR;K/G.BP";@PN?#;.%Q&38<XS%:Y@]VPA^[W8-^\"=B 6ZKI0/>[K1H=?-BU
M51BX>J^O+B0QW356&"P.KK,"+>GGF;Y[KN9+556=Z[3J?KWZ8-MU?5(;V_O_
M4=ELBADMLSR/B<)%8;L8LHQC1J($JR*.M12*$0EJRN],>>1MI<Y9J(FA7Q:&
MG&/^+AQ -Q]U%%A@MG_+PN%]N6$"U5S8"W%TUR+VL1<QL,<*ECZ0U^I.=U+/
M%0S':^\5OD P,]+>QZOW*]O*>18IIEA>2"QBJC%1JL0\EPJ76HDBDHQJ"<J1
M'*0XLMDXK21;%M#O#1/ 2_-A&+V-B#\X(8R'.RXA3,9I6<<S%:_HO;6)."V^
M@VDX\^+$/?,_/]5FJC/"\<XX1O-E-1=-KC AQF#DN<12IQDF6E-,4\&PXI'D
MMH] &B>3-,T?XG1D$]2A:S3LX6&M'FPATHZ'@7SDB;^:F^7Z*;X%S.(%Z)+?
M,G\P1O;*^4-.UR;?%>2W[I,_R.?_CD;YKG 'ZY3O3#! TKP)=ZNYK)MQKY;?
M#&N55NNU9;E-V]\</''3-H*GF8K3B.6X+&T8FG.!6<9*G&2Z*",612QSNF4-
MR-/8YYX[XK8D9T_]@L1O3^P=SC.G1Q1X!W.<"'[  .KP>(4ZT!\\9?YFH)__
M:-_@@F3\\;]%L.3\4;[)9<GZEZ$'2M[W)/5VR?R78=.;W'_ATGZQ2YM*I.0W
M);XO5XO5P\N7^</W70N\5.1*9F6,91F934A09C8ASG"D"TI)*6.2@](#!^B-
MO,'LJ*,]>5C4,(27F^\?$ 78IG * -20'J%QF:.8@7SH(6J3>L*.HK_V9UU?
M\RSPK@<9G)D+TTD[WC41RGD:EY)2G+,HPZ1D*2ZCG&*FLI13I:12H"9G4 9&
M-@?F)T2!]=U0!-WLP9BXP Q$PXF-T\\/>>KV9!JA&Y,O&*%*PZ'DIRT4]P3G
MJ&S<=QV8Y5%"SF[_LWFY_F,MJ[OEU^?'QW5=V%1MEM^X;5]Q_;3@B_]>M]NG
M@RT!+CEVUM_N,+*>L(?>VS]^8/-U<Y)EQT&V17;UL8.=_MLFQCVMUANS#\^7
MR(K UB^'1VK?W!,(H2#WVZ01\04&L*-"&]#=\42L9RJ+6;$U54+N+124SB2&
MR5/XK3WR??VRRUM#@+>=8<]$5SM;N#V-,%&/"772&!.:"DQXDF'*8H9EPK6*
M-4E-/.1SJPMG9?0\YEU$NIMW6:?Z#PUV#(TX[ )X7!P];X8[3/4=YW1\JV G
M.^'P"7R;[,'(FUPS^P-V[O[Y@A4];B%VOMWU4IZL,_VV>J>L$S_+4T+R6"KS
MS4H3Y65IB7E$$QQK;>Q<FJ4D$L[=>IS)@LS8E 7@0/0<K@I&P01FDO;QG"T!
MO:@T_!*P &?ZHX#F=VP?$#S8R3P8@][#=_?5ICM?!TMX<(0.?_N2@[-ZZ?>J
M$NOY4V.ME^INHQZK69D52:QYA(N,:6-!98%940@<E5&9BDSSG(&<PP%Z(WN
MVS.@]@?>X0#];GE -1/ A+\A""$'94& \3L7\\7$\Q1L4-*@AU[GJ;W!&=>@
MZ*>/M(9?\_"EZJDBJMILJ^.:;.*V]GZF2,2TXA3KG!K_R;A-F,8\QW&N1<%(
M1I/2:4K6,*F1%7]+N][F5I;ZKEY -0Q 6G[W@^;@-@6# J;J!RC4A'<U +>A
M40#X0\'0\/.!+D$%YO0X"=KKZ/2O,)USXR3)@4/C]H:?$W.0(;>4MX]/B]6+
MZA9?5;OQYK.L)%P4BN.<ESDF*B-V (N)"96,LKC@2J:@S&,(\9&MW!>UF;>S
M*)\L79@? T+1S:D9"QN8V3LX(K=*ON4#=0LQ*_3[* 7\/A@$\GU I"=UA'Q
M>>T5>:WA9V .;Q.W6URITRBBB<0)91$F4N>8$T*QD#+7NF!EG&J()3E)9623
ML3\ 6#3^?^L.P4S':7S<;,3%4OL>%[4!S^V P&"%[Q4HD&:?IC&I"O>*^5I7
M^Q_V5$K[[.?U_7HEGX4U N^8^/=B]=#>!4=2BJ@@&8YD$F,2"8%9;I0UHV6>
M9O:N2X"*%?O)C:VFEKA!!^W)HY8^4%/[07-4V6!0 '7W/ HCY/BY21E*H?N)
M3:O93H(?J;C;6YX>/JN^V_]OTR)^L(6J^_=4F_5<;)2T?V$<@,/_T'EREDD1
MEYF*,2^*TKC\)<<\EBDF:41CG<NXS+-9TVGFZX:M-XZ._R4\093D-6?NCJ^A
M63N\POY![:E?(:X>YLNEW097&IEX#+TH!IS:>-DW*3*9L"2/<<SR I,L8YCG
M7.*<B#A-LY0R1=IO<KN4/^47V?(5XGLH>R[U-E_",92;"EM@;&<(7:$:V-LN
MGGM64/.(A?W5?^R^$3#>"P%4J #P(EZFC0A#P'84(@99U&_+VL:C7]7ZQURH
MT_6<GU;+'X:^DG6B7U5?[7?_WC9V_K3:_+?:?%%B];"<_X^2LRSBF3!!)BYI
MRLQV1@3F96'BSD3F!55:"@VJ7!F-TY&=XH-S'6'HH[5:,*O=FQ5Z;ME%Z[W2
M5YN5^'<S_JRJ#4+S'U;-;5?[WY>KC3'!=JVM&#!C/-YW=S/4/\77A!GQDU7U
M^TIGVR)M^S7;8GO+GVV<5G^I/8M7;:IL.&L^.IJ!+/UX?$ZZ"XP.]^L=8GR"
MGAW+ZWE(;;+<-3<FC(G-+"](SE(=8>,<QYCDF<!EFDBL!"N**,Y(K#)0>_)3
M5,:VV@VU=JS<?P';CI^$Q<TP7BPLS*@UY'9YK^CW+<F 1Q2](H5J&GZ2QK0=
MPOO$/&H'WOLP3!NK]69FTUA7B[FL-;W.MZBG7]GK0A47$4[+V$X*2#)<LC+%
M>1Q'629)Q(13 >%Y$J-[3QVB39(/:$A8#S;]^AA&8N@5(%A89V4<EJ=/$\W;
M'2TT_[;7P)Z%)U&_8<&VNN?PI-\V>+>42L^7\XWZ./^AY-UR8[[JG"]4H^6_
MLG^MUC<+LY5\8H_;]GHB25)&>8I+R8QF4JHQ9USCDHM"IY*E20':)#UX&#V;
M:<L17EB6T)XGM-UV:K90S1>RC'EV,_3Y &[;\<BPPNQ#!]&/X1 %[^<78!)H
MM_?A8%)?X *(7GL*ERSE.:N0S==UB>=GW21US]GB;FE<E#IMK6H'8409-_:+
MEKA(XQ*3+,\PE9)C46K-BC)-8UAO1">J(YNLP^K6'1NHPP=PB*$3E&ZF*#A
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
M,&)['A#K,!',9SD']\6NRR7HC>#!7*$.0^C:!<J07LP &N,[,^<8^%E\F@&
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
MG2FPI\0].0OVY N> Z#;25UIE$:5S'.MLLQ4X NI_Z0*G M6EJ3(A-Z/O01
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
M5[2]9&3VC':?Z^7K1FI<H5[$*[0G9!= VHII1FYT@EZA0534RVK;(?+G^^D
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
M3$RE,L%E3@06&2D9Y2E-E55CA7.$ BOG0+GMB/NMIXUD3QS@1HUA9>'H>D(
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
M1MB/G?QEL6J:/Z'OLD:-(8\P8H8#],M\B?[R]=WVOYR.U@#0LU/IBS&!:?-
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
MG_&G+ZNLV3G<7_^8-S-2J#269:2/U7F$21)'N(K2""L:5W%1"J$$J ;\!)W
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
MS$258%)QKO_$!%9%DA<)*=,DMPJZCY,)K*C77)_?'A?4#&EZ)]6<SX&]8DZ
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
M;(XJK&/\9^0_O)Q=3I?S'R]G";>3D];)&,)L0+7&&*JU*"+)BGDF6+:.FPK
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
MTMQ6Y)]GDS32RDI'O2?)E>Q+*R@)A@K"@[84MQ)#];GQNZEI1'G5P54EIC<
MG]_FL\4"+8$\7HYT\+P,T"/>HX,I"^BMI<7Z3S;*$)D)M2^Y6\LW\K14!R#'
MLK6!W*_K?BWK.<$WDW"XMU+$\B3O#2O0QHUX5JQ_S9V1/K!8.[UU)S&-/!O5
M04L=EK>@30"M?S]!G?@BG8^GX[*+Y?@;K/<U"BG@88!$J(,R&R)KXLH$V!"E
M,LK0S%GMY)L'2!K6W*DD^$WE4U$*#8#J,W2YM%?4*VN-M8X1,.715 6*BC48
M$JRA*D8I;*Z>$WV'@F$MF7X@<P*/&T#()Q0!$O 5$?\*+?[)K!LY?;499[5-
MT0=BI?3%H%<D4*$)2*? H^<:H?:UM9>@80V=?O!33P(-P.DW/YZ^0_OMP_35
M>'&QS@;YD%=M:]@HZ9RD<Y'HG'UI5Y>(1]X1L";3D%TRLG8"S7Z*AK6%>KK#
MZLG@A&*@LY(9\J4:L-Z>7_CQ?)5N]&XV/>L&#*^V]#>8I#>S^>]X6EBD,JM(
M"2]S0J4PFH1@2OFD2E;Z+ .KG3UZ$&'#]N_H!V;U)=*"_EJ/*+[97#E)(\NE
MCJ7,VQ3=*TTL,2V0I.P,4E+HI=:>?+>=DF$K=7K25Z?SO 'DW./-B"4A918)
MV8'.K 3E2?"J=(4KP#<!+*U=_WR/B&$';/2#E],XW5*8:)7=UJ'=^9PU9$M2
M*MU\68S$&8VW<O$@E-)&VMJ6T18RAKVG^@H-'<GF%I!21J*OR$?WX-XIDDHQ
MD!*YPZDMT0B#;H*QQ(OL5=2&1E?[6MI/T;#74VW\U&/^T+-ZKHJI<1^W=G7E
M8TH#2+02Q&E1RL<D>@3><Q(E>,.-L@DV+JH=$W;V+C-PN+"B,&>]<+8!&^9J
M,VORW\^FLRL=.G),<.E3($+Q,F V9!(B-80IU*<4KUG+:ELS>\@9.)!8'TRU
M1=".YWY["W=/1TC1.E4L-E8Z@T::B#59ECY'- 7KG=>U'TUW$C-P9+$_0-5A
M?P.VT(T5=Y63,IY>XJ9N*HY^A3R;P^KGOOCOL'C]'?F'LAM/_?Q'9Q#LZ#%B
MA"KQ546BZWJ,Q)*2J3G1*AK.NQ;9M7.A>]S.L$Y?92NL%;$/> +6AL9Z?^OC
M^RM,(8^7';='1E$>62H=G4KO>>D%L<D#[L88J@T++HH#+;C=JPP[V+ 2K.KR
ML@&;;94ITSFWI0N$B$ATLL7:+.VV Z>1I!R]@O(N26OW;[Q9?=BI@Y65SI%,
M;>"6? _+&XUY4'\MK[VR67O"HZ=$^JB(8YSC!D%J7V9NJMJ&_:.)/,QWI,\$
M7?W*J"'+__8^1U:)*'16!*@OD_ B+Y/P-#%"9.9<=J'Z8.H[!!R&H>>2GGT\
M;QM04E=M;Z\:&/WJ%^,XHBID5L;#.A8XD5P!<89ZHET,5$AF7*H]_&TK(8<!
MY;GD6Y_.ZP:,G#]@?/85==.+;VCTG\'[RU(;]2'?:PNRVER,-JN@,C&JU%[*
M4H-E;2:@@Y>,&A"T=ESA400>!K#GDJ_=GVP: -[FZ7DUGESB7D<F>*!X^1)
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
MBPH_2A(B=&U.A191F&BJCU&K1/NP&6#-@7H02+3C(%WUZKV;@SE"PQJB<H)
M&5LABU5CE<7_"&:8$ADMZ^II/ULI&3;KK#FT5A!7 VIXQR16E7@T'@S)N808
M6* DF!2(UD)3JZD"5WL*_ G3;WO+'6L.=!7$-?1@PI+SAAS;F'HV$LX ;@$(
ML%*0#*SDO)7L$CQ.9? ]I.@?RI38\_D#CY-H!DBU1-" ZKJ?V'G#K"XJ=3-Z
MV#HEO5'$)0BX,<N04;C/K!(3,7DMM:_NP1Q(W+!AQB=^-^Q'9$UB\2H@A8<=
MQM^Z#C39.B.3BT2+\M[/1>G,2!G)/J&B%L)+6[MTX!"Z6FN#4042#P+O1/FT
MXS;<W]I5< !/[8AG"&@.,.)TF2,)/A+GO269ZL13C,S&'L8<[B:HM1863P.V
M8R72,LJN7B;_&"^_OD3C!LV8^;NQ#^/)>/ECY"GS/ E+$LVIS% S)$A19B$#
MH-$"3N3:W3,?26)K[2B>!HGUI#:T'W%_;Q_G@%[1U2S=J_'<+R_G12 KKHX4
M:G4N(B=!:8:>DO'$2F<(6"EI$$"E/'3P^1'+M]9@HB;FGD@H+:O$;FL;/!U!
M\<!US(09YDL'2>1J<.A:"?!)\  RU$ZU.8RRUMI#/(T"/%E&30/P:E]7*OVV
MXZ9UTF7:%@E1<53N21+';29:*:=QIY96KUQ^'(7#:L=V7.%3A=>T/_S1_^B<
M+1.2$RD']*YR1MZAX@_11&*B,31[*E2N_:SQ(%'->L(G(^)@=_@8\;2*M_DE
MTG'#N5'FDBHI#;$^X)XD%<1K=,3PF 8GHA2>U>XY>@A=S;K$3X*Z4X34)/!>
MK0GY!.CS7\((N I,9$FTT&B^Y.0(VC.B&^FL O7,V-I5C \2U:SOVS_D3A%/
MDWB[[4_=.4A@HS8B$V ,2G59((%S1[CQP@B9-5?UT[8.)*Y9/[A__-405P,X
M/-Q:'H7$C2F-GEQ)R9%,16)+-@X8IE.0-DI6NWG<X=0-ZP0_L<_1D] :&"^_
M8V<E[K[8P4CGNR;G99BL0I_?<K1PF;8D1>ZY24FEZD,L'T]E(Q,TGJBVOI:X
M&M"/Z$===5R,_[H<SP'WBL=L^>/CQ$^7+Z:I-%>Y*#\RBI(KZ5#?9X R-R*$
M4KL !#4^MSP 3ZFV)WPX=4W6YE?#R69A23]":R=BB/N) &E1^N*6+-H/>?<.
M1? T<9M(A!B1D<RBV2,EP6M'4PH\:M=##=2AY#59;M\;+GL26XMZ\BV*<7HV
M#A-8Q^:3#HQ2+0E/$ATTS@T).:%U;)0T4FDIJB=O/4A4DTE;3Z853Q)10\IP
M<U^_7B[&4\ M+;I*@L+C]7?2*"H=0F!E(EQI?Q\#6CO RWA*QJD$X%G4=F(>
M0U^33R=/!LA:@AL>F]TC^LW^MO<'76QA[(@GQ2)U$MVTP(@T> -8PS+)T6F@
M+BO<ZD&)#<>LWJ0771M^3R.;X3'X>+:.7([>)DV)4QE]06H\\09=0W"0M 5#
M3?5Z^<.I&_:R;L"'?I1XV@WFO!E/_31N/\_"A2RSX"0DM'6EBJ:T1'$$1*#9
MA1AIK/W(\G@JA[VDGQJ(M<35@I-RR_]Z/UO"]2NY5QS-BF#0N'!H^,9L28#D
M"556Z)@9X"73HX]\FY8F S75,+#'(3Y:( T :\4?>%>>AC[.Q\BJBS*8965B
MC!B4R;$J$>4YNO)49!*4\R3YD#1/S-%8V^?82U"3,9>^(%9/-.U8='?B2%NG
MO$G'0C+(,:8![6+)- G<E/]P RGGK'/MNM\'B6HRV/(4FNUT$36@X@[GW\AG
MB>:&%41P@\J;HJ^$CIDOY:B!6A]E"K6;$!].79,1EKY0V)/0&O MRK;*_TO
M_)N?0%<!6 8$1M2T7>!HFNY^X=9/KN:?W<_I6(]X>?T]?O73,_B$6OMUSH!"
M,,@>990D1O),I,^..&$E4:6_<PS @ZT=O'[:'0X;^>G-IVD8)L_]$(VD5SYP
M$$26OGQXG95Q@:BG('H1@#&J=&VS]B2"AVT]UB;$'R7$9B:KG[9EH8T4Z$,2
MKC243%%-2@,_PF1(-G&%3D!MV[A_W/;67:Q1W#Y&B*V,#[R\N)ATK/23*U:^
MG>;9_'PES"NF&NDCS\D2(TQI7Y#4*H,466I &JVRXI7Q>2!IPW8.ZPV)?0BF
M 8_MZBFK# A&1V#$$S.HSB/1P9I53,U273+DM;%2<\YX_5+^.R0,/&&H#S'?
MRQ,_GN=-0*9TL?KBOY=([#@5WY-F:CA!E4I+>$P2!Q2=0BN,"28Q2+6[%F^0
M,'#B[)- YGB>-P"9FT'D5PQZO>+8MA?T:X91C1<T</2,I+%=C0Z:G281P#O=
M28MV:*R=*WL4H0._.3\!_/J77P,@_30^^XIFP^^+5:;;A[#TXVF)A%WY\&]F
M-[T$NJ>"FUXJ+BBNK< #J&-I6\!+!07G1#B3:=8V&EW[VCR!W*$G O4.IMDP
MDAVZ2\X_X.LX3I!IZWRXWZ<HR=MO6XN1<C%'%HLWQ!.16@IB?6+$HT( 1J-!
MG^F@S+&'UQIZS,]3H:P/U@^-I.Z<='M9S7XI V/'J3LAL^F7N9\N5C2]QV]U
M"9B;_?5>XC?'RU'T/*C@./'!E#[U7A%OT0.G@BL5+)-Q,U=L!]PJ$33TG)\G
MQ>000GRFP+U**9$"E3JEN%7%BP,F+'$*CVP,!ATQ$-9RW2=>'Y/?T^,,H.<
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
MY=S^_2J).#L)ZC]9E?DH49Z>6(M6K#1.$0>*E]G!-B>PSJ?GDZS:,;)4;6V
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
MN]GNOHZ8M(J;G-$I31SU+I.E6$L12@T'SRGD()\.;]N)/"S^2___B,$*4FL
MEN]G2UA\]#^Z-QAK@')'60F#E*%YRA"OLB#<"D^]L@JO_=JQ@UOK'P:F9_R:
M<"ROA[:J=J5GKP+3+BBE*/7$!X2]#%P0[SDGT9MD8X2@4CC(I-J[S&'@>'Z/
M )49/#14UH2/3%)",FJ)@M %6-%IX,$1;:GVV;@<-ILI[P#%^@,/$__SBW\?
MS;2A!7W?![C:A574B*APW]$H(F.,)*!*(Y9:EQ33VM##_.Z=2QP&AN<71Z[(
MV$:K]S]?GI_[^8]97HS/IN,\CF6^]/68EXNK,2\IC<M"?G*K-= )M?T55JW2
M_:ORYON?$H> RRRF2)PL_9Z,PCM(,TYHEI3KXM>+VN-0^IL2]VJ\\&=G\Q(U
MZ"K,/\$WF%ZN9D^-DM4^0M0D"5O.5GF9 >E)="XFKE2T4/O9;!\]S<Z+>PPB
M-NW?:@)HP&_Z?!G*<")DYNMOI5T9_MJJ9@CO;T6#)L:"(Y)92ES)99,Y^""I
MS(K5GA>]@Y1A(51/UIO]&RHPODW\K%-MK=%1EMEBH+(A4BI)O%&9T,A HPG
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
M*7*C,^?6V=S.<'F @HD;FDQDL!PJBM[P=GWCYKS^/IS=V/8VC9%LL2BY8ZH
M\X:.5%&*V(L<DM3&^8@B&[T7VH:M/W%+D_&Q-H(8>D/:D_;_SWW?] 3^.9_1
MICU'$6+D-3VC5FBJ#($3NXW404HMR448-B6N%443-R:9V%5K):H.(T]TT%:S
MO-G1NLCHBJSW%U_QRO2D(Z@<;2040%[WZ1(#+\D7B9@30RS98^O:LCW(G&;J
MX3@0/9:T>E.8C^WO)*U?^5?D%EVU.]=.62T*I. =>4"8P95(;I#V,4<II(C[
MA; &$C (:_YE8.UH@GA!VJ^:'V3LDBQN_8O38CC6SJ5@E4'2^,Z RUI#$)@$
M\]E;TWSZT6$D#XNQLI<!U2G$^()0>RI2B*H6R$5TL@[%1;)%@@#A',M,1!=X
MG@B>PW#X0H+]HPIFPK:R#UX%Y/Y_P^7%CP]G87YQ,L^UA/W;58-G7ER.];UU
MG:L5<X"840-9&2ZG:$IRPR)X@Y<<AJ*7%/X?A]N]V76UU<&<_OV/4RF*Y9Q'
MP%15K^,>0E()6+%!9I&D-?MAYGJ)81AY28\!;;C9P47V9D8N,Y[-OF-^2S*9
M?UD7=]]Z^.*G,D4AO<]@4["@R+<&QX6 XHO1/!MO>>MN_T/H&@:K%_*:,)I
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
M33I!,)FCX-;G7%K[YD?:VK1#.8YY''K$RL3C[3:WU/OE9@#]>K:CX%F(]9@
M8SRH&IKS(2"P9*,H1B O@UZYGYER]]#:TUH,70)DT5!:?:"M'N_-#E:;4<(F
M!5L'_];D=E='"9,')XR$PF3007*/D;6#W'T"IINN>;A,[P/D0 9/_>[T>H[+
M+S^V!O15T*H.F=@,D2S>H2_1@66UP"N@!>>TAA2T09]2*'?[W#_R3O3T.I-#
MXE I+L9A:0=&W[W>4_7,H*C[MQZRRQ*4<(*4*ED&4CD;I&$JNM;-=QZB8UKO
MHN<;K)GT.D3@YGP2V0FC)L]>U7.4&>W"F C,HXP\FY*X'!F#4]YG[23\#&3V
M8/?4E]H)?IFMKM3P5JF_>_=JHW^C1W*W ^E?68MD5(@01/)0>#%8N$UNX/3%
MIU;I"Q/[B' Q!C\[T";C:^V?3S6>>R:%KPP)= PQ1_ LE!KD829&680>-,*\
MJT#&]?:F#6:\A-NW5ZQU< SW"9?ZX&1).D"4F9'^2J3)@J=+3GI99Y<4WOPX
MC17R?L%AE3TAUR!<OHO\IS9![CJ!-V:'7E=7OB^O_TXUQ2FLOKXY6_RU.HF+
M[_B9H+OZNCC+IR(D3(9[$+Q6CQ>1ZGM[K8AS7)7BR!L=UF>D 3&_NJMU&*HG
M$7F_$-\<[N<V*UDL0D@#)3A'7HI6X#$(D#Z3\X+*FCBL(\6AE/SJELRHX!Y!
MV/TB>SOL[R,FG'VO!F*]P9[9.9HDG%3 1:*=&TS@7&$06<RE#DI->IC#V92L
M:2?!OW#,CPV#?@_ I]D%_HXDO//9JJ9B$__7Q?RG&)A/D@?(3F90.@9P5FM@
MMKZCT %GS!V(\L?6GG8&_0N'<A.!=IKM>5U>_^GR_#PL?RS*]4\.R/P<\*DM
MLD!W);Y11NC/1:[Q>IT0P@/2#2Y%'9Q<&\LZA, D D;-G159*=VZ[?D3Y!P>
M"=Q\],?PUQ]T>I>S<+;Z$R_>E^N9/<5ZH84KY&=R0SK;6_!<D-MI'-GCHF2K
M6[]S/4_5U &&-OBX'RMK*HT.0ES7._K78OG?;^?KM-75G2U)@P%SDH YD%'@
MM ?'30&?4S")"\_'.U&/DS6ULS\RPAK)HR>(U=K/U5?,=6++W2WQ%&(ANS.I
MP.D>-QP<W>%D0M1&]4X;(_U8$'N<K*E=[I$AUD@>/4&L3A03-F>N/ )?=RE"
MYL!)ER%SY"8XU"*U?]#ZN?[4/NO(H-F5P\TZAK:VNK>UMF%=C1'F^>QG*Y_%
MQ5=<7GRE?[$9+O5G6%8_YSL>9)(?MF0;>[WAMIL9\[?[ !#"7O^]\36OAWMM
M,2RL\L[& D5I0>95P#H=S@/+&;6U6F)H;^P.I^]01?8ID3Z^K.5"VVX(CS=,
M^.W''^'?B^6K,Q+EU3-P<$:PY"RYVK56-Y,!&L@'!IM3]-[;P*UIS)R#")[:
M21@)=W=UY_&$VL55G+$\WN3CYO[666 FV5#;_T+4:.N$#T6>4W)0O&6"*U8D
MMK?\=B)Q6I0>$3SWKOSQ)-D_4']N[L]PCIODM.2EM"62OV54[<K!R.G26D*)
MT8E<6/:J?='7SF1.K59'A,UN$#U8AAW ]/,R9#P/R__>IN8G*9@7@:SX$NDF
M(K,=?#$.O'-%8\DJB];]%._2T#7 #A?ZHJ$$.D#0$RVW[AU&YQU:512XXHE/
MPF@(-<E#D,.OO=+,BM;YZCN0-VW(;[J;>"P)]@W.!P^R(TXQ;A)8SB0HF06$
M0M\*;4J.2JO</+BS(XG3*L?1H#(<D@?+;>K$@LT+]"M<7LS*+*UEMU']UC/)
M@B1=7P2I_FPUN/K.DXW7T1;I"Q.WX?=( L'C:W2+G\/ENFC/Y Y4V(=P47,4
MKBM-A,@\$0=2'?.,M(WH$@/A;<Q<.\=2;JR@;A$P[1UY#/@<SO>I%<R;\'VQ
MK%;!-JM\S:&M=:E5L<IK,B<9^4,8 T13&^YEF:3FT9>[3V&/J)BG5IGV9>MH
M2J89HSM0,]LM_!96#[!MHSEC+,5Y\J5KJ%(YE>@0^ PL9*:\2^;&C/E&RF<
M6=.^B!U3);66T<3M.3X2_5?])[R, DV=J17KW".KZJDI H25-J$QFO,6'6"N
M%YQ6/QW?T]N?VSU 9(-LS;W*00N0IF[<2<)X$+1[X9-!)PL+@Z*C0T R=4N.
M/85U5]Q[<&YB@?]!)^'\\GQ#>$XZF^CJC)L:5Q/,0)15=PI?C"6N<"D:B/S6
MHA,+?1^1+5KP;VK!A[]O$*XC=\9Q#U;%#"K446"R*$A91.WI/ 0WR,UY3O W
M%YW&M6DF^+WYUX'Q>:=^X-WBRF%?*\ LC$A*(&A;3!V_B1!2U!#)G G,5I^]
MM<?[!#G3&IM3OM:VD5"_8-O8Y]&*@+:6FPHZ-"K: LY:LI\Y6=!9,.O\H"OG
M<+CU$.]M)O9A<-I#!E,'6]XMYE_6QV]]Z-Z>?PNS9=W21A&'XK(,!L&8VD8M
MNP0^& E.!B^YSPG#L/K>I]?I$B7[2',Q#FL[4#O/:^P;16Y.%#2969"LCNW*
M9/I';VJ7/&]SEBBC;GWI[4+?M-6&T]V"H\FP WP^OJ=_KK!<GKV;%3QU3%IM
MG( 4Q#JZ5+=C:&,</7<Z<,5;3S 90M?$K<9&0\7@5]$]1=0-[,Z>FMC&3T6J
MFEV9.J,MU2ND=KUA&JQ)6(Q"U+YUX'D(7=,^AAT9=@U%U 'L3LX7RXO9_UD+
MZWVYNZU35YCA&.I8JAI%+Z6V?4\.LI2&L7I5Y-:#MY^F:-J(]=&@UE L4SL&
M-[>R*-NGFX]X1E;R/>Z%>;XQZKL6007I9"J>U+A+'I3)'$(6-2G0"!5K1"<-
M:WQU&!W3QCM&Q]VQ)=6!YOOI1]T_8/<*5$ZEX)R,90'><E+KC/@9 M(.D5Q\
M6;+!YD^^.Q$XK2=R-+TXGM Z0.0_PFS^;K%:O9]OS]YG7)YO!IZ>!E-0ALQ
M1*P=#^KP:CID@%(5LF6U9*+U5?PD08,0-][XY6,AKIU0NFV,<[M6]5YUZC;,
ML+AWXAI6Z>ZQZAB%NH=N?HI:71E01>,8Z;8BR-$UM<:G3I*5.>BDO'3^UZC5
M?>*L7X6T8A0Y.LE!"U-3S53MU!PK)Y0+SG%DKG7=V'#JI@Y-CX2HQZMPFXIK
M:B_FP<U<3\A=OP.ER-%YP8$S(\DI"XF<,N*:CC:PF)V1T@[R5)Y?JY=:V;8B
M7HS'[[[ALWD@TL9JCK6)M8^T(24#^.0<)*4<EYACY,,&+ U9;1H(C2+;X;C9
M@]%3(^>?\W(WN_IZ.YL'0..-D:4D\+(X4%&[ZN9DB$H$LG5%% ,5S_-K=8N:
M?22[&(_-'7B3NQ:(1[KS&3G&D)4IM#WTX+*@;YG.(9:LC1PT"G#B#A%'J$L=
MY=8[AMCZ1^6#I0):..V*E<"54: DYW3P)$(N7FD1DU6N]7CK7[X=Q$ZP:= .
M8A<9=@#3>\T(@M$N&:7!VHB@/))SA"X#!F^LS;2]W-K)?OGM('82^G/M(':1
M0 <(NFXJ6IL]$B5?ZVQM_(YGBV\W<[><\S$0<W+V=:*4+. 5<Z"#5V1NH&*R
M=1[)(,*F[OIZ7*RUE]7> /R.R[B8H".)8)J%X@,DZ0RHH,EP]F3K"HN2\1B4
M,:WU6^N.)$>H4QO5\AM+7!THPUV+0XWB+B:T$->M":1P9)U$"SQI9H*@"R"U
M3C[_9=N/[ 25 ]N/["*WJ0,K3W3&,%P@3U$!$_7=6&M&VY!UW(6*Q@M9HKGC
M"O_B[4=VDNO ]B.[,+D#%7:[#49&,CJ]CA"<Y[6;GH.H$B.USV)4KF1E6Z>#
MO.#V(_O YW"^=P":C1&)^3.FK_/%V>++CX^S+U^OM^.+U2PS!C*6&N8VO!8Y
M9L@IF53(;+7&-H;1,R2]K(XEAP"KI6RFOLN>;L 2)1=6<R!KE P +SW$3/:
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
M30;'DL^9^2*&U<(\TY'BH;5[\:]'$_>B(>\G;VKR;?L^\F6):U?S[I8V;H=
M;DK49!5$8HZ2Y"<$<D!!J!*ER8G\B$&OZ,^V.!E(T'0-3PZ7^6)L 4SMH__/
MQ=?YG__U/\+%:O%M<7FVJ!.M7X?EV<?_>H=_S59OW[[=IJ\654U" T75'F16
MD_>)M?\AFA25Y%D,S/H>NN*4?7)&D?1B;+9/C:4'-U"<3CJ[ D8Q01M "\X*
M3KN@_U-!6NZ&X69OC(PSO6!\C!S,SJGQ< _DVR*8)$36.H-F%<DEUMZIP8'6
M,3,GBV6H]U,E4U813*4Y]F!J!T&?82;?^L(VVEL5-%W86G%0$25$)2PDEKGV
MK 1L'C8<3ETO\<2Q3>B1Y=89(C>'%&.0I?8M<S[S.D>DAF5KKC_J;!CI(E]:
M9RO?IZ)/A_]0>3\!JSV8WQE\ME.-LI=%U'H_P7W-=D)B2$#(&&RP1:./K;M<
MW*>B'_CL(]<G8+('DR=VX7^?+3'1K[<WMLQ92Q- 9TWD6UO(!]61U#"/](<'
MY5KXZ;=7G?:^:@2' YG9F;:XH5:O]"BISBA5 LUKWTS.!<1 O)'6IR!$T26W
M3J1X@IQ>IGU-;.#L+)E^0;8Y>#X75[PID"1SH!3M**"U$+,PDEF58^''@5G'
M=L[N8A\&ISUD,+4W_YZT+6E:$JK\0.R;K5:+Y?H!<Z.!#3JM14K =:J1":'
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
M1J;T(+_RQ?>=&RF<VH+O?<)G8SIKSS330M5>:K[Z5P[H!-&1HI\79W/VZ0@
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
MWE([6!#QDIQ&,B=5P'6(1EH"UR^W=W[O[:NQG:VN>6@0V&F#K$Y@*31;"H7
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
M/"6L;B*HLGMPA(X:C7>^Q*M%/'=$H/-\B1(1SE:R"H4VJV]\CM]S2RX(G^^
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
M4&502!@L2(&(=<00SZ?$M%8,&U9Z?RO.1.7V4$-OB'65?C#J?\2IZXH\E_;
M]&RT;# ZN;'C#Q_?OQ]=CU8J7LR*OI12<Q+ ADVB!A@!*5OC(M)<.Q(L-L'V
MZZ?=YVN5&T<-NG46EW;M$_@10Q_B_(GL'O@"RQEUX1*3E-OV>20-\6 8EB C
MA$*4:QHQ!\_"]#N$]_AHY:91IP)34=D7PU39/E)YIX[_OH&5WN3VM<<,#-NT
M5(G^4;W(+-0[ZOFW[ML#<<&#-IXA+T2>9VDB8$HX1#3SB;@0>2K=$G 3+26\
MLD?K+JMK;%0LFNB0RCW1.(0LR%JGD8M):NP=E<5;1:VCHVZU2!'MK_.'CA)W
M(X[\8Q[@/UL4CH84C2)>(HR=0CP$@4QD 45FF(! 5WE2NL1V RE- >< '>\
MS2$";Q,WJZ)1H:C6#N>Y=3GSAO/[8"4]"E0I&H-,X-0/CYP6JK*+J'HW? Z0
M>WL 6E4$<X?!P1,1Z*?9P<,2F# *&1>,%MX*&TIW<5Q+2'/ .43)VZ%S@,0K
M-ZQ[#_[[U?)&TLZ6IN0,X<IS@AB5( ]+*+(*7'>2I'?"\6@"[8.7'3WK7GZY
M;BUCL5.I@%B; L4C4S'$\,!I'@0M#>RR$,99HSBX=XE*%5B@KCPT:A\])?2Y
M$1H'"K=VWN7KM_CHZ<G'!'__VOT)?_AM-)YWD^7_+OOX_1HG<?EK7[KQS2)'
M^6[B_^MB$I:_]8_;,.U>CR!V&+G%C^&GJWU4QY"<@4-=:$-@'Q4<P=X)UB>5
MC18GQ62_MZXG(;<5=!X*J:YI_3;@7GV.X]RN_).=SF\?I=R7CP)-3#QJB'F=
MHHC3?.13"N*.DJND%3@9I2M<MI!3MS2[>'Q72O#M8NC.%941!Z=!*D*"T4H*
MIBH$080*RHP4CLC2+]VV$E3792^F]GYP.D 'M8_ABQ^P]5[%5^-N-II<??D&
M8OTT'?FXVE^%<I)SFI"G^:TIRP4[7H&DHB0!XF*AG>EU?F[_3I,H.42;W3"B
M;7?;F?UR^_@GRZ;=P #S8E'EQ1 G&C@#;P%)SSTW+& O2K^'[$]=W4<;ISK8
MCE5+8X!;F:*%R,AJ89 W*M=SB0@<F( "5OE6.0DB2N>A7E+1Y%YUM+ZWP.H
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
MG7!WZ>))SGF+,&K?%-R3=O1;TF=+5=/-5FFOU4I#KTLOQN,U>TF9=KF;%VY
M5ULZY^X4R-^=UVO9T-]=V/_NPKY?1FL^'7^-T^O9Q_1U&@!?9;SY+<M6LZ']
M?(3=@JGN*62J2DQN?+I2M??S^_IP:]AO125?1_.CW>LG2U5["'^@4IX(H+)6
M/M^,(\%.D.S5A.[[/(:W8WMUE'HVK5GMD?M^>MHADOKI_"%TMF79:J_:]U/;
M;L$TL0$NZ,J/8.R\Q";X9+EJ+]H/V0C7":*AS?#K]'HR+[L7/EJRVEOVP[?"
MEP)I:R<LI+#-JU9[QG[4/MB<VNX"ANGU:#D4OM!.^'S%>B_7#]D--\BC"5V]
M^>O[:%I25<\6K/<N_1!-K9=&$XIZ?;,DK("*[I>J]\K\$.4\ET 3:OD2_<UT
M-!_%V<75U<4/.QH?_;YAR[KUWHD?HK"MLCF/Z^!/W7CD@8%/T\X/>!W\Y#,#
M7 =O9J/X=?#C3[W 2(%[X?7K'W5ILEH^/%ZZ5.R]>_5&KHZWZNWI34M/>56_
M#%M'YX=NOB*U3+Z__U<:2?\?J><M\AM^1U_](/^/L[/X__X__Q=02P,$%
M  @ X&)R6I6#C=NW&@  T;   !8   !T9VXM,C R-#$R,S%X97@Q.3$N:'1M
M[3UK=]NVDM_W5V"3W=8^1U(M/Q+'R<TYN4ENZ[MMFFU]MF<_[8%(2$),$2Q!
M2M']]3L/@ 0IRJ\XEJHX'QQ))$%@9C#O&;R:%K/D]:NIDO'K?WOU[_V^>&>B
M<J;20D2YDH6*16EU.A%_Q,I>BG[?W?769,M<3Z:%.#PX/!%_F/Q2SR5?+W21
MJ-=^G%<_\/=7/]!+7HU,O'S]*M9SH>._/=''T?/A^,4S>1@]&QT_'\8O#D8'
M!^,#^?PT.HV.HQ?_-WP"C\+M_(PMEHGZVY.93OM3A>\_.SX</#_)BI<+'1?3
ML^'!P7\^H5M?OQJ;M(#WY? \?^1A5@8KU.>B+Q,]2<]H24_X47\Y,HG)SYX>
MT+^7>*4_EC.=+,^^O] S9<4'M1"_F9E,O^]9F=J^5;D>\XU6_TO!G&!Z]'7!
M4WX.XR0Z57X)PT.<]/O/4SW2A1B^& R;,[YJ-=WKB #P*G_XA0P/82$7*C(3
ME8KS-!J(CR;1T5+\IB8RCY&0SE.K8Y6+BUSB]SNM=";S"5# R!2%F9T]@UD%
M:_]4VD*/E_R33F, Q=G)<' *1/+5 7+<B=F+J;;M=7O P+:*<CV"EQ53!1.3
M:0R LL*,10!'L8=7OWMZ=/S2 V43)/K6S#*9+A]F"MVP)!CL"Y.*@@'9$P R
M$4EF4P@F=P% V*/O;M;?6V%55.:ZT# =DS>^C46D\D+J5!AX)!=9.0+T),L^
M#@9,,*(Q\-;%5"=*P(V9L599JV$J^+A)QQII3<L$KHY-/I,%7!L(PG[&V!;P
M$>A8XY Z+8PH%D9D,B_L=T]/3E_2=,<ZMP7]*++<$$^PU9K@O7ZBD<Z!PR+%
M1# M!(+,L@2G"./*)($7Y2HJ3&Y[,,&QAN?@DYIEB5DJ91W<3&K+!,8H" @!
MN.@RT220(7RD">D9K!K>8#,5X4)E'&M<)7ST,\R5+7(=X:^=L]K3^_7,6N_L
MP56XK#X#9@H]5]6\N^Z#&X&:Y$21M%J]8;XO$ N S$Y   $$CP,USG'VTC9
M@AAJC J#P@>3*J$2J\*+WST]/1P^?VG%S\#J$O%.(<!H;-CBP)= EEHQSLV,
M!H4M(?9@SR0P,5AH F-OP>Z>JQP(\R/ !V"P^5T^V!4!\&NJ/(%FN4XCG0&%
M9&7.F\E=&2L0#_![P)82N;#(,H!B/"L0UO0CV$> )P*2=F+%;;\!_2A^AXV:
M+%&<@ ;7$ZV;A(G@%<C*0+I(D1&^0<^#-P+3@B7"+%*3]ID)AMQ,F!'R'H6<
M(3?E9 H7YR:9\R9:Z&+:8"$P[YF\5+ #(FV)(>!*RCR:2JMZ I::)#TQP9TN
M%W*)>Y+8[T);9N/J2@;.8$%N"K?)HC%1N$9#P8UE875S)&3*J@(I<ZH)K,L6
M*Z!"[D4+H>D WRATQGP->(J9P;ICR2.,EF*N\Z($Y"#S7#JX(O2CI.3!@/_Q
MKS"$M09X*&K8;;C!(TP2X8(<H&.D!T*R1Q5C'&=$GVK$.5J I2(T53Z#E^:(
MC#%A$$1(@:+)*2)EBLO^B%S^O"=^5\3!Q9$8J<0L.@"V,&42U^#!!7L^6[%9
M1)(7.$!M1HS*I1.]26(K,K&%B2Y)I,-+1M)JVA/7D2*A'![ X? _3YER!!AO
M@1-8>01<P<R(]=N21)*3 BSP P&/V  I'S5I><JB <@@0AP#^A-&_!0)@J3)
M$H E4C4QH 04I(WDP#0DR\([,C/6Y!N\[/#PV>#9QGC9QS>_78CSK[28VZK]
M&2H@Z:2?J#',]\7@Q+_/C=X?GFX,4,/!YH1Y$S##@QHPP(I-3H1[1CL>GWSR
M^@UNB$B.=**+Y:Y(W8N N[64T'!C,B/LEC(A\T9N#VR'F!4PCBS0<($],!<)
MY!.QIY"!('_0UI8*&1 P%^ G6:[&*D>=RXV:F@)?.@*%VWK]')2R0H\2U9@6
M/+P 'HK_PY( CWHN26,.9L <"MD0L^>FBMQ:)^@"M )@9# )GFB,,BT4F]\
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
M[7%KB8H(OT$;-%IK@[8!_NU:GQ<=Y.B+G-\"OP!U@PJTR%](YA46VZ#%0 ;
M3:AY(,C4!%4Z1]INCPXC_U-&EU@HC<8,W/T3E@JE: &1%8?)U<5U0!J/OR*0
M<'X#-[_OGCX[!J*C+GH#,,\WB3S$S//38?_D\+#_[&#X;(!PCLNP=&:%M3@%
MOD=N;L_B:G=XKYGW_*CG?U4]'YB\9A.>9 ,VV"+Y[#1_DOG ]D.A735M>%3E
MOZHJ[U5OCHC4K3)66GHPED!)X#M)7->WPR?IBN) (*<J4M9B+):4M!G6&)99
MOS#]& M.F0A:[C+LUW8UKK_%DH'#W2@9V/2VVZ)]YRVN%D^L"D9]K[N@:^GZ
M2M'1<J7\])Z*1^\_/V'#-+ ]>;^'SYQ8Y :,KE-B572->/VM3)08'HQ.^D.7
M]Q*V& RP-:P*JZMN6CZP@GI.6'*\9H3C;Z58^'BMF?0_VB2RLI';S:9_!L&T
M*TZ!CRJ5"3$2<J;X=DXI]Y7P+2$H7^J:)A+.<K%87(I:M@%VPE$PRL\M9=(,
M)E" NDQ!RH]+:KI%B1PN1J6K+D0Y*QJVS# P8\EW**G:L/+)BT\2(QO8_:<G
MHIRROA*!K0?P.[P<^X3Z95(?./HMU#!U^JE,76M)\6,5#:/%N+XEG %1.,]6
M-6 O;!KAF&M3"W*:18(=9K"_J<EOU?MM2WT2.U""SB9BM0.^75_(&]^U&)-!
MYL3[*/*WJH^C?J'2B9PX1:3=PB),;@J4%(K<U]UEN2S\ANP$=&W86LZE&Z9-
M5KO>-1#^L]0YWY=A$EO-"7BO+KE4?$X^F(+ 1UU.9J9D$Q/$Y!AKT2?<LJ<N
MJI%S@SWF[R'&>44$8G,]:!O]GF1("M2=V35^KA(# 2G [3 LYR1&30"NHQ(\
MEBF?'F1F+<37@:)K2& @+G @>+>G!1=%<F$'"_9EB[$#&'RJH@VG4N<^8*0>
M9\&]]V.7'E>/0F$I(M?J<6QY'Y.WB"G$]9WGLQ'\XG>5."X<S! %A'ZKU&5C
M&[8%+$&G[MB-)- 3SI=/$1S2:%>XR]RK7*YW/S>]2I;"J1#N&U4[&.K83@*Y
M)E;45G2!2BYI%O5X'"+@](Q6G^U6@]'OGAX_?]D\RJ"I>_A%I2H9N%;@;D)5
M/IU+H)PJ>$^P3\K,OV]")P'E"(;_& I 6>*R8;'KANKD3,Y<NYH[<2X(OFM>
M:Z_DEL%\R:1@]DSYF-P(S0W9J_8%XIC0VT9FU=@L@)&FAI#7PTGX3M\UC'9
M^^F6XNMS_S:H%5VA #G2[WMF^*@*O7Y?N3<#7:BATKL-'@@CE&@:3 "J-6%Q
ML-)<L,[_@KMGVEJT4-#&PM9P _$&-I?Z'"G7!]NQ"GXCQ64SS%@OZ/R)F<^'
MQ,0]D$#%2B_#]?%5LIQ<TI\[[2'V&<6TP?$ %31XN*HLK[BD'!GJ-D=*%N?
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
M?:#J$^,A5DS?M'O9?S]B'MY9^[;K/O_J@V\R95N-MDZ#CR1P.2^0+#.:":D
M]_M,R!1LR_Q3;_17-(%H0YLU)1(HYC.$4QK0=(FT:-J&/J>TX$!K[._U',<:
M5)CEBSVH0U0DR1H"1$L8QG7-5%SB2?JI8)+JHTRNU_Q"O -2UURUVP=A?>L-
M2@O)E$;P;H)8EP*X@=)B^ZB)#MAM6#3FC5$#NCU(M7VW)Q"@C@P\&N@:^7_0
MR=E).C&.-$E)N8$!HA"T#/%KN7<;DD6$261")FFN]]S08I(D@&;H#)(1!1F2
M "7:*KKM: @8LA):=SK4*I**,B*CLEPSOT/:7S_H/.TL][#5SV7/39I33''9
MB>$=D4%<C1;=Q\M+QLX'4!5?B,.LVNY^@74HM98>G*WN("^?=R?ERQ7*]^?Y
M3N033Z /9^J%O7K4P>;'1;KIT+J+/[E&MX!W+L*9R,LNU)<T(=J_>U?CK>%2
M*"72OO7%A"QSD13JOLE/;M.;9W6W/RQ_4_@,4$L! A0#%     @ X&)R6HM'
MF[B! P  S@X  !,              ( !     &IN:&QE='1E<G)E;&]A;BYH
M=&U02P$"% ,4    " #@8G):4J:W#Z.8 @!,8QD $0              @ &R
M P  =&=E;BTR,#(T,3(S,2YH=&U02P$"% ,4    " #@8G):FK-@^J8:  "Q
M20$ $0              @ &$G ( =&=E;BTR,#(T,3(S,2YX<V102P$"% ,4
M    " #@8G):*DRT&? K  #0O@$ %0              @ %9MP( =&=E;BTR
M,#(T,3(S,5]C86PN>&UL4$L! A0#%     @ X&)R6EX#Q*MOE0  O=T& !4
M             ( !?.," '1G96XM,C R-#$R,S%?9&5F+GAM;%!+ 0(4 Q0
M   ( .!B<EK#[/<3^70! -S(#@ 5              "  1YY P!T9V5N+3(P
M,C0Q,C,Q7VQA8BYX;6Q02P$"% ,4    " #@8G):+5R? ^_C  "S>@H %0
M            @ %*[@0 =&=E;BTR,#(T,3(S,5]P<F4N>&UL4$L! A0#%
M  @ X&)R6I6#C=NW&@  T;   !8              ( !;-(% '1G;BTR,#(T
M,3(S,7AE>#$Y,2YH=&U02P$"% ,4    " #@8G):U.0PML4"  !M"   %@
M            @ %7[04 =&=N+3(P,C0Q,C,Q>&5X,C,Q+FAT;5!+ 0(4 Q0
M   ( .!B<EK_B\YS70<  +(D   6              "  5#P!0!T9VXM,C R
M-#$R,S%X97@S,3$N:'1M4$L! A0#%     @ X&)R6M/L$ 7U P  6A   !8
M             ( !X?<% '1G;BTR,#(T,3(S,7AE>#,R,2YH=&U02P4&
/  L "P#; @  "OP%

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>106
<FILENAME>tgen-20241231_htm.xml
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<XML>
<?xml version="1.0" encoding="utf-8"?>
<xbrl
  xml:lang="en-US"
  xmlns="http://www.xbrl.org/2003/instance"
  xmlns:cyd="http://xbrl.sec.gov/cyd/2024"
  xmlns:dei="http://xbrl.sec.gov/dei/2024"
  xmlns:ecd="http://xbrl.sec.gov/ecd/2024"
  xmlns:iso4217="http://www.xbrl.org/2003/iso4217"
  xmlns:link="http://www.xbrl.org/2003/linkbase"
  xmlns:srt="http://fasb.org/srt/2024"
  xmlns:tgen="http://www.tecogen.com/20241231"
  xmlns:us-gaap="http://fasb.org/us-gaap/2024"
  xmlns:utr="http://www.xbrl.org/2009/utr"
  xmlns:xbrldi="http://xbrl.org/2006/xbrldi"
  xmlns:xlink="http://www.w3.org/1999/xlink"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <link:schemaRef xlink:href="tgen-20241231.xsd" xlink:type="simple"/>
    <context id="c-1">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-2">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
        </entity>
        <period>
            <instant>2024-06-30</instant>
        </period>
    </context>
    <context id="c-3">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
        </entity>
        <period>
            <instant>2025-03-18</instant>
        </period>
    </context>
    <context id="c-4">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
        </entity>
        <period>
            <startDate>2024-10-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-5">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-6">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-7">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-8">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-9">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ServiceMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-10">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ServiceMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-11">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:EnergyServiceMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-12">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:EnergyServiceMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-13">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-14">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-15">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-16">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-17">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:NoncontrollingInterestMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-18">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-19">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:NoncontrollingInterestMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-20">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-21">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-22">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-23">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-24">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-25">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:NoncontrollingInterestMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-26">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-27">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-28">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:NoncontrollingInterestMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-29">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-30">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-31">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-32">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-33">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:NoncontrollingInterestMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-34">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">tgen:OneCustomerMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:AccountsReceivableMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-35">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">tgen:OneCustomerMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:AccountsReceivableMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-36">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-37">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-38">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:GeneralAndAdministrativeExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-39">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:GeneralAndAdministrativeExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-40">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tgen:CogenerationMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tgen:ProductsSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-41">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tgen:CogenerationMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tgen:ProductsSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-42">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tgen:ChillerMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tgen:ProductsSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-43">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tgen:ChillerMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tgen:ProductsSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-44">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tgen:EngineeredAccessoriesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tgen:ProductsSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-45">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tgen:EngineeredAccessoriesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tgen:ProductsSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-46">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tgen:ProductsSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-47">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tgen:ProductsSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-48">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tgen:InstallationServicesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tgen:ServicesSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-49">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tgen:InstallationServicesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tgen:ServicesSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-50">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tgen:EnergyProductionMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tgen:ServicesSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-51">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tgen:EnergyProductionMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tgen:ServicesSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-52">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tgen:ServicesSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-53">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tgen:ServicesSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-54">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:typedMember dimension="us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis">
                    <us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain>2025-01-01</us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain>
                </xbrldi:typedMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-55">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:typedMember dimension="us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis">
                    <us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain>2026-01-01</us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain>
                </xbrldi:typedMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-56">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-57">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-58">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">tgen:AmericanDgEnergyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2017-05-18</startDate>
            <endDate>2017-05-18</endDate>
        </period>
    </context>
    <context id="c-59">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">tgen:AmericanDgEnergyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2017-05-18</instant>
        </period>
    </context>
    <context id="c-60">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AssetAcquisitionAxis">tgen:AegisEnergyServicesLLCMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-04-01</instant>
        </period>
    </context>
    <context id="c-61">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AssetAcquisitionAxis">tgen:AegisEnergyServicesLLCMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-04-01</startDate>
            <endDate>2023-04-01</endDate>
        </period>
    </context>
    <context id="c-62">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AssetAcquisitionAxis">tgen:AegisEnergyServicesLLCMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-02-01</instant>
        </period>
    </context>
    <context id="c-63">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AssetAcquisitionAxis">tgen:AegisEnergyServicesLLCMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-05-01</instant>
        </period>
    </context>
    <context id="c-64">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AssetAcquisitionAxis">tgen:AegisEnergyServicesLLCMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2024-02-01</endDate>
        </period>
    </context>
    <context id="c-65">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AssetAcquisitionAxis">tgen:AegisEnergyServicesLLCMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-05-01</startDate>
            <endDate>2024-05-01</endDate>
        </period>
    </context>
    <context id="c-66">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AssetAcquisitionAxis">tgen:AegisEnergyServicesLLCMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-04-01</startDate>
            <endDate>2024-05-01</endDate>
        </period>
    </context>
    <context id="c-67">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AssetAcquisitionAxis">tgen:AegisEnergyServicesLLCMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-68">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AssetAcquisitionAxis">tgen:AegisEnergyServicesLLCMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-69">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AssetAcquisitionAxis">tgen:AegisEnergyServicesLLCMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:MeasurementInputTypeAxis">us-gaap:MeasurementInputDiscountRateMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-04-01</startDate>
            <endDate>2023-04-01</endDate>
        </period>
    </context>
    <context id="c-70">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AssetAcquisitionAxis">tgen:AegisEnergyServicesLLCMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-04-01</instant>
        </period>
    </context>
    <context id="c-71">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AssetAcquisitionAxis">tgen:AegisEnergyServicesLLCMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-04-01</instant>
        </period>
    </context>
    <context id="c-72">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AssetAcquisitionAxis">tgen:AegisEnergyServicesLLCMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-73">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-03-31</endDate>
        </period>
    </context>
    <context id="c-74">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:PatentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-75">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:PatentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-76">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">tgen:ProductCertificationMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-77">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">tgen:ProductCertificationMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-78">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:PatentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-79">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:PatentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-80">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:DevelopedTechnologyRightsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-81">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:DevelopedTechnologyRightsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-82">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IndefiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TrademarksMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-83">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IndefiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TrademarksMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-84">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IndefiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:InProcessResearchAndDevelopmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-85">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IndefiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:InProcessResearchAndDevelopmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-86">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">tgen:FavorableContractAssetMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-87">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">tgen:FavorableContractAssetMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-88">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerContractsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-89">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerContractsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-90">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="tgen:FiniteLivedIntangibleLiabilityAxis">tgen:UnfavorableContractLiabilityMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-91">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="tgen:FiniteLivedIntangibleLiabilityAxis">tgen:UnfavorableContractLiabilityMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-92">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:ContractBasedIntangibleAssetsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-93">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:ContractBasedIntangibleAssetsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-94">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">tgen:NonContractRelatedIntangibleAssetsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-95">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:ContractBasedIntangibleAssetsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-96">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:EnergyEquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-97">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:EnergyEquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-98">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:EnergyEquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-99">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:EnergyEquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-100">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:MachineryAndEquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-101">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:MachineryAndEquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-102">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:MachineryAndEquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-103">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:MachineryAndEquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-104">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:FurnitureAndFixturesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-105">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:FurnitureAndFixturesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-106">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:ComputerSoftwareIntangibleAssetMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-107">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:ComputerSoftwareIntangibleAssetMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-108">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:ComputerSoftwareIntangibleAssetMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-109">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:ComputerSoftwareIntangibleAssetMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-110">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:LeaseholdImprovementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-111">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:LeaseholdImprovementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-112">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RestatementAxis">srt:RestatementAdjustmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-113">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tgen:ProductsSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-114">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tgen:ServicesSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-115">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tgen:EnergyProductionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-116">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tgen:EnergyProductionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-117">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tgen:ProductsSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-118">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tgen:ServicesSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-119">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tgen:EnergyProductionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-120">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tgen:EnergyProductionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-121">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tgen:ProductsSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-122">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tgen:ServicesSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-123">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tgen:EnergyProductionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-124">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">tgen:JohnN.HatsopoulosAndEarlR.LewisIIIMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">us-gaap:RelatedPartyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-10-09</instant>
        </period>
    </context>
    <context id="c-125">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">tgen:EarlR.LewisIIIMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">us-gaap:RelatedPartyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-10-09</instant>
        </period>
    </context>
    <context id="c-126">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">tgen:EarlR.LewisIIIMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">us-gaap:RelatedPartyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-10-10</instant>
        </period>
    </context>
    <context id="c-127">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionAxis">tgen:October2023PromissoryNoteMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">srt:DirectorMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-10-10</startDate>
            <endDate>2023-10-10</endDate>
        </period>
    </context>
    <context id="c-128">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionAxis">tgen:July2024PromissoryNoteMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">srt:DirectorMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-07-23</instant>
        </period>
    </context>
    <context id="c-129">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionAxis">tgen:July2024PromissoryNoteMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">srt:DirectorMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-07-23</startDate>
            <endDate>2024-07-23</endDate>
        </period>
    </context>
    <context id="c-130">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionAxis">tgen:July2024PromissoryNoteMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">us-gaap:RelatedPartyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-07-23</startDate>
            <endDate>2024-07-23</endDate>
        </period>
    </context>
    <context id="c-131">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionAxis">tgen:October2023PromissoryNoteMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">srt:DirectorMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-03-21</startDate>
            <endDate>2024-03-21</endDate>
        </period>
    </context>
    <context id="c-132">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionAxis">tgen:September2024PromissoryNoteMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">srt:DirectorMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-09-18</instant>
        </period>
    </context>
    <context id="c-133">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionAxis">tgen:September2024PromissoryNoteMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">srt:DirectorMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-09-18</startDate>
            <endDate>2024-09-18</endDate>
        </period>
    </context>
    <context id="c-134">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionAxis">tgen:AverageClosingSharePriceMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">srt:DirectorMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:SubsequentEventTypeAxis">us-gaap:SubsequentEventMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-01-14</startDate>
            <endDate>2025-01-14</endDate>
        </period>
    </context>
    <context id="c-135">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionAxis">tgen:AverageClosingSharePriceMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">srt:DirectorMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:SubsequentEventTypeAxis">us-gaap:SubsequentEventMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-02-18</startDate>
            <endDate>2025-02-18</endDate>
        </period>
    </context>
    <context id="c-136">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">tgen:JohnN.HatsopoulosMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">srt:DirectorMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-137">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">tgen:EarlR.LewisIIIMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">srt:DirectorMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-138">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">tgen:OfficeSpaceAndWarehouseFacilitiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-139">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">tgen:OfficeSpaceAndWarehouseFacilitiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-140">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:LitigationCaseAxis">tgen:TheCorporationOfTheTownOfMiltonMiltonEnergyGenerationSolutionsInc.AndMiltonHydroDistributionIncMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-11-23</startDate>
            <endDate>2022-11-23</endDate>
        </period>
    </context>
    <context id="c-141">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:LitigationCaseAxis">tgen:TheCorporationOfTheTownOfMiltonMiltonEnergyGenerationSolutionsInc.AndMiltonHydroDistributionIncMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-142">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:LitigationCaseAxis">tgen:TheCorporationOfTheTownOfMiltonMiltonEnergyGenerationSolutionsInc.AndMiltonHydroDistributionIncMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:SubsequentEventTypeAxis">us-gaap:SubsequentEventMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-01-13</startDate>
            <endDate>2025-01-13</endDate>
        </period>
    </context>
    <context id="c-143">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:LitigationCaseAxis">tgen:TheCorporationOfTheTownOfMiltonMiltonEnergyGenerationSolutionsInc.AndMiltonHydroDistributionIncMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:SubsequentEventTypeAxis">us-gaap:SubsequentEventMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-02-07</startDate>
            <endDate>2025-02-07</endDate>
        </period>
    </context>
    <context id="c-144">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
        </entity>
        <period>
            <startDate>2020-07-09</startDate>
            <endDate>2020-07-09</endDate>
        </period>
    </context>
    <context id="c-145">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
        </entity>
        <period>
            <instant>2023-03-31</instant>
        </period>
    </context>
    <context id="c-146">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-01-01</endDate>
        </period>
    </context>
    <context id="c-147">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-01-01</endDate>
        </period>
    </context>
    <context id="c-148">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-01-01</endDate>
        </period>
    </context>
    <context id="c-149">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
        </entity>
        <period>
            <instant>2024-01-01</instant>
        </period>
    </context>
    <context id="c-150">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
        </entity>
        <period>
            <instant>2024-02-01</instant>
        </period>
    </context>
    <context id="c-151">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2024-02-01</endDate>
        </period>
    </context>
    <context id="c-152">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
        </entity>
        <period>
            <instant>2024-06-17</instant>
        </period>
    </context>
    <context id="c-153">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:SubsequentEventTypeAxis">us-gaap:SubsequentEventMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-01-15</instant>
        </period>
    </context>
    <context id="c-154">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:SubsequentEventTypeAxis">us-gaap:SubsequentEventMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-01-15</startDate>
            <endDate>2025-01-15</endDate>
        </period>
    </context>
    <context id="c-155">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:VehiclesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-156">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:VehiclesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-157">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">tgen:BoilerMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-158">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">tgen:BoilerMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-159">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
        </entity>
        <period>
            <instant>2013-02-13</instant>
        </period>
    </context>
    <context id="c-160">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">srt:ParentCompanyMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tgen:AmendnedStockOptionAndIncentivePlan2006Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-161">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">srt:ParentCompanyMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tgen:AmendnedStockOptionAndIncentivePlan2006Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-162">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">srt:ParentCompanyMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tgen:AmendnedStockOptionAndIncentivePlan2006Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-163">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">srt:ParentCompanyMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tgen:AmendnedStockOptionAndIncentivePlan2006Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-164">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">srt:ParentCompanyMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tgen:A2022StockIncentivePlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-03-01</instant>
        </period>
    </context>
    <context id="c-165">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">srt:ParentCompanyMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tgen:A2022StockIncentivePlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-03-01</startDate>
            <endDate>2022-03-01</endDate>
        </period>
    </context>
    <context id="c-166">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">srt:ParentCompanyMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:TitleOfIndividualAxis">srt:DirectorMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-167">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">srt:ParentCompanyMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:TitleOfIndividualAxis">srt:DirectorMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-168">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">srt:ParentCompanyMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:TitleOfIndividualAxis">srt:DirectorMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-169">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">srt:ParentCompanyMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:TitleOfIndividualAxis">srt:DirectorMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-170">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">srt:ParentCompanyMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tgen:A2022StockIncentivePlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-171">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">srt:ParentCompanyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-172">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">srt:ParentCompanyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-173">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">srt:ParentCompanyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-174">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">srt:ParentCompanyMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-175">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">srt:ParentCompanyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-176">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">srt:ParentCompanyMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-177">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementBasisAxis">us-gaap:EstimateOfFairValueFairValueDisclosureMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="dei:LegalEntityAxis">tgen:EurositePowerIncMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-178">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel1Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="dei:LegalEntityAxis">tgen:EurositePowerIncMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-179">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="dei:LegalEntityAxis">tgen:EurositePowerIncMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-180">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel3Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="dei:LegalEntityAxis">tgen:EurositePowerIncMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-181">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="dei:LegalEntityAxis">tgen:EurositePowerIncMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-182">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementBasisAxis">us-gaap:EstimateOfFairValueFairValueDisclosureMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-183">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel1Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-184">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-185">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel3Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-186">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-187">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementBasisAxis">us-gaap:EstimateOfFairValueFairValueDisclosureMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="dei:LegalEntityAxis">tgen:EurositePowerIncMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-188">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel1Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="dei:LegalEntityAxis">tgen:EurositePowerIncMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-189">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="dei:LegalEntityAxis">tgen:EurositePowerIncMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-190">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel3Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="dei:LegalEntityAxis">tgen:EurositePowerIncMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-191">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="dei:LegalEntityAxis">tgen:EurositePowerIncMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-192">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementBasisAxis">us-gaap:EstimateOfFairValueFairValueDisclosureMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-193">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel1Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-194">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-195">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel3Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-196">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-197">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementBasisAxis">us-gaap:EstimateOfFairValueFairValueDisclosureMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-198">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-199">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByLiabilityClassAxis">tgen:ContingentConsiderationCurrentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-200">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByLiabilityClassAxis">tgen:ContingentConsiderationNoncurrentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-201">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-202">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByLiabilityClassAxis">tgen:ContingentConsiderationCurrentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-203">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByLiabilityClassAxis">tgen:ContingentConsiderationNoncurrentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-204">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-205">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-206">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
        </entity>
        <period>
            <startDate>2023-07-01</startDate>
            <endDate>2023-07-01</endDate>
        </period>
    </context>
    <context id="c-207">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tgen:ProductsSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-208">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tgen:ServicesAndOtherSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-209">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tgen:EnergyProductionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-210">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">us-gaap:CorporateAndOtherMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-211">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-212">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tgen:ServicesAndOtherSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-213">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">us-gaap:CorporateAndOtherMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-214">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tgen:ServicesAndOtherSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-215">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">us-gaap:CorporateAndOtherMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-216">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tgen:ProductsSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-217">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tgen:ServicesAndOtherSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-218">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tgen:EnergyProductionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-219">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">us-gaap:CorporateAndOtherMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-220">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-221">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tgen:ServicesAndOtherSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-222">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">us-gaap:CorporateAndOtherMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-223">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tgen:ServicesAndOtherSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-224">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">us-gaap:CorporateAndOtherMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-225">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">tgen:BenefitforIncomeTaxesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-226">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">tgen:BenefitforIncomeTaxesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-227">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:InternalRevenueServiceIRSMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-228">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:StateAndLocalJurisdictionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-229">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:OwnershipAxis">tgen:AmericanDgEnergyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2017-01-01</startDate>
            <endDate>2017-12-31</endDate>
        </period>
    </context>
    <context id="c-230">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:OwnershipAxis">tgen:AmericanDgEnergyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:SubsequentEventTypeAxis">us-gaap:SubsequentEventMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-01-01</startDate>
            <endDate>2025-03-31</endDate>
        </period>
    </context>
    <context id="c-232">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001537435</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:SubsequentEventTypeAxis">us-gaap:SubsequentEventMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-02-28</startDate>
            <endDate>2025-02-28</endDate>
        </period>
    </context>
    <unit id="usd">
        <measure>iso4217:USD</measure>
    </unit>
    <unit id="shares">
        <measure>shares</measure>
    </unit>
    <unit id="usdPerShare">
        <divide>
            <unitNumerator>
                <measure>iso4217:USD</measure>
            </unitNumerator>
            <unitDenominator>
                <measure>shares</measure>
            </unitDenominator>
        </divide>
    </unit>
    <unit id="segment">
        <measure>tgen:segment</measure>
    </unit>
    <unit id="number">
        <measure>pure</measure>
    </unit>
    <unit id="cogenerationsystem">
        <measure>tgen:cogenerationSystem</measure>
    </unit>
    <unit id="vehicle">
        <measure>tgen:vehicle</measure>
    </unit>
    <unit id="employee">
        <measure>tgen:employee</measure>
    </unit>
    <unit id="maintenancecontract">
        <measure>tgen:maintenanceContract</measure>
    </unit>
    <unit id="cogenerationunit">
        <measure>tgen:cogenerationUnit</measure>
    </unit>
    <unit id="cad">
        <measure>iso4217:CAD</measure>
    </unit>
    <unit id="leaseagreement">
        <measure>tgen:leaseAgreement</measure>
    </unit>
    <unit id="building">
        <measure>tgen:building</measure>
    </unit>
    <unit id="sqft">
        <measure>utr:sqft</measure>
    </unit>
    <unit id="option">
        <measure>tgen:option</measure>
    </unit>
    <unit id="company">
        <measure>tgen:company</measure>
    </unit>
    <dei:EntityCentralIndexKey contextRef="c-1" id="f-30">0001537435</dei:EntityCentralIndexKey>
    <dei:DocumentFiscalYearFocus contextRef="c-1" id="f-31">2024</dei:DocumentFiscalYearFocus>
    <dei:DocumentFiscalPeriodFocus contextRef="c-1" id="f-32">FY</dei:DocumentFiscalPeriodFocus>
    <dei:AmendmentFlag contextRef="c-1" id="f-33">false</dei:AmendmentFlag>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife contextRef="c-36" id="f-343">P3Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1 contextRef="c-54" id="f-397">P1Y</us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1>
    <us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1 contextRef="c-55" id="f-398">P2Y</us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife contextRef="c-92" id="f-585">P1Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1 contextRef="c-166" id="f-831">P4Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1 contextRef="c-168" id="f-838">P2Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1>
    <dei:DocumentType contextRef="c-1" id="f-1">10-K</dei:DocumentType>
    <dei:DocumentAnnualReport contextRef="c-1" id="f-2">true</dei:DocumentAnnualReport>
    <dei:DocumentPeriodEndDate contextRef="c-1" id="f-4">2024-12-31</dei:DocumentPeriodEndDate>
    <dei:CurrentFiscalYearEndDate contextRef="c-1" id="f-3">--12-31</dei:CurrentFiscalYearEndDate>
    <dei:DocumentTransitionReport contextRef="c-1" id="f-5">false</dei:DocumentTransitionReport>
    <dei:EntityFileNumber contextRef="c-1" id="f-6">001-36103</dei:EntityFileNumber>
    <dei:EntityRegistrantName contextRef="c-1" id="f-7">TECOGEN INC.</dei:EntityRegistrantName>
    <dei:EntityIncorporationStateCountryCode contextRef="c-1" id="f-8">DE</dei:EntityIncorporationStateCountryCode>
    <dei:EntityTaxIdentificationNumber contextRef="c-1" id="f-9">04-3536131</dei:EntityTaxIdentificationNumber>
    <dei:EntityAddressAddressLine1 contextRef="c-1" id="f-10">76 Treble Cove Road, Bldg. 1</dei:EntityAddressAddressLine1>
    <dei:EntityAddressCityOrTown contextRef="c-1" id="f-11">North Billerica</dei:EntityAddressCityOrTown>
    <dei:EntityAddressStateOrProvince contextRef="c-1" id="f-12">MA</dei:EntityAddressStateOrProvince>
    <dei:EntityAddressPostalZipCode contextRef="c-1" id="f-13">01862</dei:EntityAddressPostalZipCode>
    <dei:CityAreaCode contextRef="c-1" id="f-14">781</dei:CityAreaCode>
    <dei:LocalPhoneNumber contextRef="c-1" id="f-15">466-6400</dei:LocalPhoneNumber>
    <dei:Security12gTitle contextRef="c-1" id="f-16">Common Stock, $.001 par value per share</dei:Security12gTitle>
    <dei:EntityWellKnownSeasonedIssuer contextRef="c-1" id="f-17">No</dei:EntityWellKnownSeasonedIssuer>
    <dei:EntityVoluntaryFilers contextRef="c-1" id="f-18">No</dei:EntityVoluntaryFilers>
    <dei:EntityCurrentReportingStatus contextRef="c-1" id="f-19">Yes</dei:EntityCurrentReportingStatus>
    <dei:EntityInteractiveDataCurrent contextRef="c-1" id="f-20">Yes</dei:EntityInteractiveDataCurrent>
    <dei:EntityFilerCategory contextRef="c-1" id="f-21">Non-accelerated Filer</dei:EntityFilerCategory>
    <dei:EntitySmallBusiness contextRef="c-1" id="f-22">true</dei:EntitySmallBusiness>
    <dei:EntityEmergingGrowthCompany contextRef="c-1" id="f-23">false</dei:EntityEmergingGrowthCompany>
    <dei:IcfrAuditorAttestationFlag contextRef="c-1" id="f-24">false</dei:IcfrAuditorAttestationFlag>
    <dei:DocumentFinStmtErrorCorrectionFlag contextRef="c-1" id="f-25">false</dei:DocumentFinStmtErrorCorrectionFlag>
    <dei:EntityShellCompany contextRef="c-1" id="f-26">false</dei:EntityShellCompany>
    <dei:EntityPublicFloat contextRef="c-2" decimals="0" id="f-27" unitRef="usd">13555089</dei:EntityPublicFloat>
    <dei:EntityCommonStockSharesOutstanding contextRef="c-3" decimals="INF" id="f-28" unitRef="shares">24985261</dei:EntityCommonStockSharesOutstanding>
    <dei:DocumentsIncorporatedByReferenceTextBlock contextRef="c-1" id="f-29">&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%"&gt;Certain information required for Part III of this Annual Report on Form 10-K is incorporated by reference to Tecogen Inc.'s definitive proxy statement for its 2024 Annual Meeting of Stockholders to be filed with the Securities and Exchange Commission pursuant to Regulation 14A under the Securities Exchange Act of 1934, as amended, within 120 days following its fiscal year ended December&#160;31, 2024.&lt;/span&gt;&lt;/div&gt;</dei:DocumentsIncorporatedByReferenceTextBlock>
    <cyd:CybersecurityRiskManagementProcessesForAssessingIdentifyingAndManagingThreatsTextBlock contextRef="c-1" id="f-34">&lt;div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Our business is dependent upon our information technology (&#x201c;IT&#x201d;) systems, devices and networks to collect, process and store the data necessary to conduct our business and record and report our business and financial information. We recognize the importance of developing, implementing, and maintaining effective cybersecurity measures to safeguard our IT systems and protect the confidentiality, integrity, and availability of our confidential and personal data, including with respect to our customers, suppliers, and employees, as well as our intellectual property. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We maintain a cybersecurity risk management program to identify, assess, manage, mitigate, and respond to cybersecurity threats.&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%"&gt; &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Our cybersecurity risk management program incorporates various mechanisms to detect and monitor unusual network activity, as well as containment and incident response tools. We monitor issues that are internally discovered or externally reported that may affect our business and have processes to assess those issues for potential cybersecurity impact or risk. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We have integrated our cybersecurity risk management program into our broader enterprise risk management program. This integration is designed to make cybersecurity considerations an integral part of our decision-making processes at every level and we believe that this integration allows cybersecurity risks to be evaluated and addressed in alignment with our business objectives and operational needs. While we work to maintain our information security program and risk management efforts, there can be no assurance that such actions will be sufficient to prevent cybersecurity incidents or mitigate all potential risks to our systems, networks, and data or those of our third-party providers.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We rely on suppliers that are also exposed to ransomware and other malicious attacks that can disrupt business operations. Although we take steps to secure confidential information that is provided to or accessible by third parties, such measures may not always be effective and losses or unauthorized access to, or releases of, confidential information occur. Such incidents and other malicious attacks could materially adversely affect our business, reputation, results of operations and financial condition.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We have experienced malicious attacks and other attempts to gain unauthorized access to our systems, including a ransomware attack on our computer network which occurred on April 28, 2023. Following remediation, our network returned to full operation on May 1, 2023. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We have engaged a third-party consultant in connection with our risk management and assessment processes.&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%"&gt;  &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Our consultant assists us in the design and implementation of our cybersecurity policies and procedures, as well as the monitoring and testing of our safeguards. In the event of a cybersecurity incident, our incident response plan outlines the steps to be followed from incident detection to mitigation, recovery and notification, and involves notifying senior management, our legal department, and the board of directors and/or our audit committee, if appropriate, and mitigation and remediation steps by our third-party consultant.&lt;/span&gt;&lt;/div&gt;</cyd:CybersecurityRiskManagementProcessesForAssessingIdentifyingAndManagingThreatsTextBlock>
    <cyd:CybersecurityRiskManagementProcessesIntegratedFlag contextRef="c-1" id="f-35">true</cyd:CybersecurityRiskManagementProcessesIntegratedFlag>
    <cyd:CybersecurityRiskMateriallyAffectedOrReasonablyLikelyToMateriallyAffectRegistrantFlag contextRef="c-1" id="f-36">false</cyd:CybersecurityRiskMateriallyAffectedOrReasonablyLikelyToMateriallyAffectRegistrantFlag>
    <cyd:CybersecurityRiskThirdPartyOversightAndIdentificationProcessesFlag contextRef="c-1" id="f-37">true</cyd:CybersecurityRiskThirdPartyOversightAndIdentificationProcessesFlag>
    <cyd:CybersecurityRiskManagementThirdPartyEngagedFlag contextRef="c-1" id="f-38">true</cyd:CybersecurityRiskManagementThirdPartyEngagedFlag>
    <cyd:CybersecurityRiskBoardOfDirectorsOversightTextBlock contextRef="c-1" id="f-39">Our board of directors has overall responsibility for informed oversight of our risk management process, including risks from cybersecurity threats.</cyd:CybersecurityRiskBoardOfDirectorsOversightTextBlock>
    <cyd:CybersecurityRiskRoleOfManagementTextBlock contextRef="c-1" id="f-40">Our executive officers are responsible for the day-to-day management of the material risks we face. Our board of directors has delegated to our audit committee its cybersecurity risk oversight processes, including oversight and mitigation of risks from cybersecurity threats.&lt;div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Our audit committee receives periodic reports from management regarding our cybersecurity risks and is notified of any significant cybersecurity threat or incident.&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%"&gt;  &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The audit committee reports to the board of directors regarding its activities, including with respect to cybersecurity matters and the occurrence of any material cybersecurity incident, if appropriate.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We have engaged a third-party consultant to manage risks associated with network protection and workstation management. Our consultant performs an annual assessment of our cybersecurity risk policies and procedures.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Our cybersecurity risk management and strategy processes are jointly led by our  embedded software engineer and Chief Executive Officer, in conjunction with a third-party consultant we have engaged to assist with cybersecurity risks assessment and monitoring. Our embedded software engineer is informed about and monitors the prevention, mitigation, detection, and remediation of cybersecurity incidents through their management of the cybersecurity risk management and strategy processes described above, including our incident response plan. Together with the General Counsel, Chief Executive Officer and outside consultant that comprise our cybersecurity management team, we collectively possess significant experience in evaluating, managing, and mitigating security and other risks, including cybersecurity risks.&lt;/span&gt;&lt;/div&gt;</cyd:CybersecurityRiskRoleOfManagementTextBlock>
    <cyd:CybersecurityRiskBoardCommitteeOrSubcommitteeResponsibleForOversightTextBlock contextRef="c-1" id="f-41">Our board of directors has delegated to our audit committee its cybersecurity risk oversight processes, including oversight and mitigation of risks from cybersecurity threats.</cyd:CybersecurityRiskBoardCommitteeOrSubcommitteeResponsibleForOversightTextBlock>
    <cyd:CybersecurityRiskProcessForInformingBoardCommitteeOrSubcommitteeResponsibleForOversightTextBlock contextRef="c-1" id="f-42">&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Our audit committee receives periodic reports from management regarding our cybersecurity risks and is notified of any significant cybersecurity threat or incident.&lt;/span&gt;</cyd:CybersecurityRiskProcessForInformingBoardCommitteeOrSubcommitteeResponsibleForOversightTextBlock>
    <cyd:CybersecurityRiskManagementPositionsOrCommitteesResponsibleReportToBoardFlag contextRef="c-1" id="f-43">true</cyd:CybersecurityRiskManagementPositionsOrCommitteesResponsibleReportToBoardFlag>
    <cyd:CybersecurityRiskManagementProcessesIntegratedTextBlock contextRef="c-1" id="f-45">&lt;div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Our cybersecurity risk management and strategy processes are jointly led by our  embedded software engineer and Chief Executive Officer, in conjunction with a third-party consultant we have engaged to assist with cybersecurity risks assessment and monitoring. Our embedded software engineer is informed about and monitors the prevention, mitigation, detection, and remediation of cybersecurity incidents through their management of the cybersecurity risk management and strategy processes described above, including our incident response plan. Together with the General Counsel, Chief Executive Officer and outside consultant that comprise our cybersecurity management team, we collectively possess significant experience in evaluating, managing, and mitigating security and other risks, including cybersecurity risks.&lt;/span&gt;&lt;/div&gt;</cyd:CybersecurityRiskManagementProcessesIntegratedTextBlock>
    <cyd:CybersecurityRiskManagementPositionsOrCommitteesResponsibleTextBlock contextRef="c-1" id="f-44">Our cybersecurity risk management and strategy processes are jointly led by our  embedded software engineer and Chief Executive Officer, in conjunction with a third-party consultant we have engaged to assist with cybersecurity risks assessment and monitoring.</cyd:CybersecurityRiskManagementPositionsOrCommitteesResponsibleTextBlock>
    <cyd:CybersecurityRiskManagementPositionsOrCommitteesResponsibleFlag contextRef="c-1" id="f-46">true</cyd:CybersecurityRiskManagementPositionsOrCommitteesResponsibleFlag>
    <cyd:CybersecurityRiskProcessForInformingManagementOrCommitteesResponsibleTextBlock contextRef="c-1" id="f-47">Our embedded software engineer is informed about and monitors the prevention, mitigation, detection, and remediation of cybersecurity incidents through their management of the cybersecurity risk management and strategy processes described above, including our incident response plan. Together with the General Counsel, Chief Executive Officer and outside consultant that comprise our cybersecurity management team, we collectively possess significant experience in evaluating, managing, and mitigating security and other risks, including cybersecurity risks.</cyd:CybersecurityRiskProcessForInformingManagementOrCommitteesResponsibleTextBlock>
    <cyd:CybersecurityRiskManagementExpertiseOfManagementResponsibleTextBlock contextRef="c-1" id="f-48">Together with the General Counsel, Chief Executive Officer and outside consultant that comprise our cybersecurity management team, we collectively possess significant experience in evaluating, managing, and mitigating security and other risks, including cybersecurity risks.</cyd:CybersecurityRiskManagementExpertiseOfManagementResponsibleTextBlock>
    <ecd:NonRule10b51ArrTrmntdFlag contextRef="c-4" id="f-49">false</ecd:NonRule10b51ArrTrmntdFlag>
    <ecd:Rule10b51ArrTrmntdFlag contextRef="c-4" id="f-50">false</ecd:Rule10b51ArrTrmntdFlag>
    <ecd:NonRule10b51ArrAdoptedFlag contextRef="c-4" id="f-51">false</ecd:NonRule10b51ArrAdoptedFlag>
    <ecd:Rule10b51ArrAdoptedFlag contextRef="c-4" id="f-52">false</ecd:Rule10b51ArrAdoptedFlag>
    <ecd:InsiderTrdPoliciesProcAdoptedFlag contextRef="c-1" id="f-53">true</ecd:InsiderTrdPoliciesProcAdoptedFlag>
    <dei:AuditorName contextRef="c-1" id="f-54">WOLF &amp; COMPANY, P.C.</dei:AuditorName>
    <dei:AuditorFirmId contextRef="c-1" id="f-55">392</dei:AuditorFirmId>
    <dei:AuditorLocation contextRef="c-1" id="f-56">Boston, Massachusetts</dei:AuditorLocation>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue contextRef="c-5" decimals="0" id="f-57" unitRef="usd">5405233</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue contextRef="c-5" decimals="0" id="f-58" unitRef="usd">5405233</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue contextRef="c-6" decimals="0" id="f-59" unitRef="usd">1351270</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:AccountsReceivableNetCurrent contextRef="c-5" decimals="0" id="f-60" unitRef="usd">6026545</us-gaap:AccountsReceivableNetCurrent>
    <us-gaap:AccountsReceivableNetCurrent contextRef="c-6" decimals="0" id="f-61" unitRef="usd">6735336</us-gaap:AccountsReceivableNetCurrent>
    <tgen:EmployeeRetentionCreditCurrent contextRef="c-5" decimals="0" id="f-62" unitRef="usd">0</tgen:EmployeeRetentionCreditCurrent>
    <tgen:EmployeeRetentionCreditCurrent contextRef="c-6" decimals="0" id="f-63" unitRef="usd">46148</tgen:EmployeeRetentionCreditCurrent>
    <us-gaap:ContractWithCustomerAssetNetCurrent contextRef="c-5" decimals="0" id="f-64" unitRef="usd">398898</us-gaap:ContractWithCustomerAssetNetCurrent>
    <us-gaap:ContractWithCustomerAssetNetCurrent contextRef="c-6" decimals="0" id="f-65" unitRef="usd">1258532</us-gaap:ContractWithCustomerAssetNetCurrent>
    <us-gaap:InventoryNet contextRef="c-5" decimals="0" id="f-66" unitRef="usd">9634005</us-gaap:InventoryNet>
    <us-gaap:InventoryNet contextRef="c-6" decimals="0" id="f-67" unitRef="usd">10553419</us-gaap:InventoryNet>
    <us-gaap:PrepaidExpenseAndOtherAssetsCurrent contextRef="c-5" decimals="0" id="f-68" unitRef="usd">680565</us-gaap:PrepaidExpenseAndOtherAssetsCurrent>
    <us-gaap:PrepaidExpenseAndOtherAssetsCurrent contextRef="c-6" decimals="0" id="f-69" unitRef="usd">360639</us-gaap:PrepaidExpenseAndOtherAssetsCurrent>
    <us-gaap:AssetsCurrent contextRef="c-5" decimals="0" id="f-70" unitRef="usd">22145246</us-gaap:AssetsCurrent>
    <us-gaap:AssetsCurrent contextRef="c-6" decimals="0" id="f-71" unitRef="usd">20305344</us-gaap:AssetsCurrent>
    <us-gaap:PropertyPlantAndEquipmentNet contextRef="c-5" decimals="0" id="f-72" unitRef="usd">1738036</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:PropertyPlantAndEquipmentNet contextRef="c-6" decimals="0" id="f-73" unitRef="usd">1162577</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:OperatingLeaseRightOfUseAsset contextRef="c-5" decimals="0" id="f-74" unitRef="usd">1730358</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:OperatingLeaseRightOfUseAsset contextRef="c-6" decimals="0" id="f-75" unitRef="usd">743096</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:FinanceLeaseRightOfUseAsset contextRef="c-5" decimals="0" id="f-76" unitRef="usd">452390</us-gaap:FinanceLeaseRightOfUseAsset>
    <us-gaap:FinanceLeaseRightOfUseAsset contextRef="c-6" decimals="0" id="f-77" unitRef="usd">200187</us-gaap:FinanceLeaseRightOfUseAsset>
    <us-gaap:FiniteLivedIntangibleAssetsNet contextRef="c-5" decimals="0" id="f-78" unitRef="usd">2513189</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetsNet contextRef="c-6" decimals="0" id="f-79" unitRef="usd">2436230</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:Goodwill contextRef="c-5" decimals="0" id="f-80" unitRef="usd">2346566</us-gaap:Goodwill>
    <us-gaap:Goodwill contextRef="c-6" decimals="0" id="f-81" unitRef="usd">2743424</us-gaap:Goodwill>
    <us-gaap:OtherAssetsNoncurrent contextRef="c-5" decimals="0" id="f-82" unitRef="usd">166474</us-gaap:OtherAssetsNoncurrent>
    <us-gaap:OtherAssetsNoncurrent contextRef="c-6" decimals="0" id="f-83" unitRef="usd">201771</us-gaap:OtherAssetsNoncurrent>
    <us-gaap:Assets contextRef="c-5" decimals="0" id="f-84" unitRef="usd">31092259</us-gaap:Assets>
    <us-gaap:Assets contextRef="c-6" decimals="0" id="f-85" unitRef="usd">27792629</us-gaap:Assets>
    <us-gaap:NotesPayable contextRef="c-5" decimals="0" id="f-86" unitRef="usd">1548872</us-gaap:NotesPayable>
    <us-gaap:NotesPayable contextRef="c-6" decimals="0" id="f-87" unitRef="usd">505505</us-gaap:NotesPayable>
    <us-gaap:AccountsPayableCurrent contextRef="c-5" decimals="0" id="f-88" unitRef="usd">4142678</us-gaap:AccountsPayableCurrent>
    <us-gaap:AccountsPayableCurrent contextRef="c-6" decimals="0" id="f-89" unitRef="usd">4514415</us-gaap:AccountsPayableCurrent>
    <us-gaap:AccruedLiabilitiesCurrent contextRef="c-5" decimals="0" id="f-90" unitRef="usd">2890886</us-gaap:AccruedLiabilitiesCurrent>
    <us-gaap:AccruedLiabilitiesCurrent contextRef="c-6" decimals="0" id="f-91" unitRef="usd">2504629</us-gaap:AccruedLiabilitiesCurrent>
    <us-gaap:DeferredRevenueCurrent contextRef="c-5" decimals="0" id="f-92" unitRef="usd">6701131</us-gaap:DeferredRevenueCurrent>
    <us-gaap:DeferredRevenueCurrent contextRef="c-6" decimals="0" id="f-93" unitRef="usd">1647206</us-gaap:DeferredRevenueCurrent>
    <us-gaap:OperatingLeaseLiabilityCurrent contextRef="c-5" decimals="0" id="f-94" unitRef="usd">430382</us-gaap:OperatingLeaseLiabilityCurrent>
    <us-gaap:OperatingLeaseLiabilityCurrent contextRef="c-6" decimals="0" id="f-95" unitRef="usd">248933</us-gaap:OperatingLeaseLiabilityCurrent>
    <us-gaap:FinanceLeaseLiabilityCurrent contextRef="c-5" decimals="0" id="f-96" unitRef="usd">85646</us-gaap:FinanceLeaseLiabilityCurrent>
    <us-gaap:FinanceLeaseLiabilityCurrent contextRef="c-6" decimals="0" id="f-97" unitRef="usd">40540</us-gaap:FinanceLeaseLiabilityCurrent>
    <us-gaap:BusinessCombinationContingentConsiderationLiabilityCurrent contextRef="c-5" decimals="0" id="f-98" unitRef="usd">902552</us-gaap:BusinessCombinationContingentConsiderationLiabilityCurrent>
    <us-gaap:BusinessCombinationContingentConsiderationLiabilityCurrent contextRef="c-6" decimals="0" id="f-99" unitRef="usd">845363</us-gaap:BusinessCombinationContingentConsiderationLiabilityCurrent>
    <tgen:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedFinancialLiabilitiesCurrent contextRef="c-5" decimals="0" id="f-100" unitRef="usd">113449</tgen:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedFinancialLiabilitiesCurrent>
    <tgen:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedFinancialLiabilitiesCurrent contextRef="c-6" decimals="0" id="f-101" unitRef="usd">176207</tgen:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedFinancialLiabilitiesCurrent>
    <us-gaap:LiabilitiesCurrent contextRef="c-5" decimals="0" id="f-102" unitRef="usd">16815596</us-gaap:LiabilitiesCurrent>
    <us-gaap:LiabilitiesCurrent contextRef="c-6" decimals="0" id="f-103" unitRef="usd">10482798</us-gaap:LiabilitiesCurrent>
    <us-gaap:DeferredRevenueNoncurrent contextRef="c-5" decimals="0" id="f-104" unitRef="usd">1165951</us-gaap:DeferredRevenueNoncurrent>
    <us-gaap:DeferredRevenueNoncurrent contextRef="c-6" decimals="0" id="f-105" unitRef="usd">369611</us-gaap:DeferredRevenueNoncurrent>
    <us-gaap:OperatingLeaseLiabilityNoncurrent contextRef="c-5" decimals="0" id="f-106" unitRef="usd">1341789</us-gaap:OperatingLeaseLiabilityNoncurrent>
    <us-gaap:OperatingLeaseLiabilityNoncurrent contextRef="c-6" decimals="0" id="f-107" unitRef="usd">523660</us-gaap:OperatingLeaseLiabilityNoncurrent>
    <us-gaap:FinanceLeaseLiabilityNoncurrent contextRef="c-5" decimals="0" id="f-108" unitRef="usd">325235</us-gaap:FinanceLeaseLiabilityNoncurrent>
    <us-gaap:FinanceLeaseLiabilityNoncurrent contextRef="c-6" decimals="0" id="f-109" unitRef="usd">159647</us-gaap:FinanceLeaseLiabilityNoncurrent>
    <us-gaap:BusinessCombinationContingentConsiderationLiabilityNoncurrent contextRef="c-5" decimals="0" id="f-110" unitRef="usd">1008760</us-gaap:BusinessCombinationContingentConsiderationLiabilityNoncurrent>
    <us-gaap:BusinessCombinationContingentConsiderationLiabilityNoncurrent contextRef="c-6" decimals="0" id="f-111" unitRef="usd">1181779</us-gaap:BusinessCombinationContingentConsiderationLiabilityNoncurrent>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedFinancialLiabilities contextRef="c-5" decimals="0" id="f-112" unitRef="usd">309390</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedFinancialLiabilities>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedFinancialLiabilities contextRef="c-6" decimals="0" id="f-113" unitRef="usd">422839</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedFinancialLiabilities>
    <us-gaap:Liabilities contextRef="c-5" decimals="0" id="f-114" unitRef="usd">20966721</us-gaap:Liabilities>
    <us-gaap:Liabilities contextRef="c-6" decimals="0" id="f-115" unitRef="usd">13140334</us-gaap:Liabilities>
    <us-gaap:CommitmentsAndContingencies contextRef="c-5" id="f-116" unitRef="usd" xsi:nil="true"/>
    <us-gaap:CommitmentsAndContingencies contextRef="c-6" id="f-117" unitRef="usd" xsi:nil="true"/>
    <us-gaap:CommonStockParOrStatedValuePerShare
      contextRef="c-6"
      decimals="3"
      id="f-118"
      unitRef="usdPerShare">0.001</us-gaap:CommonStockParOrStatedValuePerShare>
    <us-gaap:CommonStockParOrStatedValuePerShare
      contextRef="c-5"
      decimals="3"
      id="f-119"
      unitRef="usdPerShare">0.001</us-gaap:CommonStockParOrStatedValuePerShare>
    <us-gaap:CommonStockSharesAuthorized contextRef="c-5" decimals="0" id="f-120" unitRef="shares">100000000</us-gaap:CommonStockSharesAuthorized>
    <us-gaap:CommonStockSharesAuthorized contextRef="c-6" decimals="0" id="f-121" unitRef="shares">100000000</us-gaap:CommonStockSharesAuthorized>
    <us-gaap:CommonStockSharesOutstanding contextRef="c-5" decimals="0" id="f-122" unitRef="shares">24950261</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:CommonStockSharesIssued contextRef="c-5" decimals="0" id="f-123" unitRef="shares">24950261</us-gaap:CommonStockSharesIssued>
    <us-gaap:CommonStockSharesIssued contextRef="c-6" decimals="0" id="f-124" unitRef="shares">24850261</us-gaap:CommonStockSharesIssued>
    <us-gaap:CommonStockSharesOutstanding contextRef="c-6" decimals="0" id="f-125" unitRef="shares">24850261</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:CommonStockValue contextRef="c-5" decimals="0" id="f-126" unitRef="usd">24950</us-gaap:CommonStockValue>
    <us-gaap:CommonStockValue contextRef="c-6" decimals="0" id="f-127" unitRef="usd">24850</us-gaap:CommonStockValue>
    <us-gaap:AdditionalPaidInCapital contextRef="c-5" decimals="0" id="f-128" unitRef="usd">57845289</us-gaap:AdditionalPaidInCapital>
    <us-gaap:AdditionalPaidInCapital contextRef="c-6" decimals="0" id="f-129" unitRef="usd">57601402</us-gaap:AdditionalPaidInCapital>
    <us-gaap:RetainedEarningsAccumulatedDeficit contextRef="c-5" decimals="0" id="f-130" unitRef="usd">-47639894</us-gaap:RetainedEarningsAccumulatedDeficit>
    <us-gaap:RetainedEarningsAccumulatedDeficit contextRef="c-6" decimals="0" id="f-131" unitRef="usd">-42879656</us-gaap:RetainedEarningsAccumulatedDeficit>
    <us-gaap:StockholdersEquity contextRef="c-5" decimals="0" id="f-132" unitRef="usd">10230345</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity contextRef="c-6" decimals="0" id="f-133" unitRef="usd">14746596</us-gaap:StockholdersEquity>
    <us-gaap:MinorityInterest contextRef="c-5" decimals="0" id="f-134" unitRef="usd">-104807</us-gaap:MinorityInterest>
    <us-gaap:MinorityInterest contextRef="c-6" decimals="0" id="f-135" unitRef="usd">-94301</us-gaap:MinorityInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest contextRef="c-5" decimals="0" id="f-136" unitRef="usd">10125538</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest contextRef="c-6" decimals="0" id="f-137" unitRef="usd">14652295</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:LiabilitiesAndStockholdersEquity contextRef="c-5" decimals="0" id="f-138" unitRef="usd">31092259</us-gaap:LiabilitiesAndStockholdersEquity>
    <us-gaap:LiabilitiesAndStockholdersEquity contextRef="c-6" decimals="0" id="f-139" unitRef="usd">27792629</us-gaap:LiabilitiesAndStockholdersEquity>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-7" decimals="0" id="f-140" unitRef="usd">4443996</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-8" decimals="0" id="f-141" unitRef="usd">8859946</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-9" decimals="0" id="f-142" unitRef="usd">16074870</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-10" decimals="0" id="f-143" unitRef="usd">14523054</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-11" decimals="0" id="f-144" unitRef="usd">2100670</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-12" decimals="0" id="f-145" unitRef="usd">1756419</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-1" decimals="0" id="f-146" unitRef="usd">22619536</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-13" decimals="0" id="f-147" unitRef="usd">25139419</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:CostOfGoodsAndServicesSold contextRef="c-7" decimals="0" id="f-148" unitRef="usd">3014655</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:CostOfGoodsAndServicesSold contextRef="c-8" decimals="0" id="f-149" unitRef="usd">5923096</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:CostOfGoodsAndServicesSold contextRef="c-9" decimals="0" id="f-150" unitRef="usd">8432876</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:CostOfGoodsAndServicesSold contextRef="c-10" decimals="0" id="f-151" unitRef="usd">7909202</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:CostOfGoodsAndServicesSold contextRef="c-11" decimals="0" id="f-152" unitRef="usd">1301832</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:CostOfGoodsAndServicesSold contextRef="c-12" decimals="0" id="f-153" unitRef="usd">1105503</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:CostOfGoodsAndServicesSold contextRef="c-1" decimals="0" id="f-154" unitRef="usd">12749363</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:CostOfGoodsAndServicesSold contextRef="c-13" decimals="0" id="f-155" unitRef="usd">14937801</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:GrossProfit contextRef="c-1" decimals="0" id="f-156" unitRef="usd">9870173</us-gaap:GrossProfit>
    <us-gaap:GrossProfit contextRef="c-13" decimals="0" id="f-157" unitRef="usd">10201618</us-gaap:GrossProfit>
    <us-gaap:GeneralAndAdministrativeExpense contextRef="c-1" decimals="0" id="f-158" unitRef="usd">11356406</us-gaap:GeneralAndAdministrativeExpense>
    <us-gaap:GeneralAndAdministrativeExpense contextRef="c-13" decimals="0" id="f-159" unitRef="usd">11880389</us-gaap:GeneralAndAdministrativeExpense>
    <us-gaap:SellingExpense contextRef="c-1" decimals="0" id="f-160" unitRef="usd">1880903</us-gaap:SellingExpense>
    <us-gaap:SellingExpense contextRef="c-13" decimals="0" id="f-161" unitRef="usd">1931037</us-gaap:SellingExpense>
    <us-gaap:ResearchAndDevelopmentExpense contextRef="c-1" decimals="0" id="f-162" unitRef="usd">961837</us-gaap:ResearchAndDevelopmentExpense>
    <us-gaap:ResearchAndDevelopmentExpense contextRef="c-13" decimals="0" id="f-163" unitRef="usd">840011</us-gaap:ResearchAndDevelopmentExpense>
    <us-gaap:GainLossOnDispositionOfAssets1 contextRef="c-1" decimals="0" id="f-164" unitRef="usd">12181</us-gaap:GainLossOnDispositionOfAssets1>
    <us-gaap:GainLossOnDispositionOfAssets1 contextRef="c-13" decimals="0" id="f-165" unitRef="usd">36207</us-gaap:GainLossOnDispositionOfAssets1>
    <us-gaap:GoodwillImpairmentLoss contextRef="c-1" decimals="0" id="f-166" unitRef="usd">217295</us-gaap:GoodwillImpairmentLoss>
    <us-gaap:GoodwillImpairmentLoss contextRef="c-13" decimals="0" id="f-167" unitRef="usd">0</us-gaap:GoodwillImpairmentLoss>
    <us-gaap:OperatingExpenses contextRef="c-1" decimals="0" id="f-168" unitRef="usd">14404260</us-gaap:OperatingExpenses>
    <us-gaap:OperatingExpenses contextRef="c-13" decimals="0" id="f-169" unitRef="usd">14615230</us-gaap:OperatingExpenses>
    <us-gaap:OperatingIncomeLoss contextRef="c-1" decimals="0" id="f-170" unitRef="usd">-4534087</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss contextRef="c-13" decimals="0" id="f-171" unitRef="usd">-4413612</us-gaap:OperatingIncomeLoss>
    <tgen:InterestAndOtherIncomeExpense contextRef="c-1" decimals="0" id="f-172" unitRef="usd">-26814</tgen:InterestAndOtherIncomeExpense>
    <tgen:InterestAndOtherIncomeExpense contextRef="c-13" decimals="0" id="f-173" unitRef="usd">-61003</tgen:InterestAndOtherIncomeExpense>
    <us-gaap:InterestExpenseNonoperating contextRef="c-1" decimals="0" id="f-174" unitRef="usd">90304</us-gaap:InterestExpenseNonoperating>
    <us-gaap:InterestExpenseNonoperating contextRef="c-13" decimals="0" id="f-175" unitRef="usd">16050</us-gaap:InterestExpenseNonoperating>
    <us-gaap:NonoperatingIncomeExpense contextRef="c-1" decimals="0" id="f-176" unitRef="usd">-117118</us-gaap:NonoperatingIncomeExpense>
    <us-gaap:NonoperatingIncomeExpense contextRef="c-13" decimals="0" id="f-177" unitRef="usd">-77053</us-gaap:NonoperatingIncomeExpense>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest contextRef="c-1" decimals="0" id="f-178" unitRef="usd">-4651205</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest contextRef="c-13" decimals="0" id="f-179" unitRef="usd">-4490665</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <tgen:IncomeTaxExpenseBenefitState contextRef="c-1" decimals="0" id="f-180" unitRef="usd">22565</tgen:IncomeTaxExpenseBenefitState>
    <tgen:IncomeTaxExpenseBenefitState contextRef="c-13" decimals="0" id="f-181" unitRef="usd">32491</tgen:IncomeTaxExpenseBenefitState>
    <us-gaap:ProfitLoss contextRef="c-1" decimals="0" id="f-182" unitRef="usd">-4673770</us-gaap:ProfitLoss>
    <us-gaap:ProfitLoss contextRef="c-13" decimals="0" id="f-183" unitRef="usd">-4523156</us-gaap:ProfitLoss>
    <us-gaap:NetIncomeLossAttributableToNoncontrollingInterest contextRef="c-1" decimals="0" id="f-184" unitRef="usd">86468</us-gaap:NetIncomeLossAttributableToNoncontrollingInterest>
    <us-gaap:NetIncomeLossAttributableToNoncontrollingInterest contextRef="c-13" decimals="0" id="f-185" unitRef="usd">74952</us-gaap:NetIncomeLossAttributableToNoncontrollingInterest>
    <us-gaap:NetIncomeLoss contextRef="c-1" decimals="0" id="f-186" unitRef="usd">-4760238</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss contextRef="c-13" decimals="0" id="f-187" unitRef="usd">-4598108</us-gaap:NetIncomeLoss>
    <us-gaap:EarningsPerShareBasic
      contextRef="c-1"
      decimals="2"
      id="f-188"
      unitRef="usdPerShare">-0.19</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="c-13"
      decimals="2"
      id="f-189"
      unitRef="usdPerShare">-0.19</us-gaap:EarningsPerShareBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic contextRef="c-1" decimals="0" id="f-190" unitRef="shares">24861190</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic contextRef="c-13" decimals="0" id="f-191" unitRef="shares">24850261</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:EarningsPerShareDiluted
      contextRef="c-1"
      decimals="2"
      id="f-192"
      unitRef="usdPerShare">-0.19</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="c-13"
      decimals="2"
      id="f-193"
      unitRef="usdPerShare">-0.19</us-gaap:EarningsPerShareDiluted>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding contextRef="c-1" decimals="0" id="f-194" unitRef="shares">24861190</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding contextRef="c-13" decimals="0" id="f-195" unitRef="shares">24850261</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:CommonStockParOrStatedValuePerShare
      contextRef="c-5"
      decimals="3"
      id="f-196"
      unitRef="usdPerShare">0.001</us-gaap:CommonStockParOrStatedValuePerShare>
    <us-gaap:SharesOutstanding
      contextRef="c-14"
      decimals="INF"
      id="f-197"
      unitRef="shares">24850261</us-gaap:SharesOutstanding>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest contextRef="c-14" decimals="0" id="f-198" unitRef="usd">24850</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest contextRef="c-15" decimals="0" id="f-199" unitRef="usd">57351008</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest contextRef="c-16" decimals="0" id="f-200" unitRef="usd">-38281548</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest contextRef="c-17" decimals="0" id="f-201" unitRef="usd">-106560</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest contextRef="c-18" decimals="0" id="f-202" unitRef="usd">18987750</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:MinorityInterestDecreaseFromDistributionsToNoncontrollingInterestHolders contextRef="c-19" decimals="0" id="f-203" unitRef="usd">62693</us-gaap:MinorityInterestDecreaseFromDistributionsToNoncontrollingInterestHolders>
    <us-gaap:MinorityInterestDecreaseFromDistributionsToNoncontrollingInterestHolders contextRef="c-13" decimals="0" id="f-204" unitRef="usd">62693</us-gaap:MinorityInterestDecreaseFromDistributionsToNoncontrollingInterestHolders>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue contextRef="c-20" decimals="0" id="f-205" unitRef="usd">250394</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue contextRef="c-13" decimals="0" id="f-206" unitRef="usd">250394</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:ProfitLoss contextRef="c-21" decimals="0" id="f-207" unitRef="usd">-4598108</us-gaap:ProfitLoss>
    <us-gaap:ProfitLoss contextRef="c-19" decimals="0" id="f-208" unitRef="usd">74952</us-gaap:ProfitLoss>
    <us-gaap:ProfitLoss contextRef="c-13" decimals="0" id="f-209" unitRef="usd">-4523156</us-gaap:ProfitLoss>
    <us-gaap:SharesOutstanding
      contextRef="c-22"
      decimals="INF"
      id="f-210"
      unitRef="shares">24850261</us-gaap:SharesOutstanding>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest contextRef="c-22" decimals="0" id="f-211" unitRef="usd">24850</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest contextRef="c-23" decimals="0" id="f-212" unitRef="usd">57601402</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest contextRef="c-24" decimals="0" id="f-213" unitRef="usd">-42879656</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest contextRef="c-25" decimals="0" id="f-214" unitRef="usd">-94301</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest contextRef="c-6" decimals="0" id="f-215" unitRef="usd">14652295</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised contextRef="c-26" decimals="0" id="f-216" unitRef="shares">100000</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised contextRef="c-26" decimals="0" id="f-217" unitRef="usd">100</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised contextRef="c-27" decimals="0" id="f-218" unitRef="usd">70900</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised contextRef="c-1" decimals="0" id="f-219" unitRef="usd">71000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:MinorityInterestDecreaseFromDistributionsToNoncontrollingInterestHolders contextRef="c-28" decimals="0" id="f-220" unitRef="usd">96974</us-gaap:MinorityInterestDecreaseFromDistributionsToNoncontrollingInterestHolders>
    <us-gaap:MinorityInterestDecreaseFromDistributionsToNoncontrollingInterestHolders contextRef="c-1" decimals="0" id="f-221" unitRef="usd">96974</us-gaap:MinorityInterestDecreaseFromDistributionsToNoncontrollingInterestHolders>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue contextRef="c-27" decimals="0" id="f-222" unitRef="usd">172987</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue contextRef="c-1" decimals="0" id="f-223" unitRef="usd">172987</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:ProfitLoss contextRef="c-29" decimals="0" id="f-224" unitRef="usd">-4760238</us-gaap:ProfitLoss>
    <us-gaap:ProfitLoss contextRef="c-28" decimals="0" id="f-225" unitRef="usd">86468</us-gaap:ProfitLoss>
    <us-gaap:ProfitLoss contextRef="c-1" decimals="0" id="f-226" unitRef="usd">-4673770</us-gaap:ProfitLoss>
    <us-gaap:SharesOutstanding
      contextRef="c-30"
      decimals="INF"
      id="f-227"
      unitRef="shares">24950261</us-gaap:SharesOutstanding>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest contextRef="c-30" decimals="0" id="f-228" unitRef="usd">24950</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest contextRef="c-31" decimals="0" id="f-229" unitRef="usd">57845289</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest contextRef="c-32" decimals="0" id="f-230" unitRef="usd">-47639894</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest contextRef="c-33" decimals="0" id="f-231" unitRef="usd">-104807</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest contextRef="c-5" decimals="0" id="f-232" unitRef="usd">10125538</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:ProfitLoss contextRef="c-1" decimals="0" id="f-233" unitRef="usd">-4673770</us-gaap:ProfitLoss>
    <us-gaap:ProfitLoss contextRef="c-13" decimals="0" id="f-234" unitRef="usd">-4523156</us-gaap:ProfitLoss>
    <us-gaap:DepreciationDepletionAndAmortization contextRef="c-1" decimals="0" id="f-235" unitRef="usd">553783</us-gaap:DepreciationDepletionAndAmortization>
    <us-gaap:DepreciationDepletionAndAmortization contextRef="c-13" decimals="0" id="f-236" unitRef="usd">567712</us-gaap:DepreciationDepletionAndAmortization>
    <us-gaap:GainLossOnDispositionOfAssets1 contextRef="c-1" decimals="0" id="f-237" unitRef="usd">12181</us-gaap:GainLossOnDispositionOfAssets1>
    <us-gaap:GainLossOnDispositionOfAssets1 contextRef="c-13" decimals="0" id="f-238" unitRef="usd">36207</us-gaap:GainLossOnDispositionOfAssets1>
    <us-gaap:ProvisionForDoubtfulAccounts contextRef="c-1" decimals="0" id="f-239" unitRef="usd">146010</us-gaap:ProvisionForDoubtfulAccounts>
    <us-gaap:ProvisionForDoubtfulAccounts contextRef="c-13" decimals="0" id="f-240" unitRef="usd">902432</us-gaap:ProvisionForDoubtfulAccounts>
    <us-gaap:InventoryWriteDown contextRef="c-1" decimals="0" id="f-241" unitRef="usd">70530</us-gaap:InventoryWriteDown>
    <us-gaap:InventoryWriteDown contextRef="c-13" decimals="0" id="f-242" unitRef="usd">402883</us-gaap:InventoryWriteDown>
    <us-gaap:ShareBasedCompensation contextRef="c-1" decimals="0" id="f-243" unitRef="usd">172987</us-gaap:ShareBasedCompensation>
    <us-gaap:ShareBasedCompensation contextRef="c-13" decimals="0" id="f-244" unitRef="usd">250394</us-gaap:ShareBasedCompensation>
    <us-gaap:GoodwillImpairmentLoss contextRef="c-1" decimals="0" id="f-245" unitRef="usd">217295</us-gaap:GoodwillImpairmentLoss>
    <us-gaap:GoodwillImpairmentLoss contextRef="c-13" decimals="0" id="f-246" unitRef="usd">0</us-gaap:GoodwillImpairmentLoss>
    <tgen:NoncashInterestExpense contextRef="c-1" decimals="0" id="f-247" unitRef="usd">45025</tgen:NoncashInterestExpense>
    <tgen:NoncashInterestExpense contextRef="c-13" decimals="0" id="f-248" unitRef="usd">5505</tgen:NoncashInterestExpense>
    <us-gaap:IncreaseDecreaseInAccountsReceivable contextRef="c-1" decimals="0" id="f-249" unitRef="usd">-608929</us-gaap:IncreaseDecreaseInAccountsReceivable>
    <us-gaap:IncreaseDecreaseInAccountsReceivable contextRef="c-13" decimals="0" id="f-250" unitRef="usd">81195</us-gaap:IncreaseDecreaseInAccountsReceivable>
    <us-gaap:IncreaseDecreaseInInventories contextRef="c-1" decimals="0" id="f-251" unitRef="usd">-848884</us-gaap:IncreaseDecreaseInInventories>
    <us-gaap:IncreaseDecreaseInInventories contextRef="c-13" decimals="0" id="f-252" unitRef="usd">82525</us-gaap:IncreaseDecreaseInInventories>
    <us-gaap:IncreaseDecreaseInContractWithCustomerLiability contextRef="c-1" decimals="0" id="f-253" unitRef="usd">859634</us-gaap:IncreaseDecreaseInContractWithCustomerLiability>
    <us-gaap:IncreaseDecreaseInContractWithCustomerLiability contextRef="c-13" decimals="0" id="f-254" unitRef="usd">56994</us-gaap:IncreaseDecreaseInContractWithCustomerLiability>
    <tgen:IncreaseDecreaseInPrepaidExpenseAndOtherCurrentAssets contextRef="c-1" decimals="0" id="f-255" unitRef="usd">319926</tgen:IncreaseDecreaseInPrepaidExpenseAndOtherCurrentAssets>
    <tgen:IncreaseDecreaseInPrepaidExpenseAndOtherCurrentAssets contextRef="c-13" decimals="0" id="f-256" unitRef="usd">-40550</tgen:IncreaseDecreaseInPrepaidExpenseAndOtherCurrentAssets>
    <us-gaap:IncreaseDecreaseInOtherOperatingAssets contextRef="c-1" decimals="0" id="f-257" unitRef="usd">-510723</us-gaap:IncreaseDecreaseInOtherOperatingAssets>
    <us-gaap:IncreaseDecreaseInOtherOperatingAssets contextRef="c-13" decimals="0" id="f-258" unitRef="usd">-265725</us-gaap:IncreaseDecreaseInOtherOperatingAssets>
    <us-gaap:IncreaseDecreaseInAccountsPayable contextRef="c-1" decimals="0" id="f-259" unitRef="usd">-371736</us-gaap:IncreaseDecreaseInAccountsPayable>
    <us-gaap:IncreaseDecreaseInAccountsPayable contextRef="c-13" decimals="0" id="f-260" unitRef="usd">1161416</us-gaap:IncreaseDecreaseInAccountsPayable>
    <us-gaap:IncreaseDecreaseInAccruedLiabilities contextRef="c-1" decimals="0" id="f-261" unitRef="usd">386257</us-gaap:IncreaseDecreaseInAccruedLiabilities>
    <us-gaap:IncreaseDecreaseInAccruedLiabilities contextRef="c-13" decimals="0" id="f-262" unitRef="usd">128869</us-gaap:IncreaseDecreaseInAccruedLiabilities>
    <us-gaap:IncreaseDecreaseInDeferredRevenue contextRef="c-1" decimals="0" id="f-263" unitRef="usd">5850265</us-gaap:IncreaseDecreaseInDeferredRevenue>
    <us-gaap:IncreaseDecreaseInDeferredRevenue contextRef="c-13" decimals="0" id="f-264" unitRef="usd">543842</us-gaap:IncreaseDecreaseInDeferredRevenue>
    <us-gaap:IncreaseDecreaseInOtherCurrentLiabilities contextRef="c-1" decimals="0" id="f-265" unitRef="usd">-832162</us-gaap:IncreaseDecreaseInOtherCurrentLiabilities>
    <us-gaap:IncreaseDecreaseInOtherCurrentLiabilities contextRef="c-13" decimals="0" id="f-266" unitRef="usd">-421049</us-gaap:IncreaseDecreaseInOtherCurrentLiabilities>
    <us-gaap:NetCashProvidedByUsedInOperatingActivities contextRef="c-1" decimals="0" id="f-267" unitRef="usd">4060547</us-gaap:NetCashProvidedByUsedInOperatingActivities>
    <us-gaap:NetCashProvidedByUsedInOperatingActivities contextRef="c-13" decimals="0" id="f-268" unitRef="usd">-817810</us-gaap:NetCashProvidedByUsedInOperatingActivities>
    <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment contextRef="c-1" decimals="0" id="f-269" unitRef="usd">969163</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
    <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment contextRef="c-13" decimals="0" id="f-270" unitRef="usd">46851</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
    <us-gaap:ProceedsFromSaleOfPropertyPlantAndEquipment contextRef="c-1" decimals="0" id="f-271" unitRef="usd">51400</us-gaap:ProceedsFromSaleOfPropertyPlantAndEquipment>
    <us-gaap:ProceedsFromSaleOfPropertyPlantAndEquipment contextRef="c-13" decimals="0" id="f-272" unitRef="usd">34655</us-gaap:ProceedsFromSaleOfPropertyPlantAndEquipment>
    <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired contextRef="c-1" decimals="0" id="f-273" unitRef="usd">0</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
    <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired contextRef="c-13" decimals="0" id="f-274" unitRef="usd">170000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
    <tgen:PaymentsToNoncontrollingInterestsInvestingActivities contextRef="c-1" decimals="0" id="f-275" unitRef="usd">96974</tgen:PaymentsToNoncontrollingInterestsInvestingActivities>
    <tgen:PaymentsToNoncontrollingInterestsInvestingActivities contextRef="c-13" decimals="0" id="f-276" unitRef="usd">62693</tgen:PaymentsToNoncontrollingInterestsInvestingActivities>
    <us-gaap:NetCashProvidedByUsedInInvestingActivities contextRef="c-1" decimals="0" id="f-277" unitRef="usd">-1014737</us-gaap:NetCashProvidedByUsedInInvestingActivities>
    <us-gaap:NetCashProvidedByUsedInInvestingActivities contextRef="c-13" decimals="0" id="f-278" unitRef="usd">-244889</us-gaap:NetCashProvidedByUsedInInvestingActivities>
    <us-gaap:ProceedsFromNotesPayable contextRef="c-1" decimals="0" id="f-279" unitRef="usd">1000000</us-gaap:ProceedsFromNotesPayable>
    <us-gaap:ProceedsFromNotesPayable contextRef="c-13" decimals="0" id="f-280" unitRef="usd">500000</us-gaap:ProceedsFromNotesPayable>
    <us-gaap:FinanceLeasePrincipalPayments contextRef="c-1" decimals="0" id="f-281" unitRef="usd">62847</us-gaap:FinanceLeasePrincipalPayments>
    <us-gaap:FinanceLeasePrincipalPayments contextRef="c-13" decimals="0" id="f-282" unitRef="usd">0</us-gaap:FinanceLeasePrincipalPayments>
    <us-gaap:ProceedsFromStockOptionsExercised contextRef="c-1" decimals="0" id="f-283" unitRef="usd">71000</us-gaap:ProceedsFromStockOptionsExercised>
    <us-gaap:ProceedsFromStockOptionsExercised contextRef="c-13" decimals="0" id="f-284" unitRef="usd">0</us-gaap:ProceedsFromStockOptionsExercised>
    <us-gaap:NetCashProvidedByUsedInFinancingActivities contextRef="c-1" decimals="0" id="f-285" unitRef="usd">1008153</us-gaap:NetCashProvidedByUsedInFinancingActivities>
    <us-gaap:NetCashProvidedByUsedInFinancingActivities contextRef="c-13" decimals="0" id="f-286" unitRef="usd">500000</us-gaap:NetCashProvidedByUsedInFinancingActivities>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect contextRef="c-1" decimals="0" id="f-287" unitRef="usd">4053963</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect contextRef="c-13" decimals="0" id="f-288" unitRef="usd">-562699</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents contextRef="c-6" decimals="0" id="f-289" unitRef="usd">1351270</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents contextRef="c-18" decimals="0" id="f-290" unitRef="usd">1913969</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents contextRef="c-5" decimals="0" id="f-291" unitRef="usd">5405233</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents contextRef="c-6" decimals="0" id="f-292" unitRef="usd">1351270</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:InterestPaidNet contextRef="c-1" decimals="0" id="f-293" unitRef="usd">45278</us-gaap:InterestPaidNet>
    <us-gaap:InterestPaidNet contextRef="c-13" decimals="0" id="f-294" unitRef="usd">10926</us-gaap:InterestPaidNet>
    <us-gaap:IncomeTaxesPaid contextRef="c-1" decimals="0" id="f-295" unitRef="usd">22565</us-gaap:IncomeTaxesPaid>
    <us-gaap:IncomeTaxesPaid contextRef="c-13" decimals="0" id="f-296" unitRef="usd">32491</us-gaap:IncomeTaxesPaid>
    <us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability contextRef="c-1" decimals="0" id="f-297" unitRef="usd">1650994</us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability>
    <us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability contextRef="c-13" decimals="0" id="f-298" unitRef="usd">148093</us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability>
    <tgen:VehiclesAcquiredUnderFinanceLeases contextRef="c-1" decimals="0" id="f-299" unitRef="usd">295085</tgen:VehiclesAcquiredUnderFinanceLeases>
    <tgen:VehiclesAcquiredUnderFinanceLeases contextRef="c-13" decimals="0" id="f-300" unitRef="usd">200187</tgen:VehiclesAcquiredUnderFinanceLeases>
    <tgen:AssetAcquisitionConsiderationTransferredNonCashAccountsReceivableCredit contextRef="c-1" decimals="0" id="f-301" unitRef="usd">0</tgen:AssetAcquisitionConsiderationTransferredNonCashAccountsReceivableCredit>
    <tgen:AssetAcquisitionConsiderationTransferredNonCashAccountsReceivableCredit contextRef="c-13" decimals="0" id="f-302" unitRef="usd">300000</tgen:AssetAcquisitionConsiderationTransferredNonCashAccountsReceivableCredit>
    <tgen:AssetAcquisitionConsiderationTransferredNonCashAccountsPayable contextRef="c-1" decimals="0" id="f-303" unitRef="usd">0</tgen:AssetAcquisitionConsiderationTransferredNonCashAccountsPayable>
    <tgen:AssetAcquisitionConsiderationTransferredNonCashAccountsPayable contextRef="c-13" decimals="0" id="f-304" unitRef="usd">91048</tgen:AssetAcquisitionConsiderationTransferredNonCashAccountsPayable>
    <tgen:AssetAcquisitionConsiderationTransferredNonCashContingentConsideration contextRef="c-1" decimals="0" id="f-305" unitRef="usd">272901</tgen:AssetAcquisitionConsiderationTransferredNonCashContingentConsideration>
    <tgen:AssetAcquisitionConsiderationTransferredNonCashContingentConsideration contextRef="c-13" decimals="0" id="f-306" unitRef="usd">1256656</tgen:AssetAcquisitionConsiderationTransferredNonCashContingentConsideration>
    <tgen:AssetAcquisitionConsiderationTransferredNonCash contextRef="c-1" decimals="0" id="f-307" unitRef="usd">272901</tgen:AssetAcquisitionConsiderationTransferredNonCash>
    <tgen:AssetAcquisitionConsiderationTransferredNonCash contextRef="c-13" decimals="0" id="f-308" unitRef="usd">1647704</tgen:AssetAcquisitionConsiderationTransferredNonCash>
    <us-gaap:NatureOfOperations contextRef="c-1" id="f-309">Nature of Business and Operations&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Tecogen Inc. (together with its subsidiaries "we", "our", "us", "Tecogen", or "Company"), a Delaware Corporation, was incorporated on September 15, 2000, and acquired the assets and liabilities of the Tecogen Products division of Thermo Power Corporation. We produce commercial and industrial, natural-gas-fueled engine-driven, combined heat and power (CHP) products that reduce energy costs, decrease greenhouse gas emissions and alleviate congestion on the national power grid. Our products supply electric power or mechanical power for cooling, while heat from the engine is recovered and purposefully used at a facility. The majority of our customers are located in regions with the highest utility rates, typically California, the Midwest and the Northeast.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Our operations are comprised of three business segments. Our Products segment designs, manufactures and sells industrial and commercial cogeneration systems as described above. Our Services segment provides operation and maintenance services to customers for our products.  Our Energy Production segment sells energy in the form of electricity, heat, hot water and cooling to our customers under long-term sales agreements. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Liquidity, Going Concern and Management's Plans&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The consolidated financial statements have been prepared in accordance with U.S. generally accepted accounting &lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;principles assuming that we will continue as a going concern, which contemplates the realization of assets and the settlement of obligations in the normal course of business. As of December&#160;31, 2024, our cash and cash equivalents were $5,405,233, compared to $1,351,270 at December&#160;31, 2023, an increase of $4,053,963. For the year ended December&#160;31, 2024 we generated $4,060,547 in cash from operations and incurred net operating losses of $4,534,087, due to lower Products sales and lower gross margin. Working capital at December&#160;31, 2024 was $5,329,650, compared to $9,822,546 at December&#160;31, 2023, a decrease of $4,492,896 and our accumulated deficit was $47,639,894. &lt;/span&gt;&lt;/div&gt;As a result of the above factors, management has performed an analysis to evaluate the entity&#x2019;s ability to continue as a going concern for one year after the financial statements issuance date. Management&#x2019;s analysis includes forecasting future revenues, expenditures and cash flows, taking into consideration past performance as well as key initiatives recently undertaken. Our forecasts are dependent on our ability to maintain margins based on the Company's ability to close on new and expanded business, leverage existing working capital, and effectively manage expenses. New and expanded business includes the sale and shipment of newly developed hybrid-drive air-cooled chillers, increased services revenue due to the acquisition of additional maintenance contracts in February 2024 and April 2024, and the anticipated expansion of markets served by our chiller products into the data center market, which is currently experiencing power constraints. Our backlog at December&#160;31, 2024 was $12,336,248, which is an increase of $4,948,103 from the December&#160;31, 2023 backlog. Based on management's analysis, we believe that cash flows from operations  will be sufficient to fund operations over the next twelve months.</us-gaap:NatureOfOperations>
    <us-gaap:NumberOfOperatingSegments contextRef="c-1" decimals="0" id="f-310" unitRef="segment">3</us-gaap:NumberOfOperatingSegments>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue contextRef="c-5" decimals="0" id="f-311" unitRef="usd">5405233</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue contextRef="c-5" decimals="0" id="f-312" unitRef="usd">5405233</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue contextRef="c-6" decimals="0" id="f-313" unitRef="usd">1351270</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect contextRef="c-1" decimals="0" id="f-314" unitRef="usd">4053963</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect>
    <us-gaap:NetCashProvidedByUsedInOperatingActivities contextRef="c-1" decimals="0" id="f-315" unitRef="usd">4060547</us-gaap:NetCashProvidedByUsedInOperatingActivities>
    <us-gaap:OperatingIncomeLoss contextRef="c-1" decimals="0" id="f-316" unitRef="usd">-4534087</us-gaap:OperatingIncomeLoss>
    <tgen:WorkingCapitalNet contextRef="c-5" decimals="0" id="f-317" unitRef="usd">5329650</tgen:WorkingCapitalNet>
    <tgen:WorkingCapitalNet contextRef="c-6" decimals="0" id="f-318" unitRef="usd">9822546</tgen:WorkingCapitalNet>
    <tgen:IncreaseDecreaseInWorkingCapital contextRef="c-1" decimals="0" id="f-319" unitRef="usd">4492896</tgen:IncreaseDecreaseInWorkingCapital>
    <us-gaap:RetainedEarningsAccumulatedDeficit contextRef="c-5" decimals="0" id="f-320" unitRef="usd">-47639894</us-gaap:RetainedEarningsAccumulatedDeficit>
    <tgen:Backlog contextRef="c-5" decimals="0" id="f-321" unitRef="usd">12336248</tgen:Backlog>
    <tgen:IncreaseDecreaseInBacklog contextRef="c-1" decimals="0" id="f-322" unitRef="usd">4948103</tgen:IncreaseDecreaseInBacklog>
    <us-gaap:BasisOfPresentationAndSignificantAccountingPoliciesTextBlock contextRef="c-1" id="f-323">Summary of Significant Accounting Policies&lt;div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Principles of Consolidation and Basis of Presentation&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The financial statements have been prepared in accordance with accounting standards set by the Financial Accounting Standards Board, or FASB.  The FASB sets generally accepted accounting principles, or GAAP, to ensure financial condition, results of operations, and cash flows are consistently reported. References to GAAP issued by the FASB in these footnotes are to the FASB Accounting Standards Codification, or ASC.  We adopted the presentation requirements for noncontrolling interests required by ASC 810 Consolidation. Under ASC 810, earnings or losses attributed to the noncontrolling interests are reported as part of the consolidated earnings and not a separate component of income or expense.  &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The accompanying consolidated financial statements include our accounts and the accounts of the entities in which we have a controlling financial interest. Those entities include our wholly-owned subsidiary, American DG Energy Inc. ("ADGE"), Tecogen CHP Solutions, Inc., and a joint venture, American DG New York, LLC, or ADGNY, in which ADGE holds a 51.0% interest. As the controlling partner, all major decisions in respect of ADGNY are made by ADGE in accordance with the joint venture agreement. The interests in the individual underlying energy system projects in ADGNY vary between ADGE and its joint venture partner. The noncontrolling interest and distributions are determined based on economic ownership. The economic ownership is calculated by the amount invested by us and the noncontrolling partner in each site. Each quarter, we calculate a year-to-date profit/loss for each site that is part of ADGNY and the noncontrolling interest percent of economic ownership in each site is applied to determine the noncontrolling interest share in the profit/loss. The same methodology is used to determine quarterly distributions of available cash to the noncontrolling interest partner. On our balance sheet, noncontrolling interest represents the joint venture partner&#x2019;s investment in ADGNY, plus its share of after-tax profits less any cash distributions. ADGE owned a controlling 51.0% legal and economic interest in ADGNY as of December&#160;31, 2024. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Investments in partnerships and companies in which we do not have a controlling financial interest but where we have significant influence, if any, are accounted for under the equity method.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Noncontrolling interests in the net assets and operations of ADGNY are reflected in the caption &#x201c;Noncontrolling interest&#x201d; in the accompanying consolidated financial statements.  All intercompany transactions have been eliminated. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Use of Estimates&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The preparation of financial statements in conformity with accounting principles generally accepted in the United States of America requires management to make estimates and assumptions that affect the reported amounts of assets and liabilities and disclosure of contingent assets and liabilities at the date of the financial statements and the reported amounts of revenues and expenses during the reporting period.  Actual results could differ from those estimates.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Reclassification of Prior Year Presentation&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Certain prior year amounts have been reclassified for consistency with the current year presentation. These reclassifications had no effect on the reported results of operations.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Concentration of Credit Risk&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Financial instruments that expose us to concentrations of credit risk consist primarily of cash and cash equivalents and accounts receivable.  We maintain our cash balances in bank accounts, which at times may exceed the Federal Deposit Insurance Corporation&#x2019;s ("FDIC") general deposit insurance limits.  The amount on deposit at December&#160;31, 2024 and 2023 which exceeded the $250,000 federally insured limit were approximately $4,954,395 and $1,009,094, respectively.  We have not experienced any losses in such accounts and thus believe that we are not exposed to any significant credit risk on cash.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;There was no customer who represented 10% of revenues for the years ended December&#160;31, 2024 and December&#160;31, 2023. There was one customer who represented 12% of the accounts receivable balance as of December&#160;31, 2024, and one customers who represented 14% of the accounts receivable balance as of December&#160;31, 2023.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Cash and Cash Equivalents&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We consider all highly liquid instruments with an original maturity date of three months or less when purchased to be cash and cash equivalents. We have cash balances in certain financial institutions in amounts which occasionally exceed current FDIC limits. The financial stability of these institutions is continually reviewed by senior management. We believe that we are not exposed to any significant credit risk on cash and cash equivalents.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Accounts Receivable&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;On January 1, 2023, we adopted ASU 2016-13, &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Financial Instruments, Credit Losses (Topic 326)&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;. Accounts receivable are stated at the amount management expects to collect from outstanding balances. The allowance for credit losses is estimated based on historical experience, aging of the receivable, the counterparty&#x2019;s ability to pay, condition of general economy and industry, and &lt;/span&gt;&lt;span style="color:#2d2d2d;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;combined with management's estimate of current conditions, reasonable and supportable forecasts of future losses to determine estimated credit losses in our&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; evaluation of outstanding accounts receivable at the end of the year. The allowance for credit losses reflects management's evaluation of our outstanding accounts receivable at the end of the year and our best estimate of probable losses inherent in the accounts receivable balance. Accounts receivable deemed uncollectible are charged against the allowance for credit losses when identified. Our provision for credit losses decreased to $146,010 in the year ended December&#160;31, 2024, compared to $902,432 in the year ended December&#160;31, 2023, due to the write down of certain install receivables which were deemed uncollectible in the year ended December&#160;31, 2023. At December&#160;31, 2024 and 2023, the allowance for credit losses was $295,932 and $149,992, respectively.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Inventory&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Raw materials, work in process, and finished goods inventories are stated at the lower of cost, as determined by the average cost method, or net realizable value.  We periodically review inventory quantities on hand for excess and/or obsolete inventory based primarily on historical usage, as well as based on estimated forecast of product demand and anticipated usage.  Any reserves that result from this review are charged to cost of sales.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Property, Plant and Equipment&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Property, plant and equipment are recorded at cost. Depreciation is provided using the straight-line method over the estimated useful life of the asset, which range from &lt;span style="-sec-ix-hidden:f-343"&gt;three&lt;/span&gt; to fifteen years.  Leasehold improvements are amortized using the straight-line method over the lesser of the estimated useful lives of the assets or the term of the related leases.  Expenditures for maintenance and repairs are expensed, while renewals and betterments that materially extend the life of an asset are capitalized.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We review our property, plant and equipment for potential impairment whenever events or changes in business circumstances indicate that the carrying value of the assets may not be fully recoverable or that the useful lives of the assets are &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;no longer appropriate. We evaluate the recoverability of our long-lived assets when impairment is indicated by comparing the net book value of the asset group to the estimated future undiscounted cash flows attributable to such assets. If the sum of the projected undiscounted cash flows (excluding interest charges) is less than the carrying value of the assets, the assets will be written down to the estimated fair value and such loss is recognized in income from continuing operations in the period in which the determination is made. If impairment is indicated, the asset is written down to its estimated fair value. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Intangible Assets&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Intangible assets subject to amortization include costs incurred by us to acquire product certifications, certain patent costs, developed technologies, and customer contracts.  These costs are amortized on a straight-line basis over the estimated economic life of the intangible asset.  Indefinite life intangible assets such as trademarks are recorded at cost and not amortized. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The favorable contract asset which relates to existing ADGE customer contracts is more fully described in Note 8. "Intangible Assets and Liabilities other than Goodwill". Customer contracts are more fully described in Note 5. "Aegis Contract and Related Asset Acquisition".  &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Impairment of Long-lived Assets&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Long-lived assets, including intangible assets and property, plant and equipment, are evaluated for impairment whenever events or changes in circumstances have indicated that an asset may not be recoverable and are grouped with other assets to the lowest level for which identifiable cash flows are largely independent of the cash flows of other groups of assets and liabilities.  If the sum of the projected undiscounted cash flows (excluding interest charges) is less than the carrying value of the assets, the assets will be written down to the estimated fair value and such loss is recognized in income from continuing operations in the period in which the determination is made. Management determined that no impairment of long-lived assets existed as of December&#160;31, 2024 and 2023, respectively.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;padding-left:36pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Business Combinations&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In accordance with applicable accounting standards, we estimate the fair value of assets acquired and liabilities assumed as of the acquisition date of each business combination. Any excess purchase price over the fair value of the net tangible and intangible assets acquired is allocated to goodwill. We may make certain estimates and assumptions when determining the fair values of assets acquired and liabilities assumed, including intangible assets. Critical estimates in valuing certain intangible assets include but are not limited to future expected cash flows from energy production sites or customer maintenance contracts, estimated operating costs, as well as discount rates. At the acquisition date, we will also record acquisition related liabilities, if applicable, for any contingent consideration or deferred payments to the seller and pre-acquisition deferred maintenance contingencies identified at service contract acquisition. Contingent consideration and pre-acquisition deferred maintenance contingencies are recorded at fair value on the acquisition date based on our expectation of achieving the contractually defined revenue targets and actual and projected future costs. The fair value of the contingent consideration and pre-acquisition deferred maintenance liabilities are remeasured each reporting period after the acquisition date and any changes in the estimated fair value are reflected as gains or losses in cost of goods sold or general and administrative expense in the consolidated statement of operations. Contingent consideration liabilities and deferred payments to sellers are recorded as current liabilities and other long-term liabilities in the consolidated balance sheets based on the expected timing of settlement.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Management&#x2019;s estimates of fair value are based upon assumptions believed to be reasonable, but which are inherently uncertain and unpredictable and, as a result, actual results may differ from estimates. Any changes to provisional amounts identified during the measurement period are recognized in the reporting period in which the adjustment amounts are determined. Transaction costs associated with business combinations are expensed as incurred.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Goodwill&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Goodwill is the excess of the fair value of consideration paid for businesses over the fair value of the identifiable net assets acquired. Impairment testing for goodwill is performed annually, generally in the fourth fiscal quarter, or more frequently if impairment indicators are present. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;To determine if goodwill is potentially impaired, we have the option to perform a qualitative assessment. However, we may elect to bypass the qualitative assessment and perform an impairment test even if no indications of a potential impairment exist. The impairment test for goodwill is performed at the reporting unit level and compares the fair value of the reporting unit (calculated using a discounted cash flow method) to its carrying value, including goodwill.  The discount rate represents our estimate of the weighted-average cost of capital, or expected return, that a marketplace participant would have required as of the valuation date. If the carrying value exceeds the fair value, an impairment charge is recorded for the excess carrying value over fair value, limited to the total amount of goodwill of that reporting unit. For 2024, we assessed goodwill impairment of our energy production reporting unit and our Aegis service maintenance contracts reporting unit.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We used a discounted cash flow approach to develop the estimated fair value of each reporting unit. Management &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;judgment is required in developing the assumptions for the discounted cash flow model. The discount rate, profitability assumptions, and terminal growth rate assumptions of the Energy Production unit utilized in the discounted cash flow model used to estimate its fair value are specific to the Energy Production unit, which the discount rate, profitability assumptions, and terminal growth rate assumptions utilized for the Aegis service maintenance reporting unit are specific to the Aegis service maintenance reporting. An impairment would be recorded if the carrying amount of a reporting unit including goodwill exceeded the estimated fair value. Based on the aforementioned analysis, our assessment in 2024 indicated that the carrying  value of our energy production reporting unit exceeded their fair value and therefore goodwill was impaired. We recorded a goodwill impairment charge of $217,295 in our Consolidated Financial Statements. Our assessment of the Aegis service maintenance contracts reporting unit, at December&#160;31, 2024, indicated that the carrying value of the service maintenance contracts did not exceed their fair value and therefore goodwill was not impaired. (see Note 10."Goodwill").&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We adopted the provisions of ASU 2017-04, during 2018, which simplified the impairment testing process by eliminating the requirement to determine the implied fair value of goodwill. We test goodwill for impairment on either a qualitative basis under certain conditions, or a quantitative basis. On a quantitative basis, fair value of the reporting units is primarily determined using a probability weighted discounted cash flow analysis.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Acquisition-Related Contingent Consideration&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Acquisition-related contingent consideration, which primarily consists of contingent consideration payable obligations, equal to a percentage of the revenue collected for maintenance services pursuant to the Aegis contract and related asset acquisitions, was recorded in the Consolidated Balance Sheets at its acquisition date estimated fair value, in accordance with the acquisition method of accounting. The fair value of the acquisition-related contingent consideration is remeasured each reporting period, with changes in fair value recorded in the Consolidated Statements of Operations. The fair value measurement of contingent consideration obligations arising from business combinations is determined via a probability-weighted discounted cash flow analysis, using unobservable (Level 3) inputs. These inputs may include: (i) the estimated amount and timing of projected cash flows, (ii) the probability of the achievement of the factor(s) on which the contingency is based and (iii) the risk-adjusted discount rate used to present value the probability-weighted cash flows. Significant increases or decreases in any of those inputs in isolation could result in a significantly higher or lower fair value measurement.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Leases&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;On January 1, 2019, we adopted the guidance under ASU No. 2016-02, &#x201c;Leases&#x201d; ("ASC 842&#x201d;). ASC 842 requires lessees to recognize most leases on their balance sheets as a right-of-use ("ROU") asset with a corresponding lease liability. ROU assets represent our right to use an underlying asset for the lease term and lease liabilities represent our obligation to make lease payments arising from the lease. Lease ROU assets and liabilities are recognized at lease commencement date based on the present value of lease payments over the expected lease term. See Note 14."Leases". &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Income (loss) per Common Share&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We compute basic income (loss) per share by dividing net income (loss) for the period by the weighted-average number of shares of common stock outstanding during the period.  We compute our diluted earnings (loss) per common share using the treasury stock method.  For purposes of calculating diluted earnings per share, we consider our shares issuable in connection with convertible debentures, stock options and warrants to be dilutive common stock equivalents when the exercise/conversion price is less than the average market price of our common stock for the period. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Segment Information&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Our operations are comprised of three business segments. Our Products segment designs, manufactures and sells industrial and commercial cogeneration systems as described above. Our Services segment installs and maintains our cogeneration systems. Our Energy Production segment sells energy in the form of electricity, heat, hot water and cooling to our customers under long-term sales agreements. Segment profit is based on operating income after the elimination of intercompany transactions. Segment profit is a measure of operating performance of our reportable segments and may not be comparable to similar measures reported by other companies. Segment profit is a performance metric utilized by our Chief Executive Officer, who is our Chief Operating Decision Maker, to allocate resources to and access performance of our segments. See Note 18. "Segments" for a reconciliation of segment profit to income from operations.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Income Taxes&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We use the asset and liability method of accounting for income taxes.  The current or deferred tax consequences of transactions are measured by applying the provisions of enacted tax laws to determine the amount of taxes payable currently or in future years.  Deferred tax assets and liabilities are determined based on the difference between the financial statement and tax bases of assets and liabilities and expected future tax consequences of events that have been included in the financial statements or tax returns using enacted tax rates in effect for the years in which the differences are expected to reverse.  Under this method, a valuation allowance is used to offset deferred taxes if, based upon the available evidence, it is more likely than &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;not that some or all of the deferred tax assets may not be realized.  Management evaluates the recoverability of deferred taxes and the adequacy of the valuation allowance annually.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We have adopted the provisions of the accounting standards relative to accounting for uncertainties in tax positions. These provisions provide guidance on the recognition, derecognition and measurement of potential tax benefits associated with tax positions.  We elected to recognize interest and penalties related to income tax matters as a component of income tax expense in the statements of operations.  We have analyzed our current tax return compliance positions and determined that no uncertain tax positions have been taken that would require recognition.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;With few exceptions, we are no longer subject to possible income tax examinations by federal, state or local taxing authorities for tax years before 2021, with the exception of loss carryforwards in the event they are utilized in future years.  Our  tax returns are open to adjustment from 2001 forward, as a result of the fact that the we have loss carryforwards from those years, which may be adjusted in the year those losses are utilized.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Fair Value of Financial Instruments&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Our financial instruments are cash and cash equivalents, accounts receivable, available-for-sale securities and accounts payable.  The recorded values of cash and cash equivalents, accounts receivable and accounts payable approximate their fair values based on their short-term nature. See Note 16. "Fair Value Measurements".&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Revenue Recognition&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Revenue is recognized when performance obligations under the terms of a contract with our customer are satisfied; generally, this occurs with the transfer of control of our products, services and energy production. Revenue is measured as the amount of consideration we expect to receive in exchange for transferring goods or providing services or energy to customers. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Shipping and handling fees billed to customers in a sales transaction are recorded in revenue for goods provided. were $96,890 and $174,662, for the years ended December&#160;31, 2024 and 2023, respectively. The related shipping and handling costs incurred are accounted for as fulfillment activities and are recognized as cost of goods sold when control of the product transfers to the customer, which were $59,331 and $79,616, for the years ended December&#160;31, 2024 and 2023, respectively. The costs of inbound freight is recorded in general and administrative expenses. For the years ended December&#160;31, 2024 and 2023, $248,229 and $427,880 of shipping and handling costs were included in general and administrative expenses in the accompanying consolidated statements of operations, respectively. We elected to exclude from revenue any value-add sales and other taxes which we collect concurrent with revenue-producing activities. These accounting policy elections are consistent with the manner in which we have historically recorded shipping and handling fees and taxes. Incremental costs incurred by us in obtaining a contract with a customer are negligible, if any, and are expensed ratably in proportion to the related revenue recognized.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Advertising Costs&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We expense the costs of advertising as incurred.  For the years ended December&#160;31, 2024 and 2023, advertising expense was approximately $74,000 and $80,000, respectively.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Research and Development Costs&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Research and development expenditures are expensed as incurred.  Our total research and development expenditures were approximately $962,000 and $840,000 for the years ended December&#160;31, 2024 and 2023, respectively. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Stock-Based Compensation&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Stock-based compensation cost is measured at the grant date, based on the estimated fair value of the award, and is recognized as an expense in the statements of operations over the requisite service period.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The determination of the fair value of share-based payment awards is affected by our stock price.  For the awards issued prior to our being publicly traded, we considered the sales price of the common stock in private placements to unrelated third parties as a measure of the fair value of our common stock.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We utilize actual forfeitures when calculating the expense for the period. Stock-based compensation expense recognized is based on awards that are ultimately expected to vest.  We evaluate the assumptions used to value awards regularly and if factors change and different assumptions are employed, stock-based compensation expense may differ significantly from what has been recorded in the past.  If there are any modifications or cancellations of the underlying unvested securities, we may be required to accelerate, increase or cancel any remaining unearned stock-based compensation expense.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;See Note 15."Stockholders' Equity" for a summary of the restricted stock and stock option activity under our stock-based employee compensation plan for the years ended December&#160;31, 2024, and 2023. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%"&gt;Disaggregated Revenue&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In general, our business segmentation is aligned according to the nature and economic characteristics of our products and customer relationships and provides meaningful disaggregation of each business segment's results of operations. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table further disaggregates our revenue by major source by segment for the years ended December&#160;31, 2024 and 2023.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:center;text-indent:36pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:401.25pt"&gt;&lt;tr&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:193.00pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.75pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:97.75pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.00pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:97.75pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:14pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="9" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Years Ended&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:14pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;December 31, 2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:14pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Products:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:14pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Cogeneration&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,677,930&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,761,667&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:14pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Chiller&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,647,374&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;5,303,978&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:14pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Engineered Accessories&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;118,692&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;794,301&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:14pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Total Products Revenue&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4,443,996&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;8,859,946&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:14pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Services&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;16,074,870&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;14,523,054&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:14pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Energy production&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,100,670&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,756,419&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:14pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Total revenue&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;22,619,536&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;25,139,419&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%"&gt;Products Segment&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Our Product revenues include cogeneration systems that supply electricity and hot water, chillers that provide air-conditioning and hot water and engineered accessories, which consist of ancillary products and parts necessary to install a cogeneration unit including integration into the customers&#x2019; existing electrical and mechanical systems. We refer to the package of engineered accessories and engineering and design services necessary for the customers' installation of a cogeneration unit as light installation services.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We transfer control and generally recognize a sale when we ship a product from our manufacturing facility at which point the customer takes ownership of the product. Payment terms on product sales are generally 30 days. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We recognize revenue in certain circumstances before delivery to the customer has occurred (commonly referred to as bill and hold transactions). We recognize revenue related to such transactions once, among other things, the customer has made a written fixed commitment to purchase the product(s) under normal billing and credit terms, the customer has requested the product(s) be held for future delivery as scheduled and designated by them, risk of ownership has been assumed by the customer, and the product(s) are tagged as sold and segregated for storage awaiting further direction from the customer. Due to the infrequent nature and duration of bill and hold arrangements, the value associated with custodial storage services is deemed immaterial in the context of the contract and in total, and accordingly, none of the transaction price is allocated to such service.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Depending on the product and terms of the arrangement, we may defer the recognition of a portion of the transaction price received because we have to satisfy a future obligation (e.g., product start-up service). Amounts allocated to product start-up services are recognized as revenue when the start-up service has been completed. We use an observable selling price to determine standalone selling prices where available and either a combination of an adjusted market assessment approach, an expected cost plus a margin approach, and/or a residual approach to determine the standalone selling prices for separate performance obligations as a basis for allocating contract consideration when an observable selling price is not available. Amounts received but not recognized pending completion of performance are recognized as contract liabilities and are recorded as deferred revenue along with deposits by customers. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%"&gt;Services Segment&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Maintenance services are provided under either long-term maintenance contracts or time and material maintenance contracts. Revenue under time and material maintenance contracts is recognized when the maintenance service is completed. Revenue under long-term maintenance contracts is recognized either ratably over the term of the contract where the contract price is fixed or when the periodic maintenance activities are completed and the invoiced cost to the customer is based on run hours or kilowatts produced in a given period. We use an output method to measure progress towards completion of our performance obligation which results in the recognition of revenue on the basis of a direct measurement of the value to the customer of the services transferred to date relative to the remaining services promised under the contract. We use the practical expedient at ASC 606-10-55-18 of recognizing revenue in an amount equal to the amount we have the right to invoice the customer under the contract. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Our initial acquisition of the Aegis maintenance contracts and related business closed on March 15, 2023. We have included the financial results of the Aegis maintenance agreements in our consolidated financial statements from April 1, 2023, from February 1, 2024 and from May 1, 2024, the closing or acquisition dates for the acquisitions in our revenue from the Services segment. Payment terms for maintenance services are generally 30 days.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%"&gt;Energy Production Segment&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Revenue from energy contracts is recognized when electricity, heat, hot and/or chilled water is produced by our owned on-site cogeneration systems. Each month we bill the customer and recognize revenue for the various forms of energy delivered, based on meter readings which capture the quantity of the various forms of energy delivered in a given month, under a contractually defined formula which takes into account the current month's cost of energy from the local power utility. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;As the various forms of energy delivered by us under energy production contracts are simultaneously delivered and consumed by the customer, our performance obligation under these contracts is considered to be satisfied over time. We use an output method to measure progress towards completion of our performance obligation which results in the recognition of revenue on the basis of a direct measurement of the value to the customer of the services transferred to date relative to the remaining services promised under the contract. We use the practical expedient at ASC 606-10-55-18 of recognizing revenue in an amount equal to that amount to which we have the right to invoice the customer under the contract. Payment terms on invoices under these contracts are generally 30 days. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%"&gt;Contract Balances&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The timing of revenue recognition, billings and cash collections result in billed accounts receivable, unbilled revenue (contract assets) and deferred revenue, consisting of customer deposits and billings in excess of revenue recognized (contract liabilities) on the consolidated balance sheets.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We did not recognize any revenue during the year ended December&#160;31, 2024 that was included in the unbilled revenue receivable as of December&#160;31, 2024. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Revenue recognized during the year ended December&#160;31, 2024 that was included in deferred revenue at the beginning of the period was $662,730.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%"&gt;Remaining Performance Obligations&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Remaining performance obligations related to ASC 606 represent the aggregate transaction price allocated to performance obligations with an original contract term greater than one year, excluding certain maintenance contracts and all energy production contracts where a direct measurement of the value to the customer is used as a method of measuring progress towards completion of our performance obligation. Exclusion of these remaining performance obligations is due in part to the inability to quantify values based on unknown future levels of delivery and in some cases rates used to bill customers. Remaining performance obligations therefore consist of unsatisfied or partially satisfied performance obligations related to fixed price maintenance contracts and installation contracts. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;As of December&#160;31, 2024, the aggregate amount of the transaction price allocated to remaining unsatisfied performance obligations was approximately $7,867,082. We expect to recognize revenue of approximately 84% of the remaining performance obligations over the next 24 months, 82% recognized in the first 12 months and 2%&#160;recognized over the subsequent 12 months, and the remainder recognized thereafter.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%"&gt;Significant New Accounting Standards Adopted this Period &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;New accounting standards adopted in the year ended December&#160;31, 2023.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Financial Instruments, Credit Losses (Topic 326)&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;. In June 2016, the Financial Accounting Standards Board issued ASU No. 2016-13, &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Financial Instruments, Credit Losses (Topic 326)&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;, which was subsequently amended by ASUs 2018-19, 2019-04, 2019-05, 2019-11, and 2020-03. Topic 326 replaces the existing incurred loss impairment model with a methodology that incorporates all expected credit loss estimates, resulting in more timely recognition of losses. Under Topic 326, we are required to measure all expected credit losses for financial assets held at the reporting date based on historical experience, current conditions, and reasonable and supportable forecasts that affect the collectability of the reported financial assets. It also requires credit losses related to available-for-sale debt securities to be recorded through an allowance for credit losses. We adopted Topic 326 on January 1, 2023 on a modified retrospective basis. The adoption did not have a material effect on our consolidated financial statements. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;New accounting standards adopted in the year ended December&#160;31, 2024.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Segment Reporting (Topic 280) - Improvements to Reportable Segment Disclosure&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;s. In November 2023, the Financial Accounting Standards Board issued ASU 2023-07, &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Segment Reporting (Topic 280) - Improvements to Reportable Segment Disclosures&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;. The new standard requires enhanced disclosures about a public entity's reportable segments including more detailed information about a reportable segment's expenses. The amendments in this update apply to all public entities that are required to report segment information, and include those entities that have a single reportable segment. The amendments in this update are effective for fiscal years beginning after December 15, 2023, and interim periods within fiscal years beginning after December 15, 2024. Early adoption is permitted. We adopted Topic 280 on January 1, 2024. Retrospective application is &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;required for all periods presented in the financial statements. The adoption of Topic 280 did not have a material effect on our consolidated financial statements, other than with respect to expanded disclosure.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%"&gt;Recently Issued Accounting Pronouncements&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Income Taxes (Topic 740) - Improvements to Income Tax Disclosure&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;s. In December 2023, the Financial Accounting Standards Board issued ASU 2023-09, &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Income Taxes (Topic 740) - Improvements to Income Tax Disclosures&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;. ASU 2023-09 provides more transparency about income tax information through improvements to income tax disclosures primarily related to the rate reconciliation and income taxes paid information. The amendments in this update are effective for annual periods beginning after December 15, 2024. Early adoption is permitted. The adoption of Topic 740 will not have a material effect on our consolidated financial statements, other than with respect to expanded disclosure.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Compensation - Stock Compensation (Topic 718) - &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In March 2024, the Financial Accounting Standards Board Issued ASU 2024-01, &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Compensation - Stock Compensation (Topic 718)&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;. ASU 2024-01 addresses generally accepted accounting principles relating to profits interest awards and similar awards provided to employees or non-employees to align compensation with an entity's operating performance and provide the holders with the opportunity to participate in future profits and/or equity appreciation of the entity. Since profits interest holders only participate in future profits and/or equity appreciation and have no rights to the existing assets of the entity, a profits interest award should be accounted for as a share-based compensation arrangement (Topic 718) or similar to a cash bonus or profit-sharing arrangement (Topic 710). The amendments in this update apply to all entities that enter into share-based payment transactions and are effective for annual periods beginning after December 15, 2024 and interim periods for those annual periods. Early adoption is permitted for both interim and annual periods that have not yet been issued or made available for issuance. If adopted in an interim period, the Update should be adopted as of the beginning of the annual period that includes the interim period. The amendments can be applied retrospectively to all prior periods presented in the financial statements or prospectively to profits interest and similar awards granted or modified on or after the date the entity first applies the amendments. If applied retrospectively,  the entity is required to provide disclosures in paragraphs 250-10-50-1 through 50-3. If applied prospectively, the entity is required to disclose the nature and reason for the change in accounting principle. ASU 2024-01 may apply to Tecogen should we issue profits interest awards after December 15, 2024, adoption of which we believe will not have a material effect on our financial position or results of operation.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Codification Improvements &#x2013; Amendments to Remove References to the Concepts Statements&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;. In March 2024, the Financial Accounting Standards Board Issued ASU 2024-02, &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Codification Improvements &#x2013; Amendments to Remove References to the Concepts Statements&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;. ASU 2024-02 contains amendments to the Codification that remove references to various FASB Concept Statements, affecting a variety of Topics in the Codification and applies to all reporting entities. The amendments in this update are effective for public entities for fiscal years beginning after December 31, 2024. Early application of the amendments in this update are permitted for any fiscal year or interim period for which financial statements have not yet been issued or made available for issuance. If adopted in an interim period, the amendment must be adopted as of the beginning of the fiscal years that includes the interim period. An entity should apply the amendments prospectively to all new transactions recognized on or after the date that the entity first applies the amendments, or retrospectively to the beginning of the earliest comparative period presented in which the amendments were first applied, by adjusting the opening balance of retained earnings, or other appropriated components of equity or net assets, as of the beginning of the earliest comparative period presented. ASU 2024-02 will apply to Tecogen after December 15, 2024, adoption of which we believe will not have a material effect on our financial position or results of operation.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt; Income Statement &#x2013; Reporting Comprehensive Income &#x2013; Expense Disaggregation Disclosures (Subtopic 220-40). &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In November 2024, the Financial Accounting Standards Board Issued ASU 2024-03 &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Income Statement- Reporting Comprehensive Income &#x2013; Expense Disaggregation Disclosures (Subtopic 220-40)&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;. This update is intended to improve disclosures about public entity&#x2019;s expenses and will require more detailed information about types of expenses including inventory purchases, employee compensation, depreciation, amortization and depletion in commonly presented captions such as cost of sales, SG&amp;amp;A and research and development. In addition, an entity will be required to include certain amounts that are already disclosed under GAAP in the same disclosure as the other disaggregation requirements; disclose a qualitative description of the amounts remaining in expense captions not separately disaggregated quantitatively; and, disclose the amount of selling expense and, in annual reporting periods, the entity&#x2019;s definition of selling expenses. The amendments are effective for annual reporting periods beginning after December 15, 2026, and interim reporting periods beginning after December 15, 2027. Early adoption is permitted. The amendments should be applied prospectively to the financial statements after the effective date and retrospectively to any and all prior periods presented in the financial statements. ASU 2024-03 will apply to Tecogen after December 15, 2026, adoption of which will not have a material effect on our financial position or results of operation, but will require additional disclosure.&lt;/span&gt;&lt;/div&gt;</us-gaap:BasisOfPresentationAndSignificantAccountingPoliciesTextBlock>
    <tgen:PrinciplesOfConsolidationAndBasisOfPresentationPolicyTextBlock contextRef="c-1" id="f-324">&lt;div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Principles of Consolidation and Basis of Presentation&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The financial statements have been prepared in accordance with accounting standards set by the Financial Accounting Standards Board, or FASB.  The FASB sets generally accepted accounting principles, or GAAP, to ensure financial condition, results of operations, and cash flows are consistently reported. References to GAAP issued by the FASB in these footnotes are to the FASB Accounting Standards Codification, or ASC.  We adopted the presentation requirements for noncontrolling interests required by ASC 810 Consolidation. Under ASC 810, earnings or losses attributed to the noncontrolling interests are reported as part of the consolidated earnings and not a separate component of income or expense.  &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The accompanying consolidated financial statements include our accounts and the accounts of the entities in which we have a controlling financial interest. Those entities include our wholly-owned subsidiary, American DG Energy Inc. ("ADGE"), Tecogen CHP Solutions, Inc., and a joint venture, American DG New York, LLC, or ADGNY, in which ADGE holds a 51.0% interest. As the controlling partner, all major decisions in respect of ADGNY are made by ADGE in accordance with the joint venture agreement. The interests in the individual underlying energy system projects in ADGNY vary between ADGE and its joint venture partner. The noncontrolling interest and distributions are determined based on economic ownership. The economic ownership is calculated by the amount invested by us and the noncontrolling partner in each site. Each quarter, we calculate a year-to-date profit/loss for each site that is part of ADGNY and the noncontrolling interest percent of economic ownership in each site is applied to determine the noncontrolling interest share in the profit/loss. The same methodology is used to determine quarterly distributions of available cash to the noncontrolling interest partner. On our balance sheet, noncontrolling interest represents the joint venture partner&#x2019;s investment in ADGNY, plus its share of after-tax profits less any cash distributions. ADGE owned a controlling 51.0% legal and economic interest in ADGNY as of December&#160;31, 2024. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Investments in partnerships and companies in which we do not have a controlling financial interest but where we have significant influence, if any, are accounted for under the equity method.&lt;/span&gt;&lt;/div&gt;Noncontrolling interests in the net assets and operations of ADGNY are reflected in the caption &#x201c;Noncontrolling interest&#x201d; in the accompanying consolidated financial statements.  All intercompany transactions have been eliminated.</tgen:PrinciplesOfConsolidationAndBasisOfPresentationPolicyTextBlock>
    <tgen:PercentageOfOwnedJointVenture contextRef="c-5" decimals="3" id="f-325" unitRef="number">0.510</tgen:PercentageOfOwnedJointVenture>
    <tgen:PercentageOfOwnedJointVenture contextRef="c-5" decimals="3" id="f-326" unitRef="number">0.510</tgen:PercentageOfOwnedJointVenture>
    <us-gaap:UseOfEstimates contextRef="c-1" id="f-327">&lt;div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Use of Estimates&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The preparation of financial statements in conformity with accounting principles generally accepted in the United States of America requires management to make estimates and assumptions that affect the reported amounts of assets and liabilities and disclosure of contingent assets and liabilities at the date of the financial statements and the reported amounts of revenues and expenses during the reporting period.  Actual results could differ from those estimates.&lt;/span&gt;&lt;/div&gt;</us-gaap:UseOfEstimates>
    <us-gaap:PriorPeriodReclassificationAdjustmentDescription contextRef="c-1" id="f-328">&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Reclassification of Prior Year Presentation&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Certain prior year amounts have been reclassified for consistency with the current year presentation. These reclassifications had no effect on the reported results of operations.&lt;/span&gt;&lt;/div&gt;</us-gaap:PriorPeriodReclassificationAdjustmentDescription>
    <us-gaap:ConcentrationRiskCreditRisk contextRef="c-1" id="f-329">&lt;div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Concentration of Credit Risk&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Financial instruments that expose us to concentrations of credit risk consist primarily of cash and cash equivalents and accounts receivable.  We maintain our cash balances in bank accounts, which at times may exceed the Federal Deposit Insurance Corporation&#x2019;s ("FDIC") general deposit insurance limits.  The amount on deposit at December&#160;31, 2024 and 2023 which exceeded the $250,000 federally insured limit were approximately $4,954,395 and $1,009,094, respectively.  We have not experienced any losses in such accounts and thus believe that we are not exposed to any significant credit risk on cash.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;There was no customer who represented 10% of revenues for the years ended December&#160;31, 2024 and December&#160;31, 2023. There was one customer who represented 12% of the accounts receivable balance as of December&#160;31, 2024, and one customers who represented 14% of the accounts receivable balance as of December&#160;31, 2023.&lt;/span&gt;&lt;/div&gt;</us-gaap:ConcentrationRiskCreditRisk>
    <us-gaap:CashFDICInsuredAmount contextRef="c-5" decimals="INF" id="f-330" unitRef="usd">250000</us-gaap:CashFDICInsuredAmount>
    <us-gaap:CashUninsuredAmount contextRef="c-5" decimals="0" id="f-331" unitRef="usd">4954395</us-gaap:CashUninsuredAmount>
    <us-gaap:CashUninsuredAmount contextRef="c-6" decimals="0" id="f-332" unitRef="usd">1009094</us-gaap:CashUninsuredAmount>
    <us-gaap:ConcentrationRiskPercentage1 contextRef="c-34" decimals="3" id="f-333" unitRef="number">0.12</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1 contextRef="c-35" decimals="3" id="f-334" unitRef="number">0.14</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:CashAndCashEquivalentsPolicyTextBlock contextRef="c-1" id="f-335">&lt;div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Cash and Cash Equivalents&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We consider all highly liquid instruments with an original maturity date of three months or less when purchased to be cash and cash equivalents. We have cash balances in certain financial institutions in amounts which occasionally exceed current FDIC limits. The financial stability of these institutions is continually reviewed by senior management. We believe that we are not exposed to any significant credit risk on cash and cash equivalents.&lt;/span&gt;&lt;/div&gt;</us-gaap:CashAndCashEquivalentsPolicyTextBlock>
    <us-gaap:TradeAndOtherAccountsReceivablePolicy contextRef="c-1" id="f-336">&lt;div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Accounts Receivable&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;On January 1, 2023, we adopted ASU 2016-13, &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Financial Instruments, Credit Losses (Topic 326)&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;. Accounts receivable are stated at the amount management expects to collect from outstanding balances. The allowance for credit losses is estimated based on historical experience, aging of the receivable, the counterparty&#x2019;s ability to pay, condition of general economy and industry, and &lt;/span&gt;&lt;span style="color:#2d2d2d;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;combined with management's estimate of current conditions, reasonable and supportable forecasts of future losses to determine estimated credit losses in our&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; evaluation of outstanding accounts receivable at the end of the year. The allowance for credit losses reflects management's evaluation of our outstanding accounts receivable at the end of the year and our best estimate of probable losses inherent in the accounts receivable balance. Accounts receivable deemed uncollectible are charged against the allowance for credit losses when identified. Our provision for credit losses decreased to $146,010 in the year ended December&#160;31, 2024, compared to $902,432 in the year ended December&#160;31, 2023, due to the write down of certain install receivables which were deemed uncollectible in the year ended December&#160;31, 2023. At December&#160;31, 2024 and 2023, the allowance for credit losses was $295,932 and $149,992, respectively.&lt;/span&gt;&lt;/div&gt;</us-gaap:TradeAndOtherAccountsReceivablePolicy>
    <us-gaap:AllowanceForDoubtfulAccountsReceivableWriteOffs contextRef="c-1" decimals="0" id="f-337" unitRef="usd">146010</us-gaap:AllowanceForDoubtfulAccountsReceivableWriteOffs>
    <us-gaap:AllowanceForDoubtfulAccountsReceivableWriteOffs contextRef="c-13" decimals="0" id="f-338" unitRef="usd">902432</us-gaap:AllowanceForDoubtfulAccountsReceivableWriteOffs>
    <us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent contextRef="c-5" decimals="0" id="f-339" unitRef="usd">295932</us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent>
    <us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent contextRef="c-6" decimals="0" id="f-340" unitRef="usd">149992</us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent>
    <us-gaap:InventoryPolicyTextBlock contextRef="c-1" id="f-341">&lt;div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Inventory&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Raw materials, work in process, and finished goods inventories are stated at the lower of cost, as determined by the average cost method, or net realizable value.  We periodically review inventory quantities on hand for excess and/or obsolete inventory based primarily on historical usage, as well as based on estimated forecast of product demand and anticipated usage.  Any reserves that result from this review are charged to cost of sales.&lt;/span&gt;&lt;/div&gt;</us-gaap:InventoryPolicyTextBlock>
    <us-gaap:PropertyPlantAndEquipmentPolicyTextBlock contextRef="c-1" id="f-342">&lt;div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Property, Plant and Equipment&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Property, plant and equipment are recorded at cost. Depreciation is provided using the straight-line method over the estimated useful life of the asset, which range from &lt;span style="-sec-ix-hidden:f-343"&gt;three&lt;/span&gt; to fifteen years.  Leasehold improvements are amortized using the straight-line method over the lesser of the estimated useful lives of the assets or the term of the related leases.  Expenditures for maintenance and repairs are expensed, while renewals and betterments that materially extend the life of an asset are capitalized.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We review our property, plant and equipment for potential impairment whenever events or changes in business circumstances indicate that the carrying value of the assets may not be fully recoverable or that the useful lives of the assets are &lt;/span&gt;&lt;/div&gt;no longer appropriate. We evaluate the recoverability of our long-lived assets when impairment is indicated by comparing the net book value of the asset group to the estimated future undiscounted cash flows attributable to such assets. If the sum of the projected undiscounted cash flows (excluding interest charges) is less than the carrying value of the assets, the assets will be written down to the estimated fair value and such loss is recognized in income from continuing operations in the period in which the determination is made. If impairment is indicated, the asset is written down to its estimated fair value.</us-gaap:PropertyPlantAndEquipmentPolicyTextBlock>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife contextRef="c-37" id="f-344">P15Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:IntangibleAssetsFiniteLivedPolicy contextRef="c-1" id="f-345">&lt;div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Intangible Assets&lt;/span&gt;&lt;/div&gt;Intangible assets subject to amortization include costs incurred by us to acquire product certifications, certain patent costs, developed technologies, and customer contracts.  These costs are amortized on a straight-line basis over the estimated economic life of the intangible asset.  Indefinite life intangible assets such as trademarks are recorded at cost and not amortized.</us-gaap:IntangibleAssetsFiniteLivedPolicy>
    <us-gaap:ImpairmentOrDisposalOfLongLivedAssetsPolicyTextBlock contextRef="c-1" id="f-346">&lt;div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Impairment of Long-lived Assets&lt;/span&gt;&lt;/div&gt;Long-lived assets, including intangible assets and property, plant and equipment, are evaluated for impairment whenever events or changes in circumstances have indicated that an asset may not be recoverable and are grouped with other assets to the lowest level for which identifiable cash flows are largely independent of the cash flows of other groups of assets and liabilities.  If the sum of the projected undiscounted cash flows (excluding interest charges) is less than the carrying value of the assets, the assets will be written down to the estimated fair value and such loss is recognized in income from continuing operations in the period in which the determination is made.</us-gaap:ImpairmentOrDisposalOfLongLivedAssetsPolicyTextBlock>
    <us-gaap:ImpairmentOfLongLivedAssetsHeldForUse contextRef="c-13" decimals="0" id="f-347" unitRef="usd">0</us-gaap:ImpairmentOfLongLivedAssetsHeldForUse>
    <us-gaap:ImpairmentOfLongLivedAssetsHeldForUse contextRef="c-1" decimals="0" id="f-348" unitRef="usd">0</us-gaap:ImpairmentOfLongLivedAssetsHeldForUse>
    <us-gaap:BusinessCombinationsPolicy contextRef="c-1" id="f-349">&lt;div style="margin-bottom:6pt;margin-top:6pt;padding-left:36pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Business Combinations&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In accordance with applicable accounting standards, we estimate the fair value of assets acquired and liabilities assumed as of the acquisition date of each business combination. Any excess purchase price over the fair value of the net tangible and intangible assets acquired is allocated to goodwill. We may make certain estimates and assumptions when determining the fair values of assets acquired and liabilities assumed, including intangible assets. Critical estimates in valuing certain intangible assets include but are not limited to future expected cash flows from energy production sites or customer maintenance contracts, estimated operating costs, as well as discount rates. At the acquisition date, we will also record acquisition related liabilities, if applicable, for any contingent consideration or deferred payments to the seller and pre-acquisition deferred maintenance contingencies identified at service contract acquisition. Contingent consideration and pre-acquisition deferred maintenance contingencies are recorded at fair value on the acquisition date based on our expectation of achieving the contractually defined revenue targets and actual and projected future costs. The fair value of the contingent consideration and pre-acquisition deferred maintenance liabilities are remeasured each reporting period after the acquisition date and any changes in the estimated fair value are reflected as gains or losses in cost of goods sold or general and administrative expense in the consolidated statement of operations. Contingent consideration liabilities and deferred payments to sellers are recorded as current liabilities and other long-term liabilities in the consolidated balance sheets based on the expected timing of settlement.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Management&#x2019;s estimates of fair value are based upon assumptions believed to be reasonable, but which are inherently uncertain and unpredictable and, as a result, actual results may differ from estimates. Any changes to provisional amounts identified during the measurement period are recognized in the reporting period in which the adjustment amounts are determined. Transaction costs associated with business combinations are expensed as incurred.&lt;/span&gt;&lt;/div&gt;</us-gaap:BusinessCombinationsPolicy>
    <us-gaap:GoodwillAndIntangibleAssetsGoodwillPolicy contextRef="c-1" id="f-350">&lt;div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Goodwill&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Goodwill is the excess of the fair value of consideration paid for businesses over the fair value of the identifiable net assets acquired. Impairment testing for goodwill is performed annually, generally in the fourth fiscal quarter, or more frequently if impairment indicators are present. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;To determine if goodwill is potentially impaired, we have the option to perform a qualitative assessment. However, we may elect to bypass the qualitative assessment and perform an impairment test even if no indications of a potential impairment exist. The impairment test for goodwill is performed at the reporting unit level and compares the fair value of the reporting unit (calculated using a discounted cash flow method) to its carrying value, including goodwill.  The discount rate represents our estimate of the weighted-average cost of capital, or expected return, that a marketplace participant would have required as of the valuation date. If the carrying value exceeds the fair value, an impairment charge is recorded for the excess carrying value over fair value, limited to the total amount of goodwill of that reporting unit. For 2024, we assessed goodwill impairment of our energy production reporting unit and our Aegis service maintenance contracts reporting unit.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We used a discounted cash flow approach to develop the estimated fair value of each reporting unit. Management &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;judgment is required in developing the assumptions for the discounted cash flow model. The discount rate, profitability assumptions, and terminal growth rate assumptions of the Energy Production unit utilized in the discounted cash flow model used to estimate its fair value are specific to the Energy Production unit, which the discount rate, profitability assumptions, and terminal growth rate assumptions utilized for the Aegis service maintenance reporting unit are specific to the Aegis service maintenance reporting. An impairment would be recorded if the carrying amount of a reporting unit including goodwill exceeded the estimated fair value. Based on the aforementioned analysis, our assessment in 2024 indicated that the carrying  value of our energy production reporting unit exceeded their fair value and therefore goodwill was impaired. We recorded a goodwill impairment charge of $217,295 in our Consolidated Financial Statements. Our assessment of the Aegis service maintenance contracts reporting unit, at December&#160;31, 2024, indicated that the carrying value of the service maintenance contracts did not exceed their fair value and therefore goodwill was not impaired. (see Note 10."Goodwill").&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We adopted the provisions of ASU 2017-04, during 2018, which simplified the impairment testing process by eliminating the requirement to determine the implied fair value of goodwill. We test goodwill for impairment on either a qualitative basis under certain conditions, or a quantitative basis. On a quantitative basis, fair value of the reporting units is primarily determined using a probability weighted discounted cash flow analysis.&lt;/span&gt;&lt;/div&gt;</us-gaap:GoodwillAndIntangibleAssetsGoodwillPolicy>
    <us-gaap:GoodwillImpairmentLoss contextRef="c-1" decimals="0" id="f-351" unitRef="usd">217295</us-gaap:GoodwillImpairmentLoss>
    <tgen:ContingentConsiderationArrangementsPolicyPolicyTextBlock contextRef="c-1" id="f-352">&lt;div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Acquisition-Related Contingent Consideration&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Acquisition-related contingent consideration, which primarily consists of contingent consideration payable obligations, equal to a percentage of the revenue collected for maintenance services pursuant to the Aegis contract and related asset acquisitions, was recorded in the Consolidated Balance Sheets at its acquisition date estimated fair value, in accordance with the acquisition method of accounting. The fair value of the acquisition-related contingent consideration is remeasured each reporting period, with changes in fair value recorded in the Consolidated Statements of Operations. The fair value measurement of contingent consideration obligations arising from business combinations is determined via a probability-weighted discounted cash flow analysis, using unobservable (Level 3) inputs. These inputs may include: (i) the estimated amount and timing of projected cash flows, (ii) the probability of the achievement of the factor(s) on which the contingency is based and (iii) the risk-adjusted discount rate used to present value the probability-weighted cash flows. Significant increases or decreases in any of those inputs in isolation could result in a significantly higher or lower fair value measurement.&lt;/span&gt;&lt;/div&gt;</tgen:ContingentConsiderationArrangementsPolicyPolicyTextBlock>
    <us-gaap:LesseeLeasesPolicyTextBlock contextRef="c-1" id="f-353">&lt;div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Leases&lt;/span&gt;&lt;/div&gt;On January 1, 2019, we adopted the guidance under ASU No. 2016-02, &#x201c;Leases&#x201d; ("ASC 842&#x201d;). ASC 842 requires lessees to recognize most leases on their balance sheets as a right-of-use ("ROU") asset with a corresponding lease liability. ROU assets represent our right to use an underlying asset for the lease term and lease liabilities represent our obligation to make lease payments arising from the lease. Lease ROU assets and liabilities are recognized at lease commencement date based on the present value of lease payments over the expected lease term.</us-gaap:LesseeLeasesPolicyTextBlock>
    <us-gaap:EarningsPerSharePolicyTextBlock contextRef="c-1" id="f-354">&lt;div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Income (loss) per Common Share&lt;/span&gt;&lt;/div&gt;We compute basic income (loss) per share by dividing net income (loss) for the period by the weighted-average number of shares of common stock outstanding during the period.  We compute our diluted earnings (loss) per common share using the treasury stock method.  For purposes of calculating diluted earnings per share, we consider our shares issuable in connection with convertible debentures, stock options and warrants to be dilutive common stock equivalents when the exercise/conversion price is less than the average market price of our common stock for the period.</us-gaap:EarningsPerSharePolicyTextBlock>
    <us-gaap:SegmentReportingPolicyPolicyTextBlock contextRef="c-1" id="f-355">&lt;div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Segment Information&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Our operations are comprised of three business segments. Our Products segment designs, manufactures and sells industrial and commercial cogeneration systems as described above. Our Services segment installs and maintains our cogeneration systems. Our Energy Production segment sells energy in the form of electricity, heat, hot water and cooling to our customers under long-term sales agreements. Segment profit is based on operating income after the elimination of intercompany transactions. Segment profit is a measure of operating performance of our reportable segments and may not be comparable to similar measures reported by other companies. Segment profit is a performance metric utilized by our Chief Executive Officer, who is our Chief Operating Decision Maker, to allocate resources to and access performance of our segments. See Note 18. "Segments" for a reconciliation of segment profit to income from operations.&lt;/span&gt;&lt;/div&gt;</us-gaap:SegmentReportingPolicyPolicyTextBlock>
    <us-gaap:NumberOfOperatingSegments contextRef="c-1" decimals="0" id="f-356" unitRef="segment">3</us-gaap:NumberOfOperatingSegments>
    <us-gaap:IncomeTaxPolicyTextBlock contextRef="c-1" id="f-357">&lt;div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Income Taxes&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We use the asset and liability method of accounting for income taxes.  The current or deferred tax consequences of transactions are measured by applying the provisions of enacted tax laws to determine the amount of taxes payable currently or in future years.  Deferred tax assets and liabilities are determined based on the difference between the financial statement and tax bases of assets and liabilities and expected future tax consequences of events that have been included in the financial statements or tax returns using enacted tax rates in effect for the years in which the differences are expected to reverse.  Under this method, a valuation allowance is used to offset deferred taxes if, based upon the available evidence, it is more likely than &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;not that some or all of the deferred tax assets may not be realized.  Management evaluates the recoverability of deferred taxes and the adequacy of the valuation allowance annually.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We have adopted the provisions of the accounting standards relative to accounting for uncertainties in tax positions. These provisions provide guidance on the recognition, derecognition and measurement of potential tax benefits associated with tax positions.  We elected to recognize interest and penalties related to income tax matters as a component of income tax expense in the statements of operations.  We have analyzed our current tax return compliance positions and determined that no uncertain tax positions have been taken that would require recognition.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;With few exceptions, we are no longer subject to possible income tax examinations by federal, state or local taxing authorities for tax years before 2021, with the exception of loss carryforwards in the event they are utilized in future years.  Our  tax returns are open to adjustment from 2001 forward, as a result of the fact that the we have loss carryforwards from those years, which may be adjusted in the year those losses are utilized.&lt;/span&gt;&lt;/div&gt;</us-gaap:IncomeTaxPolicyTextBlock>
    <us-gaap:FairValueOfFinancialInstrumentsPolicy contextRef="c-1" id="f-358">&lt;div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Fair Value of Financial Instruments&lt;/span&gt;&lt;/div&gt;Our financial instruments are cash and cash equivalents, accounts receivable, available-for-sale securities and accounts payable.  The recorded values of cash and cash equivalents, accounts receivable and accounts payable approximate their fair values based on their short-term nature.</us-gaap:FairValueOfFinancialInstrumentsPolicy>
    <us-gaap:RevenueFromContractWithCustomerPolicyTextBlock contextRef="c-1" id="f-359">&lt;div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Revenue Recognition&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Revenue is recognized when performance obligations under the terms of a contract with our customer are satisfied; generally, this occurs with the transfer of control of our products, services and energy production. Revenue is measured as the amount of consideration we expect to receive in exchange for transferring goods or providing services or energy to customers. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Shipping and handling fees billed to customers in a sales transaction are recorded in revenue for goods provided. were $96,890 and $174,662, for the years ended December&#160;31, 2024 and 2023, respectively. The related shipping and handling costs incurred are accounted for as fulfillment activities and are recognized as cost of goods sold when control of the product transfers to the customer, which were $59,331 and $79,616, for the years ended December&#160;31, 2024 and 2023, respectively. The costs of inbound freight is recorded in general and administrative expenses. For the years ended December&#160;31, 2024 and 2023, $248,229 and $427,880 of shipping and handling costs were included in general and administrative expenses in the accompanying consolidated statements of operations, respectively. We elected to exclude from revenue any value-add sales and other taxes which we collect concurrent with revenue-producing activities. These accounting policy elections are consistent with the manner in which we have historically recorded shipping and handling fees and taxes. Incremental costs incurred by us in obtaining a contract with a customer are negligible, if any, and are expensed ratably in proportion to the related revenue recognized.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%"&gt;Products Segment&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Our Product revenues include cogeneration systems that supply electricity and hot water, chillers that provide air-conditioning and hot water and engineered accessories, which consist of ancillary products and parts necessary to install a cogeneration unit including integration into the customers&#x2019; existing electrical and mechanical systems. We refer to the package of engineered accessories and engineering and design services necessary for the customers' installation of a cogeneration unit as light installation services.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We transfer control and generally recognize a sale when we ship a product from our manufacturing facility at which point the customer takes ownership of the product. Payment terms on product sales are generally 30 days. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We recognize revenue in certain circumstances before delivery to the customer has occurred (commonly referred to as bill and hold transactions). We recognize revenue related to such transactions once, among other things, the customer has made a written fixed commitment to purchase the product(s) under normal billing and credit terms, the customer has requested the product(s) be held for future delivery as scheduled and designated by them, risk of ownership has been assumed by the customer, and the product(s) are tagged as sold and segregated for storage awaiting further direction from the customer. Due to the infrequent nature and duration of bill and hold arrangements, the value associated with custodial storage services is deemed immaterial in the context of the contract and in total, and accordingly, none of the transaction price is allocated to such service.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Depending on the product and terms of the arrangement, we may defer the recognition of a portion of the transaction price received because we have to satisfy a future obligation (e.g., product start-up service). Amounts allocated to product start-up services are recognized as revenue when the start-up service has been completed. We use an observable selling price to determine standalone selling prices where available and either a combination of an adjusted market assessment approach, an expected cost plus a margin approach, and/or a residual approach to determine the standalone selling prices for separate performance obligations as a basis for allocating contract consideration when an observable selling price is not available. Amounts received but not recognized pending completion of performance are recognized as contract liabilities and are recorded as deferred revenue along with deposits by customers. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%"&gt;Services Segment&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Maintenance services are provided under either long-term maintenance contracts or time and material maintenance contracts. Revenue under time and material maintenance contracts is recognized when the maintenance service is completed. Revenue under long-term maintenance contracts is recognized either ratably over the term of the contract where the contract price is fixed or when the periodic maintenance activities are completed and the invoiced cost to the customer is based on run hours or kilowatts produced in a given period. We use an output method to measure progress towards completion of our performance obligation which results in the recognition of revenue on the basis of a direct measurement of the value to the customer of the services transferred to date relative to the remaining services promised under the contract. We use the practical expedient at ASC 606-10-55-18 of recognizing revenue in an amount equal to the amount we have the right to invoice the customer under the contract. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Our initial acquisition of the Aegis maintenance contracts and related business closed on March 15, 2023. We have included the financial results of the Aegis maintenance agreements in our consolidated financial statements from April 1, 2023, from February 1, 2024 and from May 1, 2024, the closing or acquisition dates for the acquisitions in our revenue from the Services segment. Payment terms for maintenance services are generally 30 days.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%"&gt;Energy Production Segment&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Revenue from energy contracts is recognized when electricity, heat, hot and/or chilled water is produced by our owned on-site cogeneration systems. Each month we bill the customer and recognize revenue for the various forms of energy delivered, based on meter readings which capture the quantity of the various forms of energy delivered in a given month, under a contractually defined formula which takes into account the current month's cost of energy from the local power utility. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;As the various forms of energy delivered by us under energy production contracts are simultaneously delivered and consumed by the customer, our performance obligation under these contracts is considered to be satisfied over time. We use an output method to measure progress towards completion of our performance obligation which results in the recognition of revenue on the basis of a direct measurement of the value to the customer of the services transferred to date relative to the remaining services promised under the contract. We use the practical expedient at ASC 606-10-55-18 of recognizing revenue in an amount equal to that amount to which we have the right to invoice the customer under the contract. Payment terms on invoices under these contracts are generally 30 days. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%"&gt;Contract Balances&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The timing of revenue recognition, billings and cash collections result in billed accounts receivable, unbilled revenue (contract assets) and deferred revenue, consisting of customer deposits and billings in excess of revenue recognized (contract liabilities) on the consolidated balance sheets.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We did not recognize any revenue during the year ended December&#160;31, 2024 that was included in the unbilled revenue receivable as of December&#160;31, 2024. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Revenue recognized during the year ended December&#160;31, 2024 that was included in deferred revenue at the beginning of the period was $662,730.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%"&gt;Remaining Performance Obligations&lt;/span&gt;&lt;/div&gt;Remaining performance obligations related to ASC 606 represent the aggregate transaction price allocated to performance obligations with an original contract term greater than one year, excluding certain maintenance contracts and all energy production contracts where a direct measurement of the value to the customer is used as a method of measuring progress towards completion of our performance obligation. Exclusion of these remaining performance obligations is due in part to the inability to quantify values based on unknown future levels of delivery and in some cases rates used to bill customers. Remaining performance obligations therefore consist of unsatisfied or partially satisfied performance obligations related to fixed price maintenance contracts and installation contracts.</us-gaap:RevenueFromContractWithCustomerPolicyTextBlock>
    <tgen:ContractWithCustomerShippingAndHandlingBilled contextRef="c-1" decimals="0" id="f-360" unitRef="usd">96890</tgen:ContractWithCustomerShippingAndHandlingBilled>
    <tgen:ContractWithCustomerShippingAndHandlingBilled contextRef="c-13" decimals="0" id="f-361" unitRef="usd">174662</tgen:ContractWithCustomerShippingAndHandlingBilled>
    <tgen:CostOfGoodsSoldShippingAndHandling contextRef="c-1" decimals="0" id="f-362" unitRef="usd">59331</tgen:CostOfGoodsSoldShippingAndHandling>
    <tgen:CostOfGoodsSoldShippingAndHandling contextRef="c-13" decimals="0" id="f-363" unitRef="usd">79616</tgen:CostOfGoodsSoldShippingAndHandling>
    <tgen:ShippingandHandlingExpenses contextRef="c-38" decimals="0" id="f-364" unitRef="usd">248229</tgen:ShippingandHandlingExpenses>
    <tgen:ShippingandHandlingExpenses contextRef="c-39" decimals="0" id="f-365" unitRef="usd">427880</tgen:ShippingandHandlingExpenses>
    <us-gaap:AdvertisingCostsPolicyTextBlock contextRef="c-1" id="f-366">&lt;div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Advertising Costs&lt;/span&gt;&lt;/div&gt;We expense the costs of advertising as incurred.</us-gaap:AdvertisingCostsPolicyTextBlock>
    <us-gaap:AdvertisingExpense contextRef="c-1" decimals="-3" id="f-367" unitRef="usd">74000</us-gaap:AdvertisingExpense>
    <us-gaap:AdvertisingExpense contextRef="c-13" decimals="-3" id="f-368" unitRef="usd">80000</us-gaap:AdvertisingExpense>
    <us-gaap:ResearchAndDevelopmentExpensePolicy contextRef="c-1" id="f-369">&lt;div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Research and Development Costs&lt;/span&gt;&lt;/div&gt;Research and development expenditures are expensed as incurred.</us-gaap:ResearchAndDevelopmentExpensePolicy>
    <tgen:ResearchAndDevelopmentExpenseGross contextRef="c-1" decimals="0" id="f-370" unitRef="usd">962000</tgen:ResearchAndDevelopmentExpenseGross>
    <tgen:ResearchAndDevelopmentExpenseGross contextRef="c-13" decimals="0" id="f-371" unitRef="usd">840000</tgen:ResearchAndDevelopmentExpenseGross>
    <us-gaap:ShareBasedCompensationOptionAndIncentivePlansPolicy contextRef="c-1" id="f-372">&lt;div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Stock-Based Compensation&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Stock-based compensation cost is measured at the grant date, based on the estimated fair value of the award, and is recognized as an expense in the statements of operations over the requisite service period.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The determination of the fair value of share-based payment awards is affected by our stock price.  For the awards issued prior to our being publicly traded, we considered the sales price of the common stock in private placements to unrelated third parties as a measure of the fair value of our common stock.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We utilize actual forfeitures when calculating the expense for the period. Stock-based compensation expense recognized is based on awards that are ultimately expected to vest.  We evaluate the assumptions used to value awards regularly and if factors change and different assumptions are employed, stock-based compensation expense may differ significantly from what has been recorded in the past.  If there are any modifications or cancellations of the underlying unvested securities, we may be required to accelerate, increase or cancel any remaining unearned stock-based compensation expense.&lt;/span&gt;&lt;/div&gt;</us-gaap:ShareBasedCompensationOptionAndIncentivePlansPolicy>
    <us-gaap:DisaggregationOfRevenueTableTextBlock contextRef="c-1" id="f-373">&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table further disaggregates our revenue by major source by segment for the years ended December&#160;31, 2024 and 2023.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:center;text-indent:36pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:401.25pt"&gt;&lt;tr&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:193.00pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.75pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:97.75pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.00pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:97.75pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:14pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="9" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Years Ended&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:14pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;December 31, 2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:14pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Products:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:14pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Cogeneration&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,677,930&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,761,667&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:14pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Chiller&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,647,374&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;5,303,978&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:14pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Engineered Accessories&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;118,692&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;794,301&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:14pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Total Products Revenue&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4,443,996&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;8,859,946&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:14pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Services&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;16,074,870&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;14,523,054&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:14pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Energy production&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,100,670&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,756,419&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:14pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Total revenue&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;22,619,536&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;25,139,419&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:DisaggregationOfRevenueTableTextBlock>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-40" decimals="0" id="f-374" unitRef="usd">2677930</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-41" decimals="0" id="f-375" unitRef="usd">2761667</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-42" decimals="0" id="f-376" unitRef="usd">1647374</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-43" decimals="0" id="f-377" unitRef="usd">5303978</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-44" decimals="0" id="f-378" unitRef="usd">118692</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-45" decimals="0" id="f-379" unitRef="usd">794301</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-46" decimals="0" id="f-380" unitRef="usd">4443996</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-47" decimals="0" id="f-381" unitRef="usd">8859946</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-48" decimals="0" id="f-382" unitRef="usd">16074870</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-49" decimals="0" id="f-383" unitRef="usd">14523054</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-50" decimals="0" id="f-384" unitRef="usd">2100670</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-51" decimals="0" id="f-385" unitRef="usd">1756419</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-52" decimals="0" id="f-386" unitRef="usd">22619536</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-53" decimals="0" id="f-387" unitRef="usd">25139419</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <tgen:RevenueFromContractWithCustomerPaymentPeriod contextRef="c-1" id="f-388">P30D</tgen:RevenueFromContractWithCustomerPaymentPeriod>
    <tgen:RevenueFromContractWithCustomerPaymentPeriod contextRef="c-1" id="f-389">P30D</tgen:RevenueFromContractWithCustomerPaymentPeriod>
    <tgen:RevenueFromContractWithCustomerPaymentPeriod contextRef="c-1" id="f-390">P30D</tgen:RevenueFromContractWithCustomerPaymentPeriod>
    <us-gaap:DeferredRevenueRevenueRecognized1 contextRef="c-1" decimals="0" id="f-391" unitRef="usd">662730</us-gaap:DeferredRevenueRevenueRecognized1>
    <us-gaap:RevenueRemainingPerformanceObligation contextRef="c-5" decimals="0" id="f-392" unitRef="usd">7867082</us-gaap:RevenueRemainingPerformanceObligation>
    <us-gaap:RevenueRemainingPerformanceObligationPercentage contextRef="c-5" decimals="2" id="f-393" unitRef="number">0.84</us-gaap:RevenueRemainingPerformanceObligationPercentage>
    <us-gaap:RevenueRemainingPerformanceObligationPercentage contextRef="c-54" decimals="2" id="f-394" unitRef="number">0.82</us-gaap:RevenueRemainingPerformanceObligationPercentage>
    <us-gaap:RevenueRemainingPerformanceObligationPercentage contextRef="c-55" decimals="2" id="f-395" unitRef="number">0.02</us-gaap:RevenueRemainingPerformanceObligationPercentage>
    <us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock contextRef="c-1" id="f-396">&lt;div style="margin-bottom:6pt;margin-top:6pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%"&gt;Significant New Accounting Standards Adopted this Period &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;New accounting standards adopted in the year ended December&#160;31, 2023.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Financial Instruments, Credit Losses (Topic 326)&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;. In June 2016, the Financial Accounting Standards Board issued ASU No. 2016-13, &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Financial Instruments, Credit Losses (Topic 326)&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;, which was subsequently amended by ASUs 2018-19, 2019-04, 2019-05, 2019-11, and 2020-03. Topic 326 replaces the existing incurred loss impairment model with a methodology that incorporates all expected credit loss estimates, resulting in more timely recognition of losses. Under Topic 326, we are required to measure all expected credit losses for financial assets held at the reporting date based on historical experience, current conditions, and reasonable and supportable forecasts that affect the collectability of the reported financial assets. It also requires credit losses related to available-for-sale debt securities to be recorded through an allowance for credit losses. We adopted Topic 326 on January 1, 2023 on a modified retrospective basis. The adoption did not have a material effect on our consolidated financial statements. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;New accounting standards adopted in the year ended December&#160;31, 2024.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Segment Reporting (Topic 280) - Improvements to Reportable Segment Disclosure&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;s. In November 2023, the Financial Accounting Standards Board issued ASU 2023-07, &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Segment Reporting (Topic 280) - Improvements to Reportable Segment Disclosures&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;. The new standard requires enhanced disclosures about a public entity's reportable segments including more detailed information about a reportable segment's expenses. The amendments in this update apply to all public entities that are required to report segment information, and include those entities that have a single reportable segment. The amendments in this update are effective for fiscal years beginning after December 15, 2023, and interim periods within fiscal years beginning after December 15, 2024. Early adoption is permitted. We adopted Topic 280 on January 1, 2024. Retrospective application is &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;required for all periods presented in the financial statements. The adoption of Topic 280 did not have a material effect on our consolidated financial statements, other than with respect to expanded disclosure.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%"&gt;Recently Issued Accounting Pronouncements&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Income Taxes (Topic 740) - Improvements to Income Tax Disclosure&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;s. In December 2023, the Financial Accounting Standards Board issued ASU 2023-09, &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Income Taxes (Topic 740) - Improvements to Income Tax Disclosures&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;. ASU 2023-09 provides more transparency about income tax information through improvements to income tax disclosures primarily related to the rate reconciliation and income taxes paid information. The amendments in this update are effective for annual periods beginning after December 15, 2024. Early adoption is permitted. The adoption of Topic 740 will not have a material effect on our consolidated financial statements, other than with respect to expanded disclosure.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Compensation - Stock Compensation (Topic 718) - &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In March 2024, the Financial Accounting Standards Board Issued ASU 2024-01, &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Compensation - Stock Compensation (Topic 718)&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;. ASU 2024-01 addresses generally accepted accounting principles relating to profits interest awards and similar awards provided to employees or non-employees to align compensation with an entity's operating performance and provide the holders with the opportunity to participate in future profits and/or equity appreciation of the entity. Since profits interest holders only participate in future profits and/or equity appreciation and have no rights to the existing assets of the entity, a profits interest award should be accounted for as a share-based compensation arrangement (Topic 718) or similar to a cash bonus or profit-sharing arrangement (Topic 710). The amendments in this update apply to all entities that enter into share-based payment transactions and are effective for annual periods beginning after December 15, 2024 and interim periods for those annual periods. Early adoption is permitted for both interim and annual periods that have not yet been issued or made available for issuance. If adopted in an interim period, the Update should be adopted as of the beginning of the annual period that includes the interim period. The amendments can be applied retrospectively to all prior periods presented in the financial statements or prospectively to profits interest and similar awards granted or modified on or after the date the entity first applies the amendments. If applied retrospectively,  the entity is required to provide disclosures in paragraphs 250-10-50-1 through 50-3. If applied prospectively, the entity is required to disclose the nature and reason for the change in accounting principle. ASU 2024-01 may apply to Tecogen should we issue profits interest awards after December 15, 2024, adoption of which we believe will not have a material effect on our financial position or results of operation.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Codification Improvements &#x2013; Amendments to Remove References to the Concepts Statements&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;. In March 2024, the Financial Accounting Standards Board Issued ASU 2024-02, &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Codification Improvements &#x2013; Amendments to Remove References to the Concepts Statements&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;. ASU 2024-02 contains amendments to the Codification that remove references to various FASB Concept Statements, affecting a variety of Topics in the Codification and applies to all reporting entities. The amendments in this update are effective for public entities for fiscal years beginning after December 31, 2024. Early application of the amendments in this update are permitted for any fiscal year or interim period for which financial statements have not yet been issued or made available for issuance. If adopted in an interim period, the amendment must be adopted as of the beginning of the fiscal years that includes the interim period. An entity should apply the amendments prospectively to all new transactions recognized on or after the date that the entity first applies the amendments, or retrospectively to the beginning of the earliest comparative period presented in which the amendments were first applied, by adjusting the opening balance of retained earnings, or other appropriated components of equity or net assets, as of the beginning of the earliest comparative period presented. ASU 2024-02 will apply to Tecogen after December 15, 2024, adoption of which we believe will not have a material effect on our financial position or results of operation.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt; Income Statement &#x2013; Reporting Comprehensive Income &#x2013; Expense Disaggregation Disclosures (Subtopic 220-40). &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In November 2024, the Financial Accounting Standards Board Issued ASU 2024-03 &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Income Statement- Reporting Comprehensive Income &#x2013; Expense Disaggregation Disclosures (Subtopic 220-40)&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;. This update is intended to improve disclosures about public entity&#x2019;s expenses and will require more detailed information about types of expenses including inventory purchases, employee compensation, depreciation, amortization and depletion in commonly presented captions such as cost of sales, SG&amp;amp;A and research and development. In addition, an entity will be required to include certain amounts that are already disclosed under GAAP in the same disclosure as the other disaggregation requirements; disclose a qualitative description of the amounts remaining in expense captions not separately disaggregated quantitatively; and, disclose the amount of selling expense and, in annual reporting periods, the entity&#x2019;s definition of selling expenses. The amendments are effective for annual reporting periods beginning after December 15, 2026, and interim reporting periods beginning after December 15, 2027. Early adoption is permitted. The amendments should be applied prospectively to the financial statements after the effective date and retrospectively to any and all prior periods presented in the financial statements. ASU 2024-03 will apply to Tecogen after December 15, 2026, adoption of which will not have a material effect on our financial position or results of operation, but will require additional disclosure.&lt;/span&gt;&lt;/div&gt;</us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock>
    <us-gaap:EarningsPerShareTextBlock contextRef="c-1" id="f-399">Income (loss) per Common Share:&lt;div style="margin-top:6pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Basic and diluted loss per common share for the years ended&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%"&gt; &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;December&#160;31, 2024 and 2023, respectively, was as follows:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:center;text-indent:36pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:85.964%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:54.852%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:20.498%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.650%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:20.500%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Years Ended&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;December 31, 2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Numerator:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Net loss attributable to stockholders&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(4,760,238)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(4,598,108)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Denominator:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Weighted average shares outstanding - Basic&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;24,861,190&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;24,850,261&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Effect of dilutive securities:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Stock options&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Weighted average shares outstanding - Diluted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;24,861,190&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;24,850,261&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Basic loss per share&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(0.19)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(0.19)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Diluted loss per share&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(0.19)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(0.19)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:14pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Anti-dilutive shares underlying stock options outstanding&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,222,516&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,757,676&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:EarningsPerShareTextBlock>
    <us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock contextRef="c-1" id="f-400">&lt;div style="margin-top:6pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Basic and diluted loss per common share for the years ended&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%"&gt; &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;December&#160;31, 2024 and 2023, respectively, was as follows:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:center;text-indent:36pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:85.964%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:54.852%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:20.498%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.650%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:20.500%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Years Ended&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;December 31, 2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Numerator:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Net loss attributable to stockholders&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(4,760,238)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(4,598,108)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Denominator:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Weighted average shares outstanding - Basic&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;24,861,190&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;24,850,261&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Effect of dilutive securities:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Stock options&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Weighted average shares outstanding - Diluted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;24,861,190&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;24,850,261&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Basic loss per share&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(0.19)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(0.19)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Diluted loss per share&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(0.19)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(0.19)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:14pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Anti-dilutive shares underlying stock options outstanding&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,222,516&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,757,676&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock>
    <us-gaap:NetIncomeLoss contextRef="c-1" decimals="0" id="f-401" unitRef="usd">-4760238</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss contextRef="c-13" decimals="0" id="f-402" unitRef="usd">-4598108</us-gaap:NetIncomeLoss>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic contextRef="c-1" decimals="0" id="f-403" unitRef="shares">24861190</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic contextRef="c-13" decimals="0" id="f-404" unitRef="shares">24850261</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment contextRef="c-56" decimals="0" id="f-405" unitRef="shares">0</us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment>
    <us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment contextRef="c-57" decimals="0" id="f-406" unitRef="shares">0</us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding contextRef="c-1" decimals="0" id="f-407" unitRef="shares">24861190</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding contextRef="c-13" decimals="0" id="f-408" unitRef="shares">24850261</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:EarningsPerShareBasic
      contextRef="c-1"
      decimals="2"
      id="f-409"
      unitRef="usdPerShare">-0.19</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="c-13"
      decimals="2"
      id="f-410"
      unitRef="usdPerShare">-0.19</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareDiluted
      contextRef="c-1"
      decimals="2"
      id="f-411"
      unitRef="usdPerShare">-0.19</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="c-13"
      decimals="2"
      id="f-412"
      unitRef="usdPerShare">-0.19</us-gaap:EarningsPerShareDiluted>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount contextRef="c-56" decimals="0" id="f-413" unitRef="shares">1222516</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount contextRef="c-57" decimals="0" id="f-414" unitRef="shares">1757676</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:MergersAcquisitionsAndDispositionsDisclosuresTextBlock contextRef="c-1" id="f-415">Acquisition of American DG Energy Inc.&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;On May&#160;18, 2017, we completed our acquisition, by means of a stock-for-stock merger, of 100% of the outstanding common shares of American DG Energy Inc. (&#x201c;American DG Energy" or "ADGE&#x201d;), a company which installed, owned, operated and maintained complete distributed generation of electricity systems, or DG systems or energy systems, and other complementary systems at customer sites and sells electricity, hot water, heat and cooling energy under long-term contracts at prices guaranteed to the customer to be below conventional utility rates, by means of a merger of one of our wholly owned subsidiaries with and into ADGE such that ADGE became a wholly owned subsidiary of Tecogen. We acquired ADGE to, among other reasons, expand our product offerings and benefit directly from the long-term contracted revenue streams generated by these installations. We gained control of ADGE on May&#160;18, 2017 by issuing shares of our Common Stock to the prior stockholders of ADGE.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Goodwill of $13.3 million arising from the acquisition is primarily attributable to the going concern element of ADGE&#x2019;s business, including its assembled workforce and the long-term contractual nature of its business, as well as expected cost synergies from the merger related primarily to the elimination of administrative overhead and duplicative personnel. None of the goodwill recognized is expected to be deductible for income tax purposes.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The favorable contract asset and the unfavorable contract liability, both of which relate to existing customer contracts, and the estimated amortization are more fully described in Note 8. "Intangible Assets and Liabilities other than Goodwill".&lt;/span&gt;&lt;/div&gt;</us-gaap:MergersAcquisitionsAndDispositionsDisclosuresTextBlock>
    <us-gaap:SubsidiaryOrEquityMethodInvesteeCumulativePercentageOwnershipAfterAllTransactions
      contextRef="c-58"
      decimals="INF"
      id="f-416"
      unitRef="number">1</us-gaap:SubsidiaryOrEquityMethodInvesteeCumulativePercentageOwnershipAfterAllTransactions>
    <us-gaap:Goodwill contextRef="c-59" decimals="-5" id="f-417" unitRef="usd">13300000</us-gaap:Goodwill>
    <us-gaap:BusinessAcquisitionPurchasePriceAllocationGoodwillExpectedTaxDeductibleAmount contextRef="c-5" decimals="0" id="f-418" unitRef="usd">0</us-gaap:BusinessAcquisitionPurchasePriceAllocationGoodwillExpectedTaxDeductibleAmount>
    <us-gaap:BusinessCombinationDisclosureTextBlock contextRef="c-1" id="f-419">Aegis Contract and Related Asset Acquisition&lt;div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;On March 15, 2023, we entered into an agreement ("Agreement") with Aegis Energy Services, LLC (&#x201c;Aegis&#x201d;) pursuant to which Aegis agreed to assign to us and we agreed to assume certain Aegis maintenance agreements, we agreed to purchase certain assets from Aegis, and related matters (&#x201c;Acquisition&#x201d;).  On April 1, 2023, the Acquisition closed. Under the Agreement, we agreed to acquire from Aegis and assume Aegis&#x2019; rights and obligations arising on or after April 1, 2023, under maintenance agreements pursuant to which Aegis provided maintenance services to third parties for approximately 200 cogeneration systems and we agreed to acquire from Aegis certain vehicles and inventory used by Aegis in connection with the performance of its maintenance services.  At closing, we acquired eight (8) Aegis vehicles for consideration consisting of $170,000 in cash.  Also, we issued credits against outstanding accounts receivable due from Aegis in the amount of $300,000 for the acquisition of inventory that Aegis used to provide maintenance services. At closing, we hired eight (8) Aegis employees who, following the closing, have agreed to continue to provide maintenance services relating to the cogeneration systems covered by the maintenance agreements assumed pursuant to the Agreement. Following the closing and for a period of up to seven (7) years, we agreed to pay Aegis a percentage of the revenue collected for maintenance services provided pursuant to the maintenance agreements acquired from Aegis. Further, prior to December 31, 2023, we had the right to acquire and assume additional Aegis&#x2019; maintenance agreements for cogeneration systems on substantially similar terms and conditions. The Agreement contained certain indemnification provisions and agreements on the part of Aegis and for each party to cooperate with each other and provide certain transitional assistance. We acquired the Aegis maintenance agreements to expand our Service portfolio and to benefit from the long-term contract revenue stream generated by these agreements.  &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;On February 1, 2024, Tecogen and Aegis amended the Agreement to add eighteen (18) additional maintenance contracts assumed by us (the "February 2024 Amendment") which includes an undertaking by Aegis to use commercially reasonable efforts to support and assist our execution of maintenance service agreements for an additional thirty-six (36) cogeneration units sold to customers by Aegis. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;On May 1, 2024, Tecogen and Aegis amended the Agreement to add thirty-one (31) additional maintenance contracts assumed by us (the "May 2024 Amendment") which includes an undertaking by Aegis to use commercially reasonable efforts to support and assist our execution of maintenance service agreements for an additional forty-eight (48) cogeneration units sold to customers by Aegis.  &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;No additional maintenance service agreements contemplated in the February 2024 Amendment or the May 2024 Amendment have been executed as of December&#160;31, 2024.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We have determined that the assignment and assumption of the Aegis maintenance agreements, in combination with the related asset acquisition and the retention of the former Aegis employees, constitutes a business and should be accounted for as a business combination under the acquisition method. As of the acquisition date, we recognized, separately from goodwill, the identifiable assets acquired and the liabilities assumed, at fair value. We have applied an interpretation of the guidance in ASC 805, Business Combinations, that allows an entity to combine multiple acquisitions as one single transaction due to the April 1, 2023, February 1, 2024 and May 1, 2024 acquisitions being executed in contemplation of one another to achieve the same commercial objective for the Company. As a result, we have adjusted the initial accounting for the April 1, 2023 acquisition for the value of net assets acquired from the February 1, 2024 and May 1, 2024 acquisitions.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We have included the financial results of the Aegis maintenance agreements in our consolidated financial statements from April 1, 2023, from February 1, 2024 and from May 1, 2024, the closing or acquisition dates for the acquisitions.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table summarizes the consideration paid for the Aegis acquisition and the fair value of assets acquired and contract-related liabilities assumed as of the acquisition date:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.561%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:44.568%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.822%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.387%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.996%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.387%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.675%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.387%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.678%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="21" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Acquisitions&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;April 1, 2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;February 1, 2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;May 1, 2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Total&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Consideration Paid:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Cash&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;170,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;170,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Accounts receivable credit issued&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;300,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;300,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Account payable due to Aegis&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;91,048&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;91,048&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Contingent consideration&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,256,656&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;101,641&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;171,260&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,529,557&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Total fair value of consideration transferred&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,817,704&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;101,641&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;171,260&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,090,605&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:12pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Identifiable assets acquired and liabilities assumed:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Assets acquired&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Property, plant and equipment&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;170,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;170,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Inventory&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;391,048&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;391,048&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Identifiable intangible asset - customer contracts&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,772,659&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;184,587&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;267,877&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,225,123&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,333,707&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;184,587&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;267,877&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,786,171&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Acquired contract-related liabilities assumed&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Deferred maintenance reserve&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(853,271)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(853,271)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Net identifiable assets acquired&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,480,436&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;184,587&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;267,877&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,932,900&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Excess of cost over fair value of net assets acquired (Goodwill)&lt;/span&gt;&lt;/td&gt;&lt;td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;337,268&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(82,946)&lt;/span&gt;&lt;/td&gt;&lt;td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(96,617)&lt;/span&gt;&lt;/td&gt;&lt;td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;157,705&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Initial Acquisition - April 1, 2023&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The amounts initially recognized for inventory, identifiable intangible assets, contingent consideration and deferred maintenance reserves were provisional pending completion of the necessary valuations and analysis. ASC 805 establishes a measurement period to provide companies with a reasonable amount of time to obtain the information necessary to identify and measure various items in a business combination and cannot extend beyond one year from the acquisition date. As of December&#160;31, 2023, we completed our analysis and valuation.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;As of December&#160;31, 2024, we recorded no remeasurment adjustments to the fair value of the contingent consideration and deferred maintenance reserves given the probability of achieving the revenue estimates and the actual and expected maintenance costs  were consistent with our initial valuation.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;February 2024 Amendment&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The amounts initially recognized for identifiable intangible assets and contingent consideration are provisional, pending completion of the necessary valuations and analysis. ASC 805 establishes a measurement period to provide companies with a reasonable amount of time to obtain the information necessary to identify and measure various items in a business combination and cannot extend beyond one year from the acquisition date. During the year ended December&#160;31, 2024, we identified a $9,232 adjustment to increase the contingent consideration liability and a $5,052 adjustment reducing the customer contracts intangible asset. As of December&#160;31, 2024, we completed our analysis and valuation for the February 2024 amendment.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;May 2024 Amendment&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The amounts initially recognized for identifiable intangible assets and contingent consideration are provisional pending completion of the necessary valuations and analysis. ASC 805 establishes a measurement period to provide companies with a reasonable amount of time to obtain the information necessary to identify and measure various items in a business combination and cannot extend beyond one year from the acquisition date. As of December&#160;31, 2024, we have completed our analysis and valuation for the May 2024 amendment.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Acquisition Valuation&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The fair value of the identifiable intangible asset was estimated using the income approach. The excess cash flow was discounted to present value using an appropriate rate of return to estimate the market value of the customer identifiable intangible asset and the risks associated with the future revenue forecasts due to potential changes in customer energy requirements or changes in the economic viability of these CHP sites which depend on the spread between natural gas fuel and electricity prices, all of which are not within our control. Key assumptions to value the customer identifiable intangible asset included the discount rate of 15%, profitability assumptions, revenue assumptions, and anticipated existing contract run out were the material assumptions utilized in the discounted cash flow model used to estimate fair value. The discount rate reflects an estimate of our weighted-average cost of capital. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Following the closing and for a period of up to seven (7) years, we agreed to pay Aegis contingent consideration equal to a percentage of the revenue collected for maintenance services provided pursuant to the maintenance agreements acquired from Aegis. On the date of acquisition, the fair value of the contingent consideration and the deferred maintenance reserve were calculated under the income approach using a weighted average cost of capital of 15%, discounting the future cash flows to present value, and are subsequently remeasured to fair value at each reporting date until the fair value contingencies are resolved. Fair value adjustments which may be determined at subsequent reporting dates will be recorded in our consolidated statements of operations and will not impact the goodwill balance after the measurement period.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The contingent consideration is payable within forty-five (45) days following the end of each calendar quarter through the earlier of the expiration or termination of the relevant maintenance agreements, or the seventh (7th) anniversary of the acquisition date. The consideration is equal to the product of the revenues collected in a calendar quarter multiplied by an applicable percentage. The agreement stipulates quarterly aggregate revenue targets and an applicable percentage, and provides for a higher applicable percentage if revenues exceed the target revenues. The applicable percentage ranges from 5% to 10% over the agreement term. The deferred maintenance reserve represents costs, which are expected to be incurred over a three-year period from the date of acquisition to repair customer equipment which had not been sufficiently maintained prior to our acquisition of the maintenance service agreements. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The purchase price of the acquisition was allocated to the tangible and intangible assets acquired and liabilities assumed and recognized at their fair value based on widely accepted valuation techniques in accordance with ASC 820, "Fair Value Measurement," as of the acquisition date. The process for estimating fair value requires the use of significant assumptions and estimates of future cash flows and developing appropriate discount rates. The excess of the purchase price over fair value of the net identified assets acquired and liabilities assumed was recorded as goodwill. Goodwill is primarily attributable to the going concern element of the Aegis business, including its assembled workforce and the long-term nature of the customer maintenance agreements, as well as anticipated cost synergies due primarily to the elimination of administrative overhead. Goodwill resulting from the Aegis acquisition is not expected to be deductible for income tax purposes. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Acquisition-related costs which consisted on recurring internal resources were de minimus and such costs were expensed as incurred (ASC 805-50-30-1).&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table summarizes the contract-related liabilities assumed as of December&#160;31, 2024:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;text-align:center;text-indent:36pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:69.736%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:47.746%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:24.057%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.638%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:24.059%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;December 31, 2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Acquisition liabilities, current&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Contingent consideration&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;328,350&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;200,639&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Deferred maintenance reserve&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;574,202&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;644,724&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;902,552&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;845,363&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Acquisition liabilities, long-term&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Contingent consideration&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,008,760&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;994,743&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Deferred maintenance reserve&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;187,036&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,008,760&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,181,779&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:112%"&gt;Revenues and gross profit from the Aegis maintenance contracts were $2,671,051 and $1,764,227 and $1,884,891 and $1,167,225, respectively, for the years ended December&#160;31, 2024 and 2023. The revenue and gross profit are included in our Services segment since the date of the respective contract acquisitions.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:112%"&gt;Periodic Remeasurement of Contingent Liabilities&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:112%"&gt;The fair value of the contingent consideration and pre-acquisition deferred maintenance liabilities are remeasured each reporting period after the acquisition date and any changes in the estimated fair value are reflected as gains or losses in cost of goods sold or general and administrative expense in the consolidated statement of operations.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:112%"&gt;We performed a remeasurement analysis of the contingent consideration and pre-acquisition deferred maintenance liabilities at December&#160;31, 2024 and determined that the carrying value of the liabilities approximated the estimated fair value of the of the liabilities, based on a discounted cash flow analysis, and did not record a remeasurement adjustment for the year ended December&#160;31, 2024. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:112%"&gt;We are unable to provide the pro forma information required under ASC 805-10-50-2(h) as the disclosure is impracticable since the required pre-acquisition historical information could not be obtained from Aegis.&lt;/span&gt;&lt;/div&gt;</us-gaap:BusinessCombinationDisclosureTextBlock>
    <tgen:AssetAcquisitionMaintenanceAgreementsNumberOfCogenerationSystems
      contextRef="c-60"
      decimals="0"
      id="f-420"
      unitRef="cogenerationsystem">200</tgen:AssetAcquisitionMaintenanceAgreementsNumberOfCogenerationSystems>
    <tgen:NumberOfAssetsAcquired
      contextRef="c-60"
      decimals="INF"
      id="f-421"
      unitRef="vehicle">8</tgen:NumberOfAssetsAcquired>
    <tgen:PaymentsForAssetAcquisitions contextRef="c-61" decimals="0" id="f-422" unitRef="usd">170000</tgen:PaymentsForAssetAcquisitions>
    <us-gaap:AssetAcquisitionConsiderationTransferredOtherAssets contextRef="c-61" decimals="0" id="f-423" unitRef="usd">300000</us-gaap:AssetAcquisitionConsiderationTransferredOtherAssets>
    <tgen:NumberOfEmployeesAcquired
      contextRef="c-60"
      decimals="INF"
      id="f-424"
      unitRef="employee">8</tgen:NumberOfEmployeesAcquired>
    <tgen:AssetAcquisitionMaintenanceAgreementsProfitSharingPeriod contextRef="c-61" id="f-425">P7Y</tgen:AssetAcquisitionMaintenanceAgreementsProfitSharingPeriod>
    <tgen:AssetAcquisitionNumberOfAdditionalMaintenanceContracts
      contextRef="c-62"
      decimals="0"
      id="f-426"
      unitRef="maintenancecontract">18</tgen:AssetAcquisitionNumberOfAdditionalMaintenanceContracts>
    <tgen:AssetAcquisitionMaintenanceAgreementsNumberOfAdditionalCogenerationUnits
      contextRef="c-62"
      decimals="0"
      id="f-427"
      unitRef="cogenerationunit">36</tgen:AssetAcquisitionMaintenanceAgreementsNumberOfAdditionalCogenerationUnits>
    <tgen:AssetAcquisitionNumberOfAdditionalMaintenanceContracts
      contextRef="c-63"
      decimals="0"
      id="f-428"
      unitRef="maintenancecontract">31</tgen:AssetAcquisitionNumberOfAdditionalMaintenanceContracts>
    <tgen:AssetAcquisitionMaintenanceAgreementsNumberOfAdditionalCogenerationUnits
      contextRef="c-63"
      decimals="0"
      id="f-429"
      unitRef="cogenerationunit">48</tgen:AssetAcquisitionMaintenanceAgreementsNumberOfAdditionalCogenerationUnits>
    <us-gaap:AssetAcquisitionTableTextBlock contextRef="c-1" id="f-430">&lt;div style="margin-bottom:6pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table summarizes the consideration paid for the Aegis acquisition and the fair value of assets acquired and contract-related liabilities assumed as of the acquisition date:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.561%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:44.568%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.822%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.387%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.996%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.387%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.675%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.387%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.678%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="21" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Acquisitions&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;April 1, 2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;February 1, 2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;May 1, 2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Total&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Consideration Paid:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Cash&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;170,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;170,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Accounts receivable credit issued&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;300,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;300,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Account payable due to Aegis&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;91,048&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;91,048&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Contingent consideration&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,256,656&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;101,641&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;171,260&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,529,557&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Total fair value of consideration transferred&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,817,704&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;101,641&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;171,260&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,090,605&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:12pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Identifiable assets acquired and liabilities assumed:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Assets acquired&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Property, plant and equipment&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;170,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;170,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Inventory&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;391,048&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;391,048&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Identifiable intangible asset - customer contracts&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,772,659&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;184,587&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;267,877&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,225,123&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,333,707&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;184,587&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;267,877&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,786,171&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Acquired contract-related liabilities assumed&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Deferred maintenance reserve&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(853,271)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(853,271)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Net identifiable assets acquired&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,480,436&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;184,587&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;267,877&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,932,900&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Excess of cost over fair value of net assets acquired (Goodwill)&lt;/span&gt;&lt;/td&gt;&lt;td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;337,268&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(82,946)&lt;/span&gt;&lt;/td&gt;&lt;td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(96,617)&lt;/span&gt;&lt;/td&gt;&lt;td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;157,705&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table summarizes the contract-related liabilities assumed as of December&#160;31, 2024:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;text-align:center;text-indent:36pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:69.736%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:47.746%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:24.057%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.638%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:24.059%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;December 31, 2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Acquisition liabilities, current&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Contingent consideration&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;328,350&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;200,639&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Deferred maintenance reserve&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;574,202&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;644,724&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;902,552&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;845,363&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Acquisition liabilities, long-term&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Contingent consideration&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,008,760&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;994,743&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Deferred maintenance reserve&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;187,036&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,008,760&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,181,779&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:AssetAcquisitionTableTextBlock>
    <tgen:PaymentsForAssetAcquisitions contextRef="c-61" decimals="0" id="f-431" unitRef="usd">170000</tgen:PaymentsForAssetAcquisitions>
    <tgen:PaymentsForAssetAcquisitions contextRef="c-64" decimals="0" id="f-432" unitRef="usd">0</tgen:PaymentsForAssetAcquisitions>
    <tgen:PaymentsForAssetAcquisitions contextRef="c-65" decimals="0" id="f-433" unitRef="usd">0</tgen:PaymentsForAssetAcquisitions>
    <tgen:PaymentsForAssetAcquisitions contextRef="c-66" decimals="0" id="f-434" unitRef="usd">170000</tgen:PaymentsForAssetAcquisitions>
    <us-gaap:AssetAcquisitionConsiderationTransferredOtherAssets contextRef="c-61" decimals="0" id="f-435" unitRef="usd">300000</us-gaap:AssetAcquisitionConsiderationTransferredOtherAssets>
    <us-gaap:AssetAcquisitionConsiderationTransferredOtherAssets contextRef="c-64" decimals="0" id="f-436" unitRef="usd">0</us-gaap:AssetAcquisitionConsiderationTransferredOtherAssets>
    <us-gaap:AssetAcquisitionConsiderationTransferredOtherAssets contextRef="c-65" decimals="0" id="f-437" unitRef="usd">0</us-gaap:AssetAcquisitionConsiderationTransferredOtherAssets>
    <us-gaap:AssetAcquisitionConsiderationTransferredOtherAssets contextRef="c-66" decimals="0" id="f-438" unitRef="usd">300000</us-gaap:AssetAcquisitionConsiderationTransferredOtherAssets>
    <tgen:AssetAcquisitionConsiderationTransferredAccountsPayable contextRef="c-61" decimals="0" id="f-439" unitRef="usd">91048</tgen:AssetAcquisitionConsiderationTransferredAccountsPayable>
    <tgen:AssetAcquisitionConsiderationTransferredAccountsPayable contextRef="c-64" decimals="0" id="f-440" unitRef="usd">0</tgen:AssetAcquisitionConsiderationTransferredAccountsPayable>
    <tgen:AssetAcquisitionConsiderationTransferredAccountsPayable contextRef="c-65" decimals="0" id="f-441" unitRef="usd">0</tgen:AssetAcquisitionConsiderationTransferredAccountsPayable>
    <tgen:AssetAcquisitionConsiderationTransferredAccountsPayable contextRef="c-66" decimals="0" id="f-442" unitRef="usd">91048</tgen:AssetAcquisitionConsiderationTransferredAccountsPayable>
    <us-gaap:AssetAcquisitionConsiderationTransferredContingentConsideration contextRef="c-61" decimals="0" id="f-443" unitRef="usd">1256656</us-gaap:AssetAcquisitionConsiderationTransferredContingentConsideration>
    <us-gaap:AssetAcquisitionConsiderationTransferredContingentConsideration contextRef="c-64" decimals="0" id="f-444" unitRef="usd">101641</us-gaap:AssetAcquisitionConsiderationTransferredContingentConsideration>
    <us-gaap:AssetAcquisitionConsiderationTransferredContingentConsideration contextRef="c-65" decimals="0" id="f-445" unitRef="usd">171260</us-gaap:AssetAcquisitionConsiderationTransferredContingentConsideration>
    <us-gaap:AssetAcquisitionConsiderationTransferredContingentConsideration contextRef="c-66" decimals="0" id="f-446" unitRef="usd">1529557</us-gaap:AssetAcquisitionConsiderationTransferredContingentConsideration>
    <us-gaap:AssetAcquisitionConsiderationTransferred contextRef="c-61" decimals="0" id="f-447" unitRef="usd">1817704</us-gaap:AssetAcquisitionConsiderationTransferred>
    <us-gaap:AssetAcquisitionConsiderationTransferred contextRef="c-64" decimals="0" id="f-448" unitRef="usd">101641</us-gaap:AssetAcquisitionConsiderationTransferred>
    <us-gaap:AssetAcquisitionConsiderationTransferred contextRef="c-65" decimals="0" id="f-449" unitRef="usd">171260</us-gaap:AssetAcquisitionConsiderationTransferred>
    <us-gaap:AssetAcquisitionConsiderationTransferred contextRef="c-66" decimals="0" id="f-450" unitRef="usd">2090605</us-gaap:AssetAcquisitionConsiderationTransferred>
    <tgen:AssetAcquisitionPropertyPlantAndEquipment contextRef="c-61" decimals="0" id="f-451" unitRef="usd">170000</tgen:AssetAcquisitionPropertyPlantAndEquipment>
    <tgen:AssetAcquisitionPropertyPlantAndEquipment contextRef="c-64" decimals="0" id="f-452" unitRef="usd">0</tgen:AssetAcquisitionPropertyPlantAndEquipment>
    <tgen:AssetAcquisitionPropertyPlantAndEquipment contextRef="c-65" decimals="0" id="f-453" unitRef="usd">0</tgen:AssetAcquisitionPropertyPlantAndEquipment>
    <tgen:AssetAcquisitionPropertyPlantAndEquipment contextRef="c-66" decimals="0" id="f-454" unitRef="usd">170000</tgen:AssetAcquisitionPropertyPlantAndEquipment>
    <tgen:AssetAcquisitionInventory contextRef="c-61" decimals="0" id="f-455" unitRef="usd">391048</tgen:AssetAcquisitionInventory>
    <tgen:AssetAcquisitionInventory contextRef="c-64" decimals="0" id="f-456" unitRef="usd">0</tgen:AssetAcquisitionInventory>
    <tgen:AssetAcquisitionInventory contextRef="c-65" decimals="0" id="f-457" unitRef="usd">0</tgen:AssetAcquisitionInventory>
    <tgen:AssetAcquisitionInventory contextRef="c-66" decimals="0" id="f-458" unitRef="usd">391048</tgen:AssetAcquisitionInventory>
    <us-gaap:FinitelivedIntangibleAssetsAcquired1 contextRef="c-61" decimals="0" id="f-459" unitRef="usd">1772659</us-gaap:FinitelivedIntangibleAssetsAcquired1>
    <us-gaap:FinitelivedIntangibleAssetsAcquired1 contextRef="c-64" decimals="0" id="f-460" unitRef="usd">184587</us-gaap:FinitelivedIntangibleAssetsAcquired1>
    <us-gaap:FinitelivedIntangibleAssetsAcquired1 contextRef="c-65" decimals="0" id="f-461" unitRef="usd">267877</us-gaap:FinitelivedIntangibleAssetsAcquired1>
    <us-gaap:FinitelivedIntangibleAssetsAcquired1 contextRef="c-66" decimals="0" id="f-462" unitRef="usd">2225123</us-gaap:FinitelivedIntangibleAssetsAcquired1>
    <tgen:AssetAcquisitionAssetsAcquired contextRef="c-61" decimals="0" id="f-463" unitRef="usd">2333707</tgen:AssetAcquisitionAssetsAcquired>
    <tgen:AssetAcquisitionAssetsAcquired contextRef="c-64" decimals="0" id="f-464" unitRef="usd">184587</tgen:AssetAcquisitionAssetsAcquired>
    <tgen:AssetAcquisitionAssetsAcquired contextRef="c-65" decimals="0" id="f-465" unitRef="usd">267877</tgen:AssetAcquisitionAssetsAcquired>
    <tgen:AssetAcquisitionAssetsAcquired contextRef="c-66" decimals="0" id="f-466" unitRef="usd">2786171</tgen:AssetAcquisitionAssetsAcquired>
    <tgen:AssetAcquisitionReserves contextRef="c-61" decimals="0" id="f-467" unitRef="usd">853271</tgen:AssetAcquisitionReserves>
    <tgen:AssetAcquisitionReserves contextRef="c-64" decimals="0" id="f-468" unitRef="usd">0</tgen:AssetAcquisitionReserves>
    <tgen:AssetAcquisitionReserves contextRef="c-65" decimals="0" id="f-469" unitRef="usd">0</tgen:AssetAcquisitionReserves>
    <tgen:AssetAcquisitionReserves contextRef="c-66" decimals="0" id="f-470" unitRef="usd">853271</tgen:AssetAcquisitionReserves>
    <tgen:AssetAcquisitionAssetsAcquiredAndLiabilitiesAssumedNet contextRef="c-61" decimals="0" id="f-471" unitRef="usd">1480436</tgen:AssetAcquisitionAssetsAcquiredAndLiabilitiesAssumedNet>
    <tgen:AssetAcquisitionAssetsAcquiredAndLiabilitiesAssumedNet contextRef="c-64" decimals="0" id="f-472" unitRef="usd">184587</tgen:AssetAcquisitionAssetsAcquiredAndLiabilitiesAssumedNet>
    <tgen:AssetAcquisitionAssetsAcquiredAndLiabilitiesAssumedNet contextRef="c-65" decimals="0" id="f-473" unitRef="usd">267877</tgen:AssetAcquisitionAssetsAcquiredAndLiabilitiesAssumedNet>
    <tgen:AssetAcquisitionAssetsAcquiredAndLiabilitiesAssumedNet contextRef="c-66" decimals="0" id="f-474" unitRef="usd">1932900</tgen:AssetAcquisitionAssetsAcquiredAndLiabilitiesAssumedNet>
    <us-gaap:GoodwillAcquiredDuringPeriod contextRef="c-61" decimals="0" id="f-475" unitRef="usd">337268</us-gaap:GoodwillAcquiredDuringPeriod>
    <tgen:AssetAcquisitionGoodwill contextRef="c-62" decimals="0" id="f-476" unitRef="usd">-82946</tgen:AssetAcquisitionGoodwill>
    <tgen:AssetAcquisitionGoodwill contextRef="c-63" decimals="0" id="f-477" unitRef="usd">-96617</tgen:AssetAcquisitionGoodwill>
    <tgen:AssetAcquisitionGoodwill contextRef="c-67" decimals="0" id="f-478" unitRef="usd">157705</tgen:AssetAcquisitionGoodwill>
    <tgen:AssetAcquisitionProvisionalInformationInitialAccountingIncompleteAdjustmentContingentConsiderationLiability contextRef="c-68" decimals="0" id="f-479" unitRef="usd">9232</tgen:AssetAcquisitionProvisionalInformationInitialAccountingIncompleteAdjustmentContingentConsiderationLiability>
    <tgen:AssetAcquisitionProvisionalInformationInitialAccountingIncompleteAdjustmentFiniteLivedIntangibleAssetsAcquired contextRef="c-68" decimals="0" id="f-480" unitRef="usd">5052</tgen:AssetAcquisitionProvisionalInformationInitialAccountingIncompleteAdjustmentFiniteLivedIntangibleAssetsAcquired>
    <tgen:IntangibleAssetsMeasurementInput contextRef="c-69" decimals="2" id="f-481" unitRef="number">0.15</tgen:IntangibleAssetsMeasurementInput>
    <tgen:AssetAcquisitionMaintenanceAgreementsProfitSharingPeriod contextRef="c-61" id="f-482">P7Y</tgen:AssetAcquisitionMaintenanceAgreementsProfitSharingPeriod>
    <tgen:IntangibleAssetsMeasurementInput contextRef="c-69" decimals="2" id="f-483" unitRef="number">0.15</tgen:IntangibleAssetsMeasurementInput>
    <tgen:AssetAcquisitionContingentConsiderationPaymentPeriod contextRef="c-61" id="f-484">P45D</tgen:AssetAcquisitionContingentConsiderationPaymentPeriod>
    <tgen:AssetAcquisitionContingentConsiderationPercentage contextRef="c-70" decimals="2" id="f-485" unitRef="number">0.05</tgen:AssetAcquisitionContingentConsiderationPercentage>
    <tgen:AssetAcquisitionContingentConsiderationPercentage contextRef="c-71" decimals="2" id="f-486" unitRef="number">0.10</tgen:AssetAcquisitionContingentConsiderationPercentage>
    <tgen:AssetAcquisitionDeferredMaintenanceCostsIncurredPeriod contextRef="c-61" id="f-487">P3Y</tgen:AssetAcquisitionDeferredMaintenanceCostsIncurredPeriod>
    <tgen:AssetAcquisitionConsiderationTransferredContingentConsiderationCurrent contextRef="c-68" decimals="0" id="f-488" unitRef="usd">328350</tgen:AssetAcquisitionConsiderationTransferredContingentConsiderationCurrent>
    <tgen:AssetAcquisitionConsiderationTransferredContingentConsiderationCurrent contextRef="c-72" decimals="0" id="f-489" unitRef="usd">200639</tgen:AssetAcquisitionConsiderationTransferredContingentConsiderationCurrent>
    <tgen:AssetAcquisitionReservesCurrent contextRef="c-68" decimals="0" id="f-490" unitRef="usd">574202</tgen:AssetAcquisitionReservesCurrent>
    <tgen:AssetAcquisitionReservesCurrent contextRef="c-72" decimals="0" id="f-491" unitRef="usd">644724</tgen:AssetAcquisitionReservesCurrent>
    <tgen:AssetAcquisitionLiabilitiesAssumedCurrent contextRef="c-68" decimals="0" id="f-492" unitRef="usd">902552</tgen:AssetAcquisitionLiabilitiesAssumedCurrent>
    <tgen:AssetAcquisitionLiabilitiesAssumedCurrent contextRef="c-72" decimals="0" id="f-493" unitRef="usd">845363</tgen:AssetAcquisitionLiabilitiesAssumedCurrent>
    <tgen:AssetAcquisitionConsiderationTransferredContingentConsiderationNoncurrent contextRef="c-68" decimals="0" id="f-494" unitRef="usd">1008760</tgen:AssetAcquisitionConsiderationTransferredContingentConsiderationNoncurrent>
    <tgen:AssetAcquisitionConsiderationTransferredContingentConsiderationNoncurrent contextRef="c-72" decimals="0" id="f-495" unitRef="usd">994743</tgen:AssetAcquisitionConsiderationTransferredContingentConsiderationNoncurrent>
    <tgen:AssetAcquisitionReservesNoncurrent contextRef="c-68" decimals="0" id="f-496" unitRef="usd">0</tgen:AssetAcquisitionReservesNoncurrent>
    <tgen:AssetAcquisitionReservesNoncurrent contextRef="c-72" decimals="0" id="f-497" unitRef="usd">187036</tgen:AssetAcquisitionReservesNoncurrent>
    <tgen:AssetAcquisitionLiabilitiesAssumedNoncurrent contextRef="c-68" decimals="0" id="f-498" unitRef="usd">1008760</tgen:AssetAcquisitionLiabilitiesAssumedNoncurrent>
    <tgen:AssetAcquisitionLiabilitiesAssumedNoncurrent contextRef="c-72" decimals="0" id="f-499" unitRef="usd">1181779</tgen:AssetAcquisitionLiabilitiesAssumedNoncurrent>
    <us-gaap:BusinessAcquisitionsProFormaRevenue contextRef="c-68" decimals="0" id="f-500" unitRef="usd">2671051</us-gaap:BusinessAcquisitionsProFormaRevenue>
    <us-gaap:BusinessAcquisitionsProFormaNetIncomeLoss contextRef="c-68" decimals="0" id="f-501" unitRef="usd">1764227</us-gaap:BusinessAcquisitionsProFormaNetIncomeLoss>
    <us-gaap:BusinessAcquisitionsProFormaRevenue contextRef="c-72" decimals="0" id="f-502" unitRef="usd">1884891</us-gaap:BusinessAcquisitionsProFormaRevenue>
    <us-gaap:BusinessAcquisitionsProFormaNetIncomeLoss contextRef="c-72" decimals="0" id="f-503" unitRef="usd">1167225</us-gaap:BusinessAcquisitionsProFormaNetIncomeLoss>
    <us-gaap:DisposalGroupsIncludingDiscontinuedOperationsDisclosureTextBlock contextRef="c-1" id="f-504">Sale of Energy Producing Assets and Goodwill Impairment&lt;div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;During the first quarter of 2019, we sold certain energy producing assets, including the associated energy production contracts for total consideration of $7 million. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In connection with the asset sales, we entered into agreements with the purchaser to maintain and operate the assets over the remaining periods of the associated energy production contracts (through August 2033 and January 2034, respectively) in exchange for monthly fees for both maintenance and operation. These agreements contain provisions whereby we have guaranteed to the purchaser a minimum level or threshold of cash flows from the associated energy production contracts. Actual results are compared to the minimum threshold bi-annually and we reimburse any shortfall to the purchaser. To the extent actual results are in excess of the minimum threshold, we are entitled to fifty percent of such excess under the agreements. We received excess payments in both the years ended December&#160;31, 2024 and 2023. For the years ended December&#160;31, 2024 and 2023, we recognized $73,243 and $25,633, respectively, of revenue representing our share of the excess cash flows under the energy production contracts. Included in our current receivables as of December&#160;31, 2024 and 2023, are excess cash flows of  $98,876 and $25,633, respectively. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The foregoing agreements also contain provisions whereby we have agreed to make whole the purchaser in the event the counterparty to the energy production contract(s) defaults on or otherwise terminates before the stated expiration of the energy production contract. Should we be required to make whole the purchaser under such provisions, we would be entitled to seek recovery from the counterparty to the energy production contract(s) under a similar provision contained in those contracts in respect of early termination. We did not recognize any counterparty contract default costs in the years ended December&#160;31, 2024 and 2023.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We are also responsible under the agreements for site decommissioning costs, if any, in excess of certain threshold amounts by site. Decommissioning of site assets is performed when, if and as requested by the counterparty to the energy production contract upon termination of the energy production contract. We recognized $20,000 of site decommissioning costs for the year ended December&#160;31, 2024 and did not recognize any site decommissioning costs for the year ended December&#160;31, 2023.&lt;/span&gt;&lt;/div&gt;</us-gaap:DisposalGroupsIncludingDiscontinuedOperationsDisclosureTextBlock>
    <us-gaap:ProceedsFromSaleOfProductiveAssets contextRef="c-73" decimals="-6" id="f-505" unitRef="usd">7000000</us-gaap:ProceedsFromSaleOfProductiveAssets>
    <tgen:EnergyProductionAgreementsPercentageOfExcessCashFlowsAboveThreshold contextRef="c-5" decimals="2" id="f-506" unitRef="number">0.50</tgen:EnergyProductionAgreementsPercentageOfExcessCashFlowsAboveThreshold>
    <tgen:EnergyProductionAgreementsRevenueOfExcessCashFlowsAboveThreshold contextRef="c-1" decimals="0" id="f-507" unitRef="usd">73243</tgen:EnergyProductionAgreementsRevenueOfExcessCashFlowsAboveThreshold>
    <tgen:EnergyProductionAgreementsRevenueOfExcessCashFlowsAboveThreshold contextRef="c-13" decimals="0" id="f-508" unitRef="usd">25633</tgen:EnergyProductionAgreementsRevenueOfExcessCashFlowsAboveThreshold>
    <tgen:EnergyProductionAgreementsAccountsReceivableFromExcessCashFlowsAboveThreshold contextRef="c-5" decimals="0" id="f-509" unitRef="usd">98876</tgen:EnergyProductionAgreementsAccountsReceivableFromExcessCashFlowsAboveThreshold>
    <tgen:EnergyProductionAgreementsAccountsReceivableFromExcessCashFlowsAboveThreshold contextRef="c-6" decimals="0" id="f-510" unitRef="usd">25633</tgen:EnergyProductionAgreementsAccountsReceivableFromExcessCashFlowsAboveThreshold>
    <tgen:EnergyProductionAgreementsSiteDecommissioningCosts contextRef="c-1" decimals="0" id="f-511" unitRef="usd">20000</tgen:EnergyProductionAgreementsSiteDecommissioningCosts>
    <tgen:EnergyProductionAgreementsSiteDecommissioningCosts contextRef="c-13" decimals="0" id="f-512" unitRef="usd">0</tgen:EnergyProductionAgreementsSiteDecommissioningCosts>
    <us-gaap:InventoryDisclosureTextBlock contextRef="c-1" id="f-513">Inventory, net&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Inventory at December&#160;31, 2024 and 2023 consisted of the following.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:center;text-indent:36pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:57.748%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:53.583%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:20.925%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.065%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:20.927%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 1.75pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Raw materials, net&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;8,525,879&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;8,803,054&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Work-in-process&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;930,769&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;798,522&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Finished goods, net&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;177,357&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;951,843&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;9,634,005&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;10,553,419&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:InventoryDisclosureTextBlock>
    <us-gaap:ScheduleOfInventoryCurrentTableTextBlock contextRef="c-1" id="f-514">&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Inventory at December&#160;31, 2024 and 2023 consisted of the following.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:center;text-indent:36pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:57.748%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:53.583%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:20.925%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.065%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:20.927%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 1.75pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Raw materials, net&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;8,525,879&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;8,803,054&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Work-in-process&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;930,769&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;798,522&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Finished goods, net&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;177,357&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;951,843&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;9,634,005&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;10,553,419&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfInventoryCurrentTableTextBlock>
    <us-gaap:InventoryRawMaterialsNetOfReserves contextRef="c-5" decimals="0" id="f-515" unitRef="usd">8525879</us-gaap:InventoryRawMaterialsNetOfReserves>
    <us-gaap:InventoryRawMaterialsNetOfReserves contextRef="c-6" decimals="0" id="f-516" unitRef="usd">8803054</us-gaap:InventoryRawMaterialsNetOfReserves>
    <us-gaap:InventoryWorkInProcessNetOfReserves contextRef="c-5" decimals="0" id="f-517" unitRef="usd">930769</us-gaap:InventoryWorkInProcessNetOfReserves>
    <us-gaap:InventoryWorkInProcessNetOfReserves contextRef="c-6" decimals="0" id="f-518" unitRef="usd">798522</us-gaap:InventoryWorkInProcessNetOfReserves>
    <us-gaap:InventoryFinishedGoodsNetOfReserves contextRef="c-5" decimals="0" id="f-519" unitRef="usd">177357</us-gaap:InventoryFinishedGoodsNetOfReserves>
    <us-gaap:InventoryFinishedGoodsNetOfReserves contextRef="c-6" decimals="0" id="f-520" unitRef="usd">951843</us-gaap:InventoryFinishedGoodsNetOfReserves>
    <us-gaap:InventoryNet contextRef="c-5" decimals="0" id="f-521" unitRef="usd">9634005</us-gaap:InventoryNet>
    <us-gaap:InventoryNet contextRef="c-6" decimals="0" id="f-522" unitRef="usd">10553419</us-gaap:InventoryNet>
    <us-gaap:IntangibleAssetsDisclosureTextBlock contextRef="c-1" id="f-523">Intangible Assets and Liabilities Other Than Goodwill&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;During the years ended December&#160;31, 2024 and 2023, we did not capitalize any cost incurred for product certification costs, patent-related costs or trademarks.  Also included in intangible assets are legal costs incurred by us to obtain patents for our intellectual property.  These patents, once they are placed in service, are amortized on a straight-line basis over the estimated economic life of the associated product, which ranges from approximately 7-10 years.  &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Intangible assets and liabilities at December&#160;31, 2024 and 2023 consist of the following:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:center;text-indent:36pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:501.00pt"&gt;&lt;tr&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:132.25pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.75pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:51.25pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.75pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:63.25pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.75pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:51.25pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.75pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:51.25pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.75pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:63.25pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.75pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:52.00pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="15" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;December 31, 2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="15" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:23pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Intangible assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Cost&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Accumulated Amortization&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Net&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Cost&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Accumulated Amortization&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Net&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:2pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Product certifications&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;777,465&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(709,855)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;67,610&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;777,465&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(658,676)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;118,789&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Patents&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;888,910&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(584,493)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;304,417&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;888,910&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(496,807)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;392,103&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Developed technology&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;240,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(188,000)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;52,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;240,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(172,000)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;68,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Trademarks&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;26,896&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;26,896&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;26,896&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;26,896&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;In process R&amp;amp;D&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;263,936&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(141,394)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;122,542&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;263,936&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(103,689)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;160,247&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Favorable contract assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;384,465&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(379,839)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4,626&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;384,465&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(376,139)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;8,326&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Customer contract&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,225,123&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(290,025)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,935,098&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,772,659&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(110,791)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,661,868&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4,806,795&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(2,293,606)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,513,189&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4,354,331&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(1,918,102)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,436,229&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Intangible liability&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:2pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Unfavorable contract liability&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,618,168&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(2,195,329)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;422,839&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,618,168&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(2,019,122)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;599,046&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The aggregate amortization expense related to non-contract related intangible assets was $192,571 and $222,884 during the years ended December&#160;31, 2024 and 2023, respectively. The net aggregate expense (credit) related to the amortization of the contract related intangible assets and liabilities for the years ended December&#160;31, 2024 and 2023 was $6,727 and $(110,031), respectively.  &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Contract Asset and Liability&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The favorable contract asset and unfavorable contract liability in the foregoing table represent the fair value of ADGE's customer contracts (both positive for favorable contracts and negative for unfavorable contracts) which were acquired by us on May 18, 2017 (see Note 4. "Acquisition of American DG Energy Inc."). The customer contract asset includes the maintenance services contracts acquired by us on April 1, 2023 as part of the Aegis acquisition and pursuant to the February 2024 Amendment and the May 2024 Amendment.  (See Note 5. "Aegis Contract and Related Asset Acquisition". &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Amortization of intangibles including contract related amounts is calculated using the straight line method over the remaining useful life or contract term, which range from approximately &lt;span style="-sec-ix-hidden:f-585"&gt;one&lt;/span&gt; to eleven years, and is charged against cost of sales in the accompanying consolidated statement of operations. Aggregate future amortization over the next five years is estimated to be as follows:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:5pt;text-align:center;text-indent:36pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:404.25pt"&gt;&lt;tr&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:193.75pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:3.25pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:63.25pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.75pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:63.25pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.75pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:63.25pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:33pt"&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Non-contract related intangibles&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Contract related intangibles&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Total&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2025&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;169,754&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;79,042&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;248,796&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2026&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;168,244&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;124,483&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;292,727&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2027&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;167,936&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;131,199&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;299,135&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2028&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;23,278&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;137,208&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;160,486&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2029&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;5,786&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;137,208&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;142,994&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Thereafter&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;11,571&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;907,745&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;919,316&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-bottom:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;546,569&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,516,885&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,063,454&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:IntangibleAssetsDisclosureTextBlock>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife contextRef="c-74" id="f-524">P7Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife contextRef="c-75" id="f-525">P10Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock contextRef="c-1" id="f-526">&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Intangible assets and liabilities at December&#160;31, 2024 and 2023 consist of the following:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:center;text-indent:36pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:501.00pt"&gt;&lt;tr&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:132.25pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.75pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:51.25pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.75pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:63.25pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.75pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:51.25pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.75pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:51.25pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.75pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:63.25pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.75pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:52.00pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="15" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;December 31, 2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="15" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:23pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Intangible assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Cost&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Accumulated Amortization&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Net&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Cost&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Accumulated Amortization&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Net&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:2pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Product certifications&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;777,465&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(709,855)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;67,610&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;777,465&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(658,676)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;118,789&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Patents&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;888,910&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(584,493)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;304,417&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;888,910&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(496,807)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;392,103&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Developed technology&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;240,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(188,000)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;52,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;240,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(172,000)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;68,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Trademarks&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;26,896&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;26,896&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;26,896&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;26,896&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;In process R&amp;amp;D&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;263,936&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(141,394)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;122,542&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;263,936&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(103,689)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;160,247&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Favorable contract assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;384,465&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(379,839)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4,626&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;384,465&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(376,139)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;8,326&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Customer contract&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,225,123&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(290,025)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,935,098&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,772,659&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(110,791)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,661,868&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4,806,795&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(2,293,606)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,513,189&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4,354,331&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(1,918,102)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,436,229&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Intangible liability&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:2pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Unfavorable contract liability&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,618,168&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(2,195,329)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;422,839&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,618,168&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(2,019,122)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;599,046&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock>
    <us-gaap:IntangibleAssetsGrossExcludingGoodwill contextRef="c-76" decimals="0" id="f-527" unitRef="usd">777465</us-gaap:IntangibleAssetsGrossExcludingGoodwill>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization contextRef="c-76" decimals="0" id="f-528" unitRef="usd">709855</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:IntangibleAssetsNetExcludingGoodwill contextRef="c-76" decimals="0" id="f-529" unitRef="usd">67610</us-gaap:IntangibleAssetsNetExcludingGoodwill>
    <us-gaap:IntangibleAssetsGrossExcludingGoodwill contextRef="c-77" decimals="0" id="f-530" unitRef="usd">777465</us-gaap:IntangibleAssetsGrossExcludingGoodwill>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization contextRef="c-77" decimals="0" id="f-531" unitRef="usd">658676</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:IntangibleAssetsNetExcludingGoodwill contextRef="c-77" decimals="0" id="f-532" unitRef="usd">118789</us-gaap:IntangibleAssetsNetExcludingGoodwill>
    <us-gaap:IntangibleAssetsGrossExcludingGoodwill contextRef="c-78" decimals="0" id="f-533" unitRef="usd">888910</us-gaap:IntangibleAssetsGrossExcludingGoodwill>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization contextRef="c-78" decimals="0" id="f-534" unitRef="usd">584493</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:IntangibleAssetsNetExcludingGoodwill contextRef="c-78" decimals="0" id="f-535" unitRef="usd">304417</us-gaap:IntangibleAssetsNetExcludingGoodwill>
    <us-gaap:IntangibleAssetsGrossExcludingGoodwill contextRef="c-79" decimals="0" id="f-536" unitRef="usd">888910</us-gaap:IntangibleAssetsGrossExcludingGoodwill>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization contextRef="c-79" decimals="0" id="f-537" unitRef="usd">496807</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:IntangibleAssetsNetExcludingGoodwill contextRef="c-79" decimals="0" id="f-538" unitRef="usd">392103</us-gaap:IntangibleAssetsNetExcludingGoodwill>
    <us-gaap:IntangibleAssetsGrossExcludingGoodwill contextRef="c-80" decimals="0" id="f-539" unitRef="usd">240000</us-gaap:IntangibleAssetsGrossExcludingGoodwill>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization contextRef="c-80" decimals="0" id="f-540" unitRef="usd">188000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:IntangibleAssetsNetExcludingGoodwill contextRef="c-80" decimals="0" id="f-541" unitRef="usd">52000</us-gaap:IntangibleAssetsNetExcludingGoodwill>
    <us-gaap:IntangibleAssetsGrossExcludingGoodwill contextRef="c-81" decimals="0" id="f-542" unitRef="usd">240000</us-gaap:IntangibleAssetsGrossExcludingGoodwill>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization contextRef="c-81" decimals="0" id="f-543" unitRef="usd">172000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:IntangibleAssetsNetExcludingGoodwill contextRef="c-81" decimals="0" id="f-544" unitRef="usd">68000</us-gaap:IntangibleAssetsNetExcludingGoodwill>
    <us-gaap:IntangibleAssetsGrossExcludingGoodwill contextRef="c-82" decimals="0" id="f-545" unitRef="usd">26896</us-gaap:IntangibleAssetsGrossExcludingGoodwill>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization contextRef="c-82" decimals="0" id="f-546" unitRef="usd">0</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:IntangibleAssetsNetExcludingGoodwill contextRef="c-82" decimals="0" id="f-547" unitRef="usd">26896</us-gaap:IntangibleAssetsNetExcludingGoodwill>
    <us-gaap:IntangibleAssetsGrossExcludingGoodwill contextRef="c-83" decimals="0" id="f-548" unitRef="usd">26896</us-gaap:IntangibleAssetsGrossExcludingGoodwill>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization contextRef="c-83" decimals="0" id="f-549" unitRef="usd">0</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:IntangibleAssetsNetExcludingGoodwill contextRef="c-83" decimals="0" id="f-550" unitRef="usd">26896</us-gaap:IntangibleAssetsNetExcludingGoodwill>
    <us-gaap:IntangibleAssetsGrossExcludingGoodwill contextRef="c-84" decimals="0" id="f-551" unitRef="usd">263936</us-gaap:IntangibleAssetsGrossExcludingGoodwill>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization contextRef="c-84" decimals="0" id="f-552" unitRef="usd">141394</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:IntangibleAssetsNetExcludingGoodwill contextRef="c-84" decimals="0" id="f-553" unitRef="usd">122542</us-gaap:IntangibleAssetsNetExcludingGoodwill>
    <us-gaap:IntangibleAssetsGrossExcludingGoodwill contextRef="c-85" decimals="0" id="f-554" unitRef="usd">263936</us-gaap:IntangibleAssetsGrossExcludingGoodwill>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization contextRef="c-85" decimals="0" id="f-555" unitRef="usd">103689</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:IntangibleAssetsNetExcludingGoodwill contextRef="c-85" decimals="0" id="f-556" unitRef="usd">160247</us-gaap:IntangibleAssetsNetExcludingGoodwill>
    <us-gaap:IntangibleAssetsGrossExcludingGoodwill contextRef="c-86" decimals="0" id="f-557" unitRef="usd">384465</us-gaap:IntangibleAssetsGrossExcludingGoodwill>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization contextRef="c-86" decimals="0" id="f-558" unitRef="usd">379839</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:IntangibleAssetsNetExcludingGoodwill contextRef="c-86" decimals="0" id="f-559" unitRef="usd">4626</us-gaap:IntangibleAssetsNetExcludingGoodwill>
    <us-gaap:IntangibleAssetsGrossExcludingGoodwill contextRef="c-87" decimals="0" id="f-560" unitRef="usd">384465</us-gaap:IntangibleAssetsGrossExcludingGoodwill>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization contextRef="c-87" decimals="0" id="f-561" unitRef="usd">376139</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:IntangibleAssetsNetExcludingGoodwill contextRef="c-87" decimals="0" id="f-562" unitRef="usd">8326</us-gaap:IntangibleAssetsNetExcludingGoodwill>
    <us-gaap:IntangibleAssetsGrossExcludingGoodwill contextRef="c-88" decimals="0" id="f-563" unitRef="usd">2225123</us-gaap:IntangibleAssetsGrossExcludingGoodwill>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization contextRef="c-88" decimals="0" id="f-564" unitRef="usd">290025</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:IntangibleAssetsNetExcludingGoodwill contextRef="c-88" decimals="0" id="f-565" unitRef="usd">1935098</us-gaap:IntangibleAssetsNetExcludingGoodwill>
    <us-gaap:IntangibleAssetsGrossExcludingGoodwill contextRef="c-89" decimals="0" id="f-566" unitRef="usd">1772659</us-gaap:IntangibleAssetsGrossExcludingGoodwill>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization contextRef="c-89" decimals="0" id="f-567" unitRef="usd">110791</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:IntangibleAssetsNetExcludingGoodwill contextRef="c-89" decimals="0" id="f-568" unitRef="usd">1661868</us-gaap:IntangibleAssetsNetExcludingGoodwill>
    <us-gaap:IntangibleAssetsGrossExcludingGoodwill contextRef="c-5" decimals="0" id="f-569" unitRef="usd">4806795</us-gaap:IntangibleAssetsGrossExcludingGoodwill>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization contextRef="c-5" decimals="0" id="f-570" unitRef="usd">2293606</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:IntangibleAssetsNetExcludingGoodwill contextRef="c-5" decimals="0" id="f-571" unitRef="usd">2513189</us-gaap:IntangibleAssetsNetExcludingGoodwill>
    <us-gaap:IntangibleAssetsGrossExcludingGoodwill contextRef="c-6" decimals="0" id="f-572" unitRef="usd">4354331</us-gaap:IntangibleAssetsGrossExcludingGoodwill>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization contextRef="c-6" decimals="0" id="f-573" unitRef="usd">1918102</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:IntangibleAssetsNetExcludingGoodwill contextRef="c-6" decimals="0" id="f-574" unitRef="usd">2436229</us-gaap:IntangibleAssetsNetExcludingGoodwill>
    <tgen:IntangibleLiabilityGross contextRef="c-90" decimals="0" id="f-575" unitRef="usd">2618168</tgen:IntangibleLiabilityGross>
    <tgen:FiniteLivedIntangibleLiabilitiesAccumulatedAmortization contextRef="c-90" decimals="0" id="f-576" unitRef="usd">2195329</tgen:FiniteLivedIntangibleLiabilitiesAccumulatedAmortization>
    <tgen:IntangibleLiabilitiesNet contextRef="c-90" decimals="0" id="f-577" unitRef="usd">422839</tgen:IntangibleLiabilitiesNet>
    <tgen:IntangibleLiabilityGross contextRef="c-91" decimals="0" id="f-578" unitRef="usd">2618168</tgen:IntangibleLiabilityGross>
    <tgen:FiniteLivedIntangibleLiabilitiesAccumulatedAmortization contextRef="c-91" decimals="0" id="f-579" unitRef="usd">2019122</tgen:FiniteLivedIntangibleLiabilitiesAccumulatedAmortization>
    <tgen:IntangibleLiabilitiesNet contextRef="c-91" decimals="0" id="f-580" unitRef="usd">599046</tgen:IntangibleLiabilitiesNet>
    <us-gaap:AmortizationOfIntangibleAssets contextRef="c-1" decimals="0" id="f-581" unitRef="usd">192571</us-gaap:AmortizationOfIntangibleAssets>
    <us-gaap:AmortizationOfIntangibleAssets contextRef="c-13" decimals="0" id="f-582" unitRef="usd">222884</us-gaap:AmortizationOfIntangibleAssets>
    <tgen:AmortizationofContractRelatedIntangibleAssetsandLiabilitiesNet contextRef="c-1" decimals="0" id="f-583" unitRef="usd">6727</tgen:AmortizationofContractRelatedIntangibleAssetsandLiabilitiesNet>
    <tgen:AmortizationofContractRelatedIntangibleAssetsandLiabilitiesNet contextRef="c-13" decimals="0" id="f-584" unitRef="usd">-110031</tgen:AmortizationofContractRelatedIntangibleAssetsandLiabilitiesNet>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife contextRef="c-93" id="f-586">P11Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock contextRef="c-1" id="f-587">Aggregate future amortization over the next five years is estimated to be as follows:&lt;div style="margin-bottom:6pt;margin-top:5pt;text-align:center;text-indent:36pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:404.25pt"&gt;&lt;tr&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:193.75pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:3.25pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:63.25pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.75pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:63.25pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.75pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:63.25pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:33pt"&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Non-contract related intangibles&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Contract related intangibles&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Total&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2025&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;169,754&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;79,042&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;248,796&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2026&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;168,244&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;124,483&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;292,727&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2027&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;167,936&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;131,199&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;299,135&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2028&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;23,278&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;137,208&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;160,486&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2029&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;5,786&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;137,208&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;142,994&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Thereafter&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;11,571&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;907,745&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;919,316&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-bottom:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;546,569&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,516,885&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,063,454&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseNextRollingTwelveMonths contextRef="c-94" decimals="0" id="f-588" unitRef="usd">169754</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseNextRollingTwelveMonths>
    <tgen:FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseNextRolling12Months contextRef="c-95" decimals="0" id="f-589" unitRef="usd">79042</tgen:FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseNextRolling12Months>
    <tgen:FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseNextRolling12Months contextRef="c-5" decimals="0" id="f-590" unitRef="usd">248796</tgen:FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseNextRolling12Months>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseRollingYearTwo contextRef="c-94" decimals="0" id="f-591" unitRef="usd">168244</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseRollingYearTwo>
    <tgen:FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearTwo contextRef="c-95" decimals="0" id="f-592" unitRef="usd">124483</tgen:FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearTwo>
    <tgen:FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearTwo contextRef="c-5" decimals="0" id="f-593" unitRef="usd">292727</tgen:FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearTwo>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseRollingYearThree contextRef="c-94" decimals="0" id="f-594" unitRef="usd">167936</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseRollingYearThree>
    <tgen:FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearThree contextRef="c-95" decimals="0" id="f-595" unitRef="usd">131199</tgen:FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearThree>
    <tgen:FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearThree contextRef="c-5" decimals="0" id="f-596" unitRef="usd">299135</tgen:FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearThree>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseRollingYearFour contextRef="c-94" decimals="0" id="f-597" unitRef="usd">23278</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseRollingYearFour>
    <tgen:FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearFour contextRef="c-95" decimals="0" id="f-598" unitRef="usd">137208</tgen:FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearFour>
    <tgen:FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearFour contextRef="c-5" decimals="0" id="f-599" unitRef="usd">160486</tgen:FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearFour>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseRollingYearFive contextRef="c-94" decimals="0" id="f-600" unitRef="usd">5786</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseRollingYearFive>
    <tgen:FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearFive contextRef="c-95" decimals="0" id="f-601" unitRef="usd">137208</tgen:FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearFive>
    <tgen:FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearFive contextRef="c-5" decimals="0" id="f-602" unitRef="usd">142994</tgen:FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingYearFive>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseRollingAfterYearFive contextRef="c-94" decimals="0" id="f-603" unitRef="usd">11571</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseRollingAfterYearFive>
    <tgen:FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingAfterYearFive contextRef="c-95" decimals="0" id="f-604" unitRef="usd">907745</tgen:FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingAfterYearFive>
    <tgen:FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingAfterYearFive contextRef="c-5" decimals="0" id="f-605" unitRef="usd">919316</tgen:FiniteLivedIntangibleAssetsAndLiabilityNetAmortizationExpenseRollingAfterYearFive>
    <us-gaap:FiniteLivedIntangibleAssetsNet contextRef="c-94" decimals="0" id="f-606" unitRef="usd">546569</us-gaap:FiniteLivedIntangibleAssetsNet>
    <tgen:FiniteLivedIntangibleAssetsAndLiabilitiesNet contextRef="c-95" decimals="0" id="f-607" unitRef="usd">1516885</tgen:FiniteLivedIntangibleAssetsAndLiabilitiesNet>
    <tgen:FiniteLivedIntangibleAssetsAndLiabilitiesNet contextRef="c-5" decimals="0" id="f-608" unitRef="usd">2063454</tgen:FiniteLivedIntangibleAssetsAndLiabilitiesNet>
    <us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock contextRef="c-1" id="f-609">Property, Plant and Equipment, net&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Property, plant and equipment at December&#160;31, 2024 and 2023 consisted of the following:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:center;text-indent:36pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:83.918%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:50.293%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.450%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.671%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:14.056%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.671%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:14.059%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Estimated&#160;Useful&lt;br/&gt;Life&#160;(in&#160;Years)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Energy systems&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;10 - 15 years&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,810,232&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,810,232&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Machinery and equipment&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;5 - 7 years&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,598,538&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,744,596&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Furniture and fixtures&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;5 years&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;224,868&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;212,963&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Computer software&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;3 - 5 years&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;192,865&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;192,865&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Leasehold improvements&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;*&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;906,739&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;466,789&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;5,733,242&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;5,427,445&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Less - accumulated depreciation and amortization&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(3,995,206)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(4,264,868)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Net property, plant and equipment&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,738,036&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,162,577&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-indent:72pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;* Lesser of estimated useful life of asset or lease term&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Depreciation and amortization expense on property and equipment for the years ended December&#160;31, 2024 and 2023 was $354,485 and $454,859, respectively. During the year ended December&#160;31, 2024, we received proceeds of $51,400 from the disposition of certain assets realizing a gain of $12,181. During the year ended December&#160;31, 2023, we received proceeds of $34,655 from the disposition of certain assets and reversed $8,687 of accrued decomissioning costs from a former ADGE energy site, realizing a gain of $36,207. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;During the years December&#160;31, 2024 and 2023, we evaluated the ADGE customer contracts and and related assets and did not deem any assets to be impaired.&lt;/span&gt;&lt;/div&gt;During the year ended December&#160;31, 2024 and 2023 there were no ADGE contract terminations.</us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock>
    <us-gaap:PropertyPlantAndEquipmentTextBlock contextRef="c-1" id="f-610">&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Property, plant and equipment at December&#160;31, 2024 and 2023 consisted of the following:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:center;text-indent:36pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:83.918%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:50.293%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.450%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.671%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:14.056%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.671%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:14.059%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Estimated&#160;Useful&lt;br/&gt;Life&#160;(in&#160;Years)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Energy systems&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;10 - 15 years&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,810,232&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,810,232&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Machinery and equipment&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;5 - 7 years&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,598,538&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,744,596&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Furniture and fixtures&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;5 years&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;224,868&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;212,963&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Computer software&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;3 - 5 years&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;192,865&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;192,865&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Leasehold improvements&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;*&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;906,739&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;466,789&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;5,733,242&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;5,427,445&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Less - accumulated depreciation and amortization&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(3,995,206)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(4,264,868)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Net property, plant and equipment&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,738,036&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,162,577&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-indent:72pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;* Lesser of estimated useful life of asset or lease term&lt;/span&gt;&lt;/div&gt;</us-gaap:PropertyPlantAndEquipmentTextBlock>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife contextRef="c-96" id="f-611">P10Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife contextRef="c-97" id="f-612">P15Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:PropertyPlantAndEquipmentGross contextRef="c-98" decimals="0" id="f-613" unitRef="usd">2810232</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross contextRef="c-99" decimals="0" id="f-614" unitRef="usd">2810232</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife contextRef="c-100" id="f-615">P5Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife contextRef="c-101" id="f-616">P7Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:PropertyPlantAndEquipmentGross contextRef="c-102" decimals="0" id="f-617" unitRef="usd">1598538</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross contextRef="c-103" decimals="0" id="f-618" unitRef="usd">1744596</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife contextRef="c-104" id="f-619">P5Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:PropertyPlantAndEquipmentGross contextRef="c-104" decimals="0" id="f-620" unitRef="usd">224868</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross contextRef="c-105" decimals="0" id="f-621" unitRef="usd">212963</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife contextRef="c-106" id="f-622">P3Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife contextRef="c-107" id="f-623">P5Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:PropertyPlantAndEquipmentGross contextRef="c-108" decimals="0" id="f-624" unitRef="usd">192865</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross contextRef="c-109" decimals="0" id="f-625" unitRef="usd">192865</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross contextRef="c-110" decimals="0" id="f-626" unitRef="usd">906739</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross contextRef="c-111" decimals="0" id="f-627" unitRef="usd">466789</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross contextRef="c-5" decimals="0" id="f-628" unitRef="usd">5733242</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross contextRef="c-6" decimals="0" id="f-629" unitRef="usd">5427445</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment contextRef="c-5" decimals="0" id="f-630" unitRef="usd">3995206</us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment>
    <us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment contextRef="c-6" decimals="0" id="f-631" unitRef="usd">4264868</us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment>
    <us-gaap:PropertyPlantAndEquipmentNet contextRef="c-5" decimals="0" id="f-632" unitRef="usd">1738036</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:PropertyPlantAndEquipmentNet contextRef="c-6" decimals="0" id="f-633" unitRef="usd">1162577</us-gaap:PropertyPlantAndEquipmentNet>
    <tgen:DepreciationDepletionandAmortizationPropertyPlantandEquipment contextRef="c-1" decimals="0" id="f-634" unitRef="usd">354485</tgen:DepreciationDepletionandAmortizationPropertyPlantandEquipment>
    <tgen:DepreciationDepletionandAmortizationPropertyPlantandEquipment contextRef="c-13" decimals="0" id="f-635" unitRef="usd">454859</tgen:DepreciationDepletionandAmortizationPropertyPlantandEquipment>
    <us-gaap:ProceedsFromSaleOfPropertyPlantAndEquipment contextRef="c-1" decimals="0" id="f-636" unitRef="usd">51400</us-gaap:ProceedsFromSaleOfPropertyPlantAndEquipment>
    <us-gaap:GainLossOnDispositionOfAssets1 contextRef="c-1" decimals="0" id="f-637" unitRef="usd">12181</us-gaap:GainLossOnDispositionOfAssets1>
    <us-gaap:ProceedsFromSaleOfPropertyPlantAndEquipment contextRef="c-13" decimals="0" id="f-638" unitRef="usd">34655</us-gaap:ProceedsFromSaleOfPropertyPlantAndEquipment>
    <tgen:AccruedDecommissioningCosts contextRef="c-112" decimals="0" id="f-639" unitRef="usd">-8687</tgen:AccruedDecommissioningCosts>
    <us-gaap:GainLossOnDispositionOfAssets1 contextRef="c-13" decimals="0" id="f-640" unitRef="usd">36207</us-gaap:GainLossOnDispositionOfAssets1>
    <us-gaap:GoodwillDisclosureTextBlock contextRef="c-1" id="f-641">Goodwill&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Changes in the carrying amount of goodwill by reportable segment during the years ended December&#160;31, 2024 and 2023  was as follows:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:center;text-indent:36pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:442.50pt"&gt;&lt;tr&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:148.00pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:67.75pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.75pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:67.75pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:4.75pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:67.75pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.00pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:67.75pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:24pt"&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Products&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Services&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Energy Production&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Total&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Balance at December 31, 2022&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;40,870&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,365,286&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,406,156&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Impairment&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Acquisition&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;337,268&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;337,268&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Balance at December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;40,870&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;337,268&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,365,286&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,743,424&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Impairment&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(217,295)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(217,295)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Acquisition - adjustment&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(179,563)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(179,563)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Balance at December 31, 2024&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;40,870&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;157,705&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,147,991&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,346,566&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We performed a goodwill impairment test of the Energy Production goodwill at December&#160;31, 2024 and determined that the carrying value of the assets exceeded estimated fair value of the of the assets, based on a discounted cash flow analysis, and recorded a goodwill impairment for the year ended December&#160;31, 2024. We performed a goodwill impairment test of the Services goodwill and determined that the estimated fair value of the assets, based on a discounted cash flow analysis, exceeded the carrying value of the assets, therefore no impairment existed for the year ended December&#160;31, 2024. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;See Note 6. "Sale of Energy Producing Assets and Goodwill Impairment" and Note 5. "Aegis Contract and Related Asset Acquisition" for further discussion.&lt;/span&gt;&lt;/div&gt;</us-gaap:GoodwillDisclosureTextBlock>
    <us-gaap:ScheduleOfGoodwillTextBlock contextRef="c-1" id="f-642">&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Changes in the carrying amount of goodwill by reportable segment during the years ended December&#160;31, 2024 and 2023  was as follows:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:center;text-indent:36pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:442.50pt"&gt;&lt;tr&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:148.00pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:67.75pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.75pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:67.75pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:4.75pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:67.75pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.00pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:67.75pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:24pt"&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Products&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Services&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Energy Production&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Total&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Balance at December 31, 2022&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;40,870&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,365,286&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,406,156&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Impairment&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Acquisition&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;337,268&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;337,268&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Balance at December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;40,870&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;337,268&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,365,286&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,743,424&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Impairment&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(217,295)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(217,295)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Acquisition - adjustment&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(179,563)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(179,563)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Balance at December 31, 2024&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;40,870&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;157,705&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,147,991&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,346,566&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfGoodwillTextBlock>
    <us-gaap:Goodwill contextRef="c-113" decimals="0" id="f-643" unitRef="usd">40870</us-gaap:Goodwill>
    <us-gaap:Goodwill contextRef="c-114" decimals="0" id="f-644" unitRef="usd">0</us-gaap:Goodwill>
    <us-gaap:Goodwill contextRef="c-115" decimals="0" id="f-645" unitRef="usd">2365286</us-gaap:Goodwill>
    <us-gaap:Goodwill contextRef="c-18" decimals="0" id="f-646" unitRef="usd">2406156</us-gaap:Goodwill>
    <us-gaap:GoodwillImpairmentLoss contextRef="c-47" decimals="0" id="f-647" unitRef="usd">0</us-gaap:GoodwillImpairmentLoss>
    <us-gaap:GoodwillImpairmentLoss contextRef="c-53" decimals="0" id="f-648" unitRef="usd">0</us-gaap:GoodwillImpairmentLoss>
    <us-gaap:GoodwillImpairmentLoss contextRef="c-116" decimals="0" id="f-649" unitRef="usd">0</us-gaap:GoodwillImpairmentLoss>
    <us-gaap:GoodwillImpairmentLoss contextRef="c-13" decimals="0" id="f-650" unitRef="usd">0</us-gaap:GoodwillImpairmentLoss>
    <us-gaap:GoodwillAcquiredDuringPeriod contextRef="c-47" decimals="0" id="f-651" unitRef="usd">0</us-gaap:GoodwillAcquiredDuringPeriod>
    <us-gaap:GoodwillAcquiredDuringPeriod contextRef="c-53" decimals="0" id="f-652" unitRef="usd">337268</us-gaap:GoodwillAcquiredDuringPeriod>
    <us-gaap:GoodwillAcquiredDuringPeriod contextRef="c-116" decimals="0" id="f-653" unitRef="usd">0</us-gaap:GoodwillAcquiredDuringPeriod>
    <us-gaap:GoodwillAcquiredDuringPeriod contextRef="c-13" decimals="0" id="f-654" unitRef="usd">337268</us-gaap:GoodwillAcquiredDuringPeriod>
    <us-gaap:Goodwill contextRef="c-117" decimals="0" id="f-655" unitRef="usd">40870</us-gaap:Goodwill>
    <us-gaap:Goodwill contextRef="c-118" decimals="0" id="f-656" unitRef="usd">337268</us-gaap:Goodwill>
    <us-gaap:Goodwill contextRef="c-119" decimals="0" id="f-657" unitRef="usd">2365286</us-gaap:Goodwill>
    <us-gaap:Goodwill contextRef="c-6" decimals="0" id="f-658" unitRef="usd">2743424</us-gaap:Goodwill>
    <us-gaap:GoodwillImpairmentLoss contextRef="c-46" decimals="0" id="f-659" unitRef="usd">0</us-gaap:GoodwillImpairmentLoss>
    <us-gaap:GoodwillImpairmentLoss contextRef="c-52" decimals="0" id="f-660" unitRef="usd">0</us-gaap:GoodwillImpairmentLoss>
    <us-gaap:GoodwillImpairmentLoss contextRef="c-120" decimals="0" id="f-661" unitRef="usd">217295</us-gaap:GoodwillImpairmentLoss>
    <us-gaap:GoodwillImpairmentLoss contextRef="c-1" decimals="0" id="f-662" unitRef="usd">217295</us-gaap:GoodwillImpairmentLoss>
    <us-gaap:GoodwillPurchaseAccountingAdjustments contextRef="c-47" decimals="0" id="f-663" unitRef="usd">0</us-gaap:GoodwillPurchaseAccountingAdjustments>
    <us-gaap:GoodwillPurchaseAccountingAdjustments contextRef="c-53" decimals="0" id="f-664" unitRef="usd">-179563</us-gaap:GoodwillPurchaseAccountingAdjustments>
    <us-gaap:GoodwillPurchaseAccountingAdjustments contextRef="c-116" decimals="0" id="f-665" unitRef="usd">0</us-gaap:GoodwillPurchaseAccountingAdjustments>
    <us-gaap:GoodwillPurchaseAccountingAdjustments contextRef="c-13" decimals="0" id="f-666" unitRef="usd">-179563</us-gaap:GoodwillPurchaseAccountingAdjustments>
    <us-gaap:Goodwill contextRef="c-121" decimals="0" id="f-667" unitRef="usd">40870</us-gaap:Goodwill>
    <us-gaap:Goodwill contextRef="c-122" decimals="0" id="f-668" unitRef="usd">157705</us-gaap:Goodwill>
    <us-gaap:Goodwill contextRef="c-123" decimals="0" id="f-669" unitRef="usd">2147991</us-gaap:Goodwill>
    <us-gaap:Goodwill contextRef="c-5" decimals="0" id="f-670" unitRef="usd">2346566</us-gaap:Goodwill>
    <us-gaap:GoodwillImpairmentLoss contextRef="c-52" decimals="0" id="f-671" unitRef="usd">0</us-gaap:GoodwillImpairmentLoss>
    <us-gaap:DebtDisclosureTextBlock contextRef="c-1" id="f-672">Related Party Notes  &lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;On October 9, 2023, we entered into note subscription agreements with each of John N. Hatsopoulos and Earl R. Lewis, III, each a director and shareholder of the Company, pursuant to which Mr. Hatsopoulos agreed to provide financing to us of up to $1,000,000, and Mr. Lewis agreed to provide financing to us of $500,000, and potentially, an additional $500,000 at his discretion. On October 10, 2023, we borrowed $500,000 from Mr. Hatsopoulos and issued him a one-year promissory note with interest accruing at 5.12% per annum. On July 23, 2024, we borrowed an additional $500,000 from Mr. Hatsopoulos, and issued a one-year promissory note with interest accruing at 5.06% per annum.  On March 21, 2024, John H. Hatsopoulos amended the terms of the promissory note, dated October 10, 2023, extending the maturity date by one year, making the maturity date October 10, 2025. On September 18, 2024, we borrowed $500,000 from Mr. Lewis and issued him a one-year promissory note with interest accruing at 4.57% per annum. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;On January 14, 2025 we agreed to permit Mr. Lewis to either receive repayment of his note in cash or, at his discretion, convert the balance of the promissory note into shares of our common stock.  In the event of such a conversion, the number of shares of we will be required to issue will be determined by dividing the balance due under the promissory note by the average closing price per share of our shares during the thirty-day period prior to the date of conversion.  &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;On February 18, 2025 we amended the promissory notes with Mr. Hatsopoulos to extend the maturity dates for both promissory notes to July 31, 2026.  We also agreed to permit Mr. Hatsopoulos to either receive repayment of his notes in cash, or at his discretion, convert the balance(s) due of one or both of the promissory notes into shares of our common stock. In the event of such a conversion, the number of shares we will be required to issue will be determined by dividing the balance(s) due under the promissory note(s) by the average closing price per share of our shares during the thirty-day period prior to the date of conversion. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The loans are required to be repaid in the event of a change of control of the company and upon the occurrence of an event of default under the note, including upon a failure to pay when due the principal and interest when due, or the commencement of voluntary or involuntary bankruptcy or insolvency proceeding.&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The loans and terms of the loan agreements were unanimously approved by our board of directors.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The loans bear interest on the outstanding principal at the Internal Revenue Service&#x2019;s Applicable Federal Rate to be determined at the time we issue a promissory note in connection with a loan drawdown. The notes may be prepaid by us at any time. The principal amount of each loan and accrued interest is subject to mandatory prepayment in the event of a change of control of the registrant. The promissory notes are subject to customary events of default and are transferable provided the conditions to transfer set forth in the promissory notes are satisfied by the noteholder. The proceeds of the loans are expected to be used for general working capital purposes. &lt;/span&gt;&lt;/div&gt;At December&#160;31, 2024 our obligation to Mr. Hatsopoulos under the promissory notes, inclusive of $42,398 of accrued and unpaid interest, was $1,042,398. At December&#160;31, 2024 our obligation to Mr. Lewis under the promissory note, inclusive of $6,474 of accrued and unpaid interest, was $506,474.</us-gaap:DebtDisclosureTextBlock>
    <us-gaap:NotesPayable contextRef="c-124" decimals="0" id="f-673" unitRef="usd">1000000</us-gaap:NotesPayable>
    <us-gaap:NotesPayable contextRef="c-125" decimals="0" id="f-674" unitRef="usd">500000</us-gaap:NotesPayable>
    <us-gaap:NotesPayable contextRef="c-125" decimals="0" id="f-675" unitRef="usd">500000</us-gaap:NotesPayable>
    <us-gaap:NotesPayable contextRef="c-126" decimals="0" id="f-676" unitRef="usd">500000</us-gaap:NotesPayable>
    <tgen:RelatedPartyTransactionPeriod contextRef="c-127" id="f-677">P1Y</tgen:RelatedPartyTransactionPeriod>
    <us-gaap:RelatedPartyTransactionRate contextRef="c-127" decimals="4" id="f-678" unitRef="number">0.0512</us-gaap:RelatedPartyTransactionRate>
    <us-gaap:NotesPayable contextRef="c-128" decimals="0" id="f-679" unitRef="usd">500000</us-gaap:NotesPayable>
    <tgen:RelatedPartyTransactionPeriod contextRef="c-129" id="f-680">P1Y</tgen:RelatedPartyTransactionPeriod>
    <us-gaap:RelatedPartyTransactionRate contextRef="c-130" decimals="4" id="f-681" unitRef="number">0.0506</us-gaap:RelatedPartyTransactionRate>
    <tgen:RelatedPartyTransactionPeriod contextRef="c-131" id="f-682">P1Y</tgen:RelatedPartyTransactionPeriod>
    <us-gaap:NotesPayable contextRef="c-132" decimals="0" id="f-683" unitRef="usd">500000</us-gaap:NotesPayable>
    <tgen:RelatedPartyTransactionPeriod contextRef="c-133" id="f-684">P1Y</tgen:RelatedPartyTransactionPeriod>
    <us-gaap:RelatedPartyTransactionRate contextRef="c-133" decimals="4" id="f-685" unitRef="number">0.0457</us-gaap:RelatedPartyTransactionRate>
    <tgen:RelatedPartyTransactionPeriod contextRef="c-134" id="f-686">P30D</tgen:RelatedPartyTransactionPeriod>
    <tgen:RelatedPartyTransactionPeriod contextRef="c-135" id="f-687">P30D</tgen:RelatedPartyTransactionPeriod>
    <us-gaap:InterestPayableCurrentAndNoncurrent contextRef="c-136" decimals="0" id="f-688" unitRef="usd">42398</us-gaap:InterestPayableCurrentAndNoncurrent>
    <us-gaap:NotesPayable contextRef="c-136" decimals="0" id="f-689" unitRef="usd">1042398</us-gaap:NotesPayable>
    <us-gaap:InterestPayableCurrentAndNoncurrent contextRef="c-137" decimals="0" id="f-690" unitRef="usd">6474</us-gaap:InterestPayableCurrentAndNoncurrent>
    <us-gaap:NotesPayable contextRef="c-137" decimals="0" id="f-691" unitRef="usd">506474</us-gaap:NotesPayable>
    <us-gaap:CommitmentsContingenciesAndGuaranteesTextBlock contextRef="c-1" id="f-692">Commitments and Contingencies&lt;div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Operating Lease Obligations&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We lease office space and warehouse facilities under various lease agreements which expire through January 2031. Total rent expense for the years ended December&#160;31, 2024 and 2023 amounted to $796,400 and $812,815, respectively. See Note 14. "Leases" for further discussion.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Finance Lease Obligations&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We lease motor vehicles under a master vehicle lease agreement, effective December 19, 2023, which expire through December 2028. See Note 14. "Leases" for further discussion.  &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Legal Matters&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;On November 23, 2022, we were served with a suit filed against us on August 24, 2022 in the Ontario Superior Court of Justice by The Corporation of the Town of Milton, Milton Energy Generation Solutions Inc. and Milton Hydro Distribution Inc (the "Plaintiffs"), all of whom are municipal corporations incorporated in the Province of Ontario. The plaintiffs sued for damages in the amount of CDN $1,000,000, prejudgment and post-judgment interest, and legal fees, alleging breach of contract, breach of warranty, negligent misrepresentations and nuisance. Plaintiffs allege that on or about July 10, 2022, a Tecogen cogenerator installed by us at the plaintiffs' facility caught fire, causing damage to the cogenerator and the plaintiff's facility. We filed a response denying liability and are represented by Canadian counsel. For the year ended December 31, 2022, we reserved $150,000 for anticipated damages which may not be covered by our insurance and continued to maintain the reserve at December&#160;31, 2024. On January 13, 2025, Tecogen and our insurers entered into a Settlement Agreement and Full and Final Release from any and all claims, obligations and liabilities, arising from the July 10, 2022 fire with the plaintiffs in the amount of CDN $400,000, of which we were responsible for CDN $100,000. On February 7, 2025 we remitted CDN $100,000, or $70,994, representing payment in full of our liability with respect to this matter.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Guarantees&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In connection with the sale of energy producing assets, we made certain guarantees to the purchaser as discussed in Note 5. "Sale of Energy Producing Assets and Goodwill Impairment." Based upon an analysis of these energy producing assets expected future performance, as of December&#160;31, 2024 we do not expect to make any material payments under the guarantee. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Change in Control Severance Benefit Plan&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;On July 9, 2020, our compensation committee of the board of directors adopted the Tecogen Inc. Change in Control Severance Benefit Plan ("Plan"). The Plan provides for up to 12 months of severance benefits for certain of our key management employees who are selected as plan participants by the plan administrator and who have executed a Change in Control Severance Benefit Plan Participation Notice. On July 9, 2020, Robert A. Panora, our President and Chief Operating Officer, and John K. Whiting, IV, our General Counsel and Secretary, were each designated as participants in the Plan.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Under the Plan, upon the occurrence of certain termination events following a change in control of the Company, the executive participants would receive cash severance payments equal to 12 months&#x2019; salary and bonus payments, continuation of certain health benefits, the acceleration of bonus awards, and immediate vesting of outstanding unvested options (including performance options) to acquire our common stock. The severance payments are required to be paid in a single lump sum. The Plan has a term of three years and will automatically extend for successive additional one-year terms unless we provide written notice at least six months in advance of a then current term. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;An executive will be entitled to severance under the Plan only if there has been a &#x201c;Change in Control&#x201d; of the Company and the termination of employment or service occurs during the period that is three months prior to and 18 months following a change in control of the Company, and the termination of participant's employment or service with the Company without "Cause," or by participant for &#x201c;Good Reason&#x201d; as those terms are defined in the Plan. In order to be eligible to receive severance benefits under the Plan, an executive must comply with the terms of the Plan, including the release of claims in favor of the Company and certain confidentiality, non-compete, non-solicitation, and non-disparagement covenants during and following termination of employment. The Plan will be administered by the compensation committee of the board of directors (or by the full board of directors or such other committee as the board may designate).&lt;/span&gt;&lt;/div&gt;</us-gaap:CommitmentsContingenciesAndGuaranteesTextBlock>
    <us-gaap:OperatingLeaseCost contextRef="c-138" decimals="0" id="f-693" unitRef="usd">796400</us-gaap:OperatingLeaseCost>
    <us-gaap:OperatingLeaseCost contextRef="c-139" decimals="0" id="f-694" unitRef="usd">812815</us-gaap:OperatingLeaseCost>
    <us-gaap:LossContingencyDamagesSoughtValue contextRef="c-140" decimals="0" id="f-695" unitRef="cad">1000000</us-gaap:LossContingencyDamagesSoughtValue>
    <us-gaap:LitigationReserve contextRef="c-141" decimals="0" id="f-696" unitRef="usd">150000</us-gaap:LitigationReserve>
    <us-gaap:LossContingencyDamagesAwardedValue contextRef="c-142" decimals="0" id="f-697" unitRef="cad">400000</us-gaap:LossContingencyDamagesAwardedValue>
    <us-gaap:LossContingencyDamagesPaidValue contextRef="c-143" decimals="0" id="f-698" unitRef="cad">100000</us-gaap:LossContingencyDamagesPaidValue>
    <us-gaap:LossContingencyDamagesPaidValue contextRef="c-143" decimals="0" id="f-699" unitRef="cad">100000</us-gaap:LossContingencyDamagesPaidValue>
    <us-gaap:LossContingencyDamagesPaidValue contextRef="c-143" decimals="0" id="f-700" unitRef="usd">70994</us-gaap:LossContingencyDamagesPaidValue>
    <tgen:PeriodOfSeveranceBenefitsForKeyManagementEmployeesUnderThePlan contextRef="c-144" id="f-701">P12M</tgen:PeriodOfSeveranceBenefitsForKeyManagementEmployeesUnderThePlan>
    <tgen:PeriodOfSeveranceBenefitsForKeyManagementEmployeesUnderThePlan contextRef="c-144" id="f-702">P12M</tgen:PeriodOfSeveranceBenefitsForKeyManagementEmployeesUnderThePlan>
    <tgen:ChangeInControlSeveranceBenefitPlanPeriodInForce contextRef="c-144" id="f-703">P3Y</tgen:ChangeInControlSeveranceBenefitPlanPeriodInForce>
    <tgen:ChangeInControlSeveranceBenefitPlanPeriodInForceExtension contextRef="c-144" id="f-704">P1Y</tgen:ChangeInControlSeveranceBenefitPlanPeriodInForceExtension>
    <tgen:ChangeInControlSeveranceBenefitPlanNoticePeriodForCancellation contextRef="c-144" id="f-705">P6M</tgen:ChangeInControlSeveranceBenefitPlanNoticePeriodForCancellation>
    <tgen:ChangeInControlSeveranceBenefitPlanThresholdPeriodForTerminationPriorToChangeInControl contextRef="c-144" id="f-706">P3M</tgen:ChangeInControlSeveranceBenefitPlanThresholdPeriodForTerminationPriorToChangeInControl>
    <tgen:ChangeInControlSeveranceBenefitPlanThresholdPeriodForTerminationAfterToChangeInControl contextRef="c-144" id="f-707">P18M</tgen:ChangeInControlSeveranceBenefitPlanThresholdPeriodForTerminationAfterToChangeInControl>
    <us-gaap:ProductWarrantyDisclosureTextBlock contextRef="c-1" id="f-708">Product Warranty&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We reserve an estimate of our exposure to warranty claims based on both current and historical product sales data and warranty costs incurred.  The majority of our products are sold with a one-year warranty.  We assess the adequacy of our recorded warranty liability periodically and adjust the reserve as necessary.  The warranty liability is included in accrued expenses on the accompanying consolidated balance sheets.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Changes in our warranty reserve were as follows:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:center;text-indent:36pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:52.339%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:74.598%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:23.202%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Warranty reserve, December 31, 2022&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;137,800&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Warranty provision for units sold&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;286,391&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Costs of warranty incurred&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(282,191)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Warranty reserve, December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;142,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Warranty provision for units sold&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;257,898&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Costs of warranty incurred&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(276,898)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Warranty reserve, December 31, 2024&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;123,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ProductWarrantyDisclosureTextBlock>
    <tgen:ProductWarrantyPeriod contextRef="c-1" id="f-709">P1Y</tgen:ProductWarrantyPeriod>
    <us-gaap:ScheduleOfProductWarrantyLiabilityTableTextBlock contextRef="c-1" id="f-710">&lt;div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Changes in our warranty reserve were as follows:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:center;text-indent:36pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:52.339%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:74.598%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:23.202%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Warranty reserve, December 31, 2022&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;137,800&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Warranty provision for units sold&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;286,391&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Costs of warranty incurred&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(282,191)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Warranty reserve, December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;142,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Warranty provision for units sold&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;257,898&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Costs of warranty incurred&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(276,898)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Warranty reserve, December 31, 2024&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;123,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfProductWarrantyLiabilityTableTextBlock>
    <us-gaap:StandardProductWarrantyAccrual contextRef="c-18" decimals="0" id="f-711" unitRef="usd">137800</us-gaap:StandardProductWarrantyAccrual>
    <us-gaap:StandardProductWarrantyAccrualWarrantiesIssued contextRef="c-13" decimals="0" id="f-712" unitRef="usd">286391</us-gaap:StandardProductWarrantyAccrualWarrantiesIssued>
    <us-gaap:StandardProductWarrantyAccrualPayments contextRef="c-13" decimals="0" id="f-713" unitRef="usd">282191</us-gaap:StandardProductWarrantyAccrualPayments>
    <us-gaap:StandardProductWarrantyAccrual contextRef="c-6" decimals="0" id="f-714" unitRef="usd">142000</us-gaap:StandardProductWarrantyAccrual>
    <us-gaap:StandardProductWarrantyAccrualWarrantiesIssued contextRef="c-1" decimals="0" id="f-715" unitRef="usd">257898</us-gaap:StandardProductWarrantyAccrualWarrantiesIssued>
    <us-gaap:StandardProductWarrantyAccrualPayments contextRef="c-1" decimals="0" id="f-716" unitRef="usd">276898</us-gaap:StandardProductWarrantyAccrualPayments>
    <us-gaap:StandardProductWarrantyAccrual contextRef="c-5" decimals="0" id="f-717" unitRef="usd">123000</us-gaap:StandardProductWarrantyAccrual>
    <us-gaap:LesseeOperatingLeasesTextBlock contextRef="c-1" id="f-718">Leases&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Our leases principally consist of operating leases related to our corporate office, field offices, and our research, manufacturing, and storage facilities. Effective December 19, 2023, we entered into a master finance lease agreement for motor vehicles.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;At inception, we determine if an arrangement constitutes a lease and whether that lease meets the classification criteria of a finance or operating lease. Some of our lease agreements contain lease components (e.g. minimum rent payments) and non-lease components (e.g. maintenance, labor charges, etc.). We account for each component separately based on the estimated standalone price of each component. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Operating Leases&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Operating leases are included in Right-of-use assets, Lease obligations, current and Long-term liabilities - Lease obligations, net of current portion, on the consolidated balance sheets. These assets and liabilities are recognized at the commencement date based on the present value of remaining lease payments over the lease term and using an incremental borrowing rate consistent with the lease terms or implicit rates, when readily determinable. For those leases where it is reasonably certain at the commencement date that we will exercise the option to extend the lease, then the lease term will include the lease extension term. Short-term operating leases, which have an initial term of 12 months or less, are not recorded on the balance sheet. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;On March 31, 2023, we entered into two lease agreements for two adjacent buildings, located in North Billerica, Massachusetts, containing approximately 26,412 square feet of manufacturing, storage and office space to serve as our headquarters and manufacturing facilities. The lease agreements provide for initial lease terms of five (5) years with two successive options to renew for additional terms of five (5) years. Both leases commenced on January 1, 2024 and require payment of the base rent, real estate taxes, common maintenance expenses and aggregate deposits of $38,200. Our costs for initial improvements required to the leased premises is estimated to range between $900,000 and $1,000,000. The estimated straight-line monthly rent expense for the initial term of the lease is approximately $26,962 per month. In accordance with ASC 842-20-30-1, we recorded the lease liability and right-of-use asset using the discount rate for the lease upon the lease commencement date, January 1, 2024. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;On January 1, 2024 we extended our lease for the 2,800 square foot Valley Stream, NY service center for an additional three (3) years through December 31, 2026, with an option to renew for an additional term of three (3) years. The straight-line base monthly rent for the extension is $4,560 per month. On February 1, 2024 we entered into a lease agreement for 2,063 square feet of office and storage space in East Syracuse, New York for an initial lease term of three (3) years, expiring on January 31, 2027, with an option for an additional lease term of two (2) years. The straight-line base monthly rent for the initial lease term is $1,891 per month. On June 17, 2024, we extended our lease for 1,751 square foot Hayward, CA service center for an additional three (3) years through July 31, 2027. The straight-line monthly rent for the extension is $3,662 per month. On January 15, 2025 we entered into a lease agreement for 2,969 square feet of office and storage space in Easton, MA for an initial term of five (5) years, expiring on January 31, 2030, with an option for an additional lease term of five (5) years. The straight-line base monthly rent for the initial lease term is $2,324 per month.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Lease expense for operating leases, which principally consists of fixed payments for base rent, is recognized on a straight-line basis over the lease term. Operating lease expense for the years ended December&#160;31, 2024 and 2023 was $796,400 and $812,815,  respectively. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Supplemental information related to operating leases for the years ended December&#160;31, 2024 and 2023 was as follows:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:center;text-indent:36pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:486.00pt"&gt;&lt;tr&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:298.00pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.00pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:88.00pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.00pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:88.00pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;December 31, 2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Cash paid for amounts included in the measurement of operating lease liabilities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;727,418&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;743,849&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Right-of-use assets obtained in exchange for operating lease liabilities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,650,994&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;148,093&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Weighted-average remaining lease term - operating leases&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4.1 Years&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4.6 Years&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Weighted-average discount rate - operating leases&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;7.5&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;6.4&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Finance Leases&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Finance leases are included in Right-of-use assets, Lease obligations, current and Long-term liabilities - Lease obligations, net of current portion, on the condensed consolidated balance sheets. These assets and liabilities are recognized at the commencement date based on the present value of remaining lease payments over the lease term and using an incremental borrowing rate consistent with the lease terms or implicit rates, when readily determinable. For those leases where it is reasonably certain at the commencement date that we will exercise the option to extend the lease, then the lease term will include the lease extension term. Short-term operating leases, which have an initial term of 12 months or less, are not recorded on the balance sheet. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Lease expense for finance leases, consisting of fixed payments for base rent and initial costs for the year ended December&#160;31, 2024 and 2023 was $119,690 and $2,338, respectively. Depreciation and amortization expense on right-of-use finance lease assets for the years ended December&#160;31, 2024 and 2023 was $61,572 and $0, respectively.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Supplemental information for finance leases for the year ended December&#160;31, 2024 and 2023 was as follows:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:center;text-indent:36pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:94.736%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:60.628%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.417%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:17.418%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.417%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:17.420%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;December 31, 2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Cash paid for amounts included in the measurement of finance lease liabilities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;88,845&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="6" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Right-of-use assets obtained in exchange for finance lease liabilities&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;295,085&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;200,187&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="6" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Weighted-average remaining lease term - finance leases&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4.3 years&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;5.0 years&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="6" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Weighted-average discount rate - finance leases&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;10.0&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;10.4&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Supplemental balance sheet information related to operating leases for the years ended December&#160;31, 2024 and 2023 was as follows:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:center;text-indent:36pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:94.736%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:60.628%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.417%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:17.418%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.417%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:17.420%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;December 31, 2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Operating leases&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Right-of-use assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,730,358&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;743,096&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Operating lease liability, current&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;430,382&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;248,933&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Operating lease liability, long-term&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,341,789&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;523,660&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Total operating lease liability&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,772,171&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;772,593&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;padding-left:13.5pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Supplemental balance sheet information related to finance leases for the year ended December&#160;31, 2024 and 2023 is as follows:&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:94.736%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:60.628%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.417%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:17.418%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.417%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:17.420%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;December 31, 2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Finance leases&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Right-of-use assets - motor vehicles&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;425,563&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;200,187&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Right-of-use asset - boiler&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;26,827&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt 0 7pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;452,390&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;200,187&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt 0 7pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Finance lease liability, current&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;85,646&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;40,540&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Finance lease liability, long-term&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;325,235&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;159,647&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Total finance lease liability&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;410,881&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;200,187&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Future minimum lease commitments under non-cancellable operating and finance leases as of December&#160;31, 2024 were as follows:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:center;text-indent:36pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:429.00pt"&gt;&lt;tr&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:148.00pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.00pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:88.00pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.00pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:88.00pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.00pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:88.00pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Operating Leases&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Finance Leases&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Total&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2025&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;542,066&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;122,460&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;664,526&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2026&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;538,297&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;113,845&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;652,142&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2027&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;442,471&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;113,845&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;556,316&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2028&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;395,827&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;113,845&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;509,672&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2029&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;55,435&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;43,669&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;99,104&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Thereafter&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;61,569&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;61,569&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Total lease payments&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,035,665&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;507,664&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,543,329&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Less: imputed interest&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;263,494&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;96,783&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;360,277&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Total&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,772,171&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;410,881&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,183,052&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:LesseeOperatingLeasesTextBlock>
    <tgen:LesseeOperatingLeaseNumberOfLeaseAgreements
      contextRef="c-145"
      decimals="0"
      id="f-719"
      unitRef="leaseagreement">2</tgen:LesseeOperatingLeaseNumberOfLeaseAgreements>
    <tgen:LesseeOperatingLeaseNumberOfBuildings
      contextRef="c-145"
      decimals="0"
      id="f-720"
      unitRef="building">2</tgen:LesseeOperatingLeaseNumberOfBuildings>
    <tgen:LesseeOperatingLeaseSquareFeet contextRef="c-145" decimals="INF" id="f-721" unitRef="sqft">26412</tgen:LesseeOperatingLeaseSquareFeet>
    <us-gaap:LesseeOperatingLeaseRemainingLeaseTerm contextRef="c-145" id="f-722">P5Y</us-gaap:LesseeOperatingLeaseRemainingLeaseTerm>
    <tgen:LesseeOperatingLeaseOptionToExtendNumberOfOptions contextRef="c-145" decimals="0" id="f-723" unitRef="option">2</tgen:LesseeOperatingLeaseOptionToExtendNumberOfOptions>
    <us-gaap:LesseeOperatingLeaseRemainingLeaseTerm contextRef="c-145" id="f-724">P5Y</us-gaap:LesseeOperatingLeaseRemainingLeaseTerm>
    <us-gaap:LeaseCost contextRef="c-146" decimals="0" id="f-725" unitRef="usd">38200</us-gaap:LeaseCost>
    <tgen:ConstructionInProgressExpenditures contextRef="c-147" decimals="0" id="f-726" unitRef="usd">900000</tgen:ConstructionInProgressExpenditures>
    <tgen:ConstructionInProgressExpenditures contextRef="c-148" decimals="0" id="f-727" unitRef="usd">1000000</tgen:ConstructionInProgressExpenditures>
    <us-gaap:OperatingLeaseExpense contextRef="c-146" decimals="0" id="f-728" unitRef="usd">26962</us-gaap:OperatingLeaseExpense>
    <tgen:LesseeOperatingLeaseSquareFeet contextRef="c-149" decimals="0" id="f-729" unitRef="sqft">2800</tgen:LesseeOperatingLeaseSquareFeet>
    <us-gaap:LesseeOperatingLeaseRenewalTerm contextRef="c-149" id="f-730">P3Y</us-gaap:LesseeOperatingLeaseRenewalTerm>
    <tgen:LesseeOperatingLeaseOptionToExtendPeriod contextRef="c-146" id="f-731">P3Y</tgen:LesseeOperatingLeaseOptionToExtendPeriod>
    <tgen:LesseeOperatingLeaseOptionToExtendMonthlyRent contextRef="c-149" decimals="0" id="f-732" unitRef="usd">4560</tgen:LesseeOperatingLeaseOptionToExtendMonthlyRent>
    <tgen:LesseeOperatingLeaseSquareFeet contextRef="c-150" decimals="0" id="f-733" unitRef="sqft">2063</tgen:LesseeOperatingLeaseSquareFeet>
    <us-gaap:LesseeOperatingLeaseTermOfContract contextRef="c-150" id="f-734">P3Y</us-gaap:LesseeOperatingLeaseTermOfContract>
    <tgen:LesseeOperatingLeaseOptionToExtendPeriod contextRef="c-151" id="f-735">P2Y</tgen:LesseeOperatingLeaseOptionToExtendPeriod>
    <tgen:LesseeOperatingLeaseOptionToExtendMonthlyRent contextRef="c-150" decimals="0" id="f-736" unitRef="usd">1891</tgen:LesseeOperatingLeaseOptionToExtendMonthlyRent>
    <tgen:LesseeOperatingLeaseSquareFeet contextRef="c-152" decimals="0" id="f-737" unitRef="sqft">1751</tgen:LesseeOperatingLeaseSquareFeet>
    <us-gaap:LesseeOperatingLeaseRenewalTerm contextRef="c-152" id="f-738">P3Y</us-gaap:LesseeOperatingLeaseRenewalTerm>
    <tgen:LesseeOperatingLeaseOptionToExtendMonthlyRent contextRef="c-152" decimals="0" id="f-739" unitRef="usd">3662</tgen:LesseeOperatingLeaseOptionToExtendMonthlyRent>
    <tgen:LesseeOperatingLeaseSquareFeet contextRef="c-153" decimals="0" id="f-740" unitRef="sqft">2969</tgen:LesseeOperatingLeaseSquareFeet>
    <us-gaap:LesseeOperatingLeaseTermOfContract contextRef="c-153" id="f-741">P5Y</us-gaap:LesseeOperatingLeaseTermOfContract>
    <tgen:LesseeOperatingLeaseOptionToExtendPeriod contextRef="c-154" id="f-742">P5Y</tgen:LesseeOperatingLeaseOptionToExtendPeriod>
    <tgen:LesseeOperatingLeaseOptionToExtendMonthlyRent contextRef="c-153" decimals="0" id="f-743" unitRef="usd">2324</tgen:LesseeOperatingLeaseOptionToExtendMonthlyRent>
    <us-gaap:OperatingLeaseCost contextRef="c-138" decimals="0" id="f-744" unitRef="usd">796400</us-gaap:OperatingLeaseCost>
    <us-gaap:OperatingLeaseCost contextRef="c-139" decimals="0" id="f-745" unitRef="usd">812815</us-gaap:OperatingLeaseCost>
    <us-gaap:LeaseCostTableTextBlock contextRef="c-1" id="f-746">&lt;div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Supplemental information related to operating leases for the years ended December&#160;31, 2024 and 2023 was as follows:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:center;text-indent:36pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:486.00pt"&gt;&lt;tr&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:298.00pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.00pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:88.00pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.00pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:88.00pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;December 31, 2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Cash paid for amounts included in the measurement of operating lease liabilities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;727,418&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;743,849&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Right-of-use assets obtained in exchange for operating lease liabilities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,650,994&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;148,093&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Weighted-average remaining lease term - operating leases&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4.1 Years&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4.6 Years&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Weighted-average discount rate - operating leases&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;7.5&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;6.4&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Supplemental information for finance leases for the year ended December&#160;31, 2024 and 2023 was as follows:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:center;text-indent:36pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:94.736%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:60.628%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.417%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:17.418%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.417%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:17.420%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;December 31, 2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Cash paid for amounts included in the measurement of finance lease liabilities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;88,845&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="6" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Right-of-use assets obtained in exchange for finance lease liabilities&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;295,085&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;200,187&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="6" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Weighted-average remaining lease term - finance leases&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4.3 years&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;5.0 years&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="6" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Weighted-average discount rate - finance leases&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;10.0&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;10.4&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:LeaseCostTableTextBlock>
    <us-gaap:OperatingLeasePayments contextRef="c-1" decimals="0" id="f-747" unitRef="usd">727418</us-gaap:OperatingLeasePayments>
    <us-gaap:OperatingLeasePayments contextRef="c-13" decimals="0" id="f-748" unitRef="usd">743849</us-gaap:OperatingLeasePayments>
    <us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability contextRef="c-1" decimals="0" id="f-749" unitRef="usd">1650994</us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability>
    <us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability contextRef="c-13" decimals="0" id="f-750" unitRef="usd">148093</us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability>
    <us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1 contextRef="c-5" id="f-751">P4Y1M6D</us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1>
    <us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1 contextRef="c-6" id="f-752">P4Y7M6D</us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1>
    <us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent contextRef="c-5" decimals="3" id="f-753" unitRef="number">0.075</us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent>
    <us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent contextRef="c-6" decimals="3" id="f-754" unitRef="number">0.064</us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent>
    <tgen:FinanceLeaseExpense contextRef="c-1" decimals="0" id="f-755" unitRef="usd">119690</tgen:FinanceLeaseExpense>
    <tgen:FinanceLeaseExpense contextRef="c-13" decimals="0" id="f-756" unitRef="usd">2338</tgen:FinanceLeaseExpense>
    <us-gaap:FinanceLeaseRightOfUseAssetAmortization contextRef="c-1" decimals="0" id="f-757" unitRef="usd">61572</us-gaap:FinanceLeaseRightOfUseAssetAmortization>
    <us-gaap:FinanceLeaseRightOfUseAssetAmortization contextRef="c-13" decimals="0" id="f-758" unitRef="usd">0</us-gaap:FinanceLeaseRightOfUseAssetAmortization>
    <tgen:FinanceLeasePrincipalPaymentsAndOtherCosts contextRef="c-1" decimals="0" id="f-759" unitRef="usd">88845</tgen:FinanceLeasePrincipalPaymentsAndOtherCosts>
    <tgen:FinanceLeasePrincipalPaymentsAndOtherCosts contextRef="c-13" decimals="0" id="f-760" unitRef="usd">0</tgen:FinanceLeasePrincipalPaymentsAndOtherCosts>
    <us-gaap:RightOfUseAssetObtainedInExchangeForFinanceLeaseLiability contextRef="c-1" decimals="0" id="f-761" unitRef="usd">295085</us-gaap:RightOfUseAssetObtainedInExchangeForFinanceLeaseLiability>
    <us-gaap:RightOfUseAssetObtainedInExchangeForFinanceLeaseLiability contextRef="c-13" decimals="0" id="f-762" unitRef="usd">200187</us-gaap:RightOfUseAssetObtainedInExchangeForFinanceLeaseLiability>
    <us-gaap:FinanceLeaseWeightedAverageRemainingLeaseTerm1 contextRef="c-5" id="f-763">P4Y3M18D</us-gaap:FinanceLeaseWeightedAverageRemainingLeaseTerm1>
    <us-gaap:FinanceLeaseWeightedAverageRemainingLeaseTerm1 contextRef="c-6" id="f-764">P5Y</us-gaap:FinanceLeaseWeightedAverageRemainingLeaseTerm1>
    <us-gaap:FinanceLeaseWeightedAverageDiscountRatePercent contextRef="c-5" decimals="4" id="f-765" unitRef="number">0.100</us-gaap:FinanceLeaseWeightedAverageDiscountRatePercent>
    <us-gaap:FinanceLeaseWeightedAverageDiscountRatePercent contextRef="c-6" decimals="4" id="f-766" unitRef="number">0.104</us-gaap:FinanceLeaseWeightedAverageDiscountRatePercent>
    <tgen:AssetsAndLiabilitiesLesseeTableTextBlock contextRef="c-1" id="f-767">&lt;div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Supplemental balance sheet information related to operating leases for the years ended December&#160;31, 2024 and 2023 was as follows:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:center;text-indent:36pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:94.736%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:60.628%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.417%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:17.418%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.417%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:17.420%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;December 31, 2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Operating leases&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Right-of-use assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,730,358&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;743,096&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Operating lease liability, current&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;430,382&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;248,933&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Operating lease liability, long-term&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,341,789&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;523,660&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Total operating lease liability&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,772,171&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;772,593&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;padding-left:13.5pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Supplemental balance sheet information related to finance leases for the year ended December&#160;31, 2024 and 2023 is as follows:&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:94.736%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:60.628%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.417%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:17.418%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.417%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:17.420%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;December 31, 2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Finance leases&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Right-of-use assets - motor vehicles&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;425,563&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;200,187&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Right-of-use asset - boiler&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;26,827&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt 0 7pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;452,390&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;200,187&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt 0 7pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Finance lease liability, current&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;85,646&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;40,540&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Finance lease liability, long-term&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;325,235&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;159,647&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Total finance lease liability&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;410,881&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;200,187&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</tgen:AssetsAndLiabilitiesLesseeTableTextBlock>
    <us-gaap:OperatingLeaseRightOfUseAsset contextRef="c-5" decimals="0" id="f-768" unitRef="usd">1730358</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:OperatingLeaseRightOfUseAsset contextRef="c-6" decimals="0" id="f-769" unitRef="usd">743096</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:OperatingLeaseLiabilityCurrent contextRef="c-5" decimals="0" id="f-770" unitRef="usd">430382</us-gaap:OperatingLeaseLiabilityCurrent>
    <us-gaap:OperatingLeaseLiabilityCurrent contextRef="c-6" decimals="0" id="f-771" unitRef="usd">248933</us-gaap:OperatingLeaseLiabilityCurrent>
    <us-gaap:OperatingLeaseLiabilityNoncurrent contextRef="c-5" decimals="0" id="f-772" unitRef="usd">1341789</us-gaap:OperatingLeaseLiabilityNoncurrent>
    <us-gaap:OperatingLeaseLiabilityNoncurrent contextRef="c-6" decimals="0" id="f-773" unitRef="usd">523660</us-gaap:OperatingLeaseLiabilityNoncurrent>
    <us-gaap:OperatingLeaseLiability contextRef="c-5" decimals="0" id="f-774" unitRef="usd">1772171</us-gaap:OperatingLeaseLiability>
    <us-gaap:OperatingLeaseLiability contextRef="c-6" decimals="0" id="f-775" unitRef="usd">772593</us-gaap:OperatingLeaseLiability>
    <us-gaap:FinanceLeaseRightOfUseAsset contextRef="c-155" decimals="0" id="f-776" unitRef="usd">425563</us-gaap:FinanceLeaseRightOfUseAsset>
    <us-gaap:FinanceLeaseRightOfUseAsset contextRef="c-156" decimals="0" id="f-777" unitRef="usd">200187</us-gaap:FinanceLeaseRightOfUseAsset>
    <us-gaap:FinanceLeaseRightOfUseAsset contextRef="c-157" decimals="0" id="f-778" unitRef="usd">26827</us-gaap:FinanceLeaseRightOfUseAsset>
    <us-gaap:FinanceLeaseRightOfUseAsset contextRef="c-158" decimals="0" id="f-779" unitRef="usd">0</us-gaap:FinanceLeaseRightOfUseAsset>
    <us-gaap:FinanceLeaseRightOfUseAsset contextRef="c-5" decimals="0" id="f-780" unitRef="usd">452390</us-gaap:FinanceLeaseRightOfUseAsset>
    <us-gaap:FinanceLeaseRightOfUseAsset contextRef="c-6" decimals="0" id="f-781" unitRef="usd">200187</us-gaap:FinanceLeaseRightOfUseAsset>
    <us-gaap:FinanceLeaseLiabilityCurrent contextRef="c-5" decimals="0" id="f-782" unitRef="usd">85646</us-gaap:FinanceLeaseLiabilityCurrent>
    <us-gaap:FinanceLeaseLiabilityCurrent contextRef="c-6" decimals="0" id="f-783" unitRef="usd">40540</us-gaap:FinanceLeaseLiabilityCurrent>
    <us-gaap:FinanceLeaseLiabilityNoncurrent contextRef="c-5" decimals="0" id="f-784" unitRef="usd">325235</us-gaap:FinanceLeaseLiabilityNoncurrent>
    <us-gaap:FinanceLeaseLiabilityNoncurrent contextRef="c-6" decimals="0" id="f-785" unitRef="usd">159647</us-gaap:FinanceLeaseLiabilityNoncurrent>
    <us-gaap:FinanceLeaseLiability contextRef="c-5" decimals="0" id="f-786" unitRef="usd">410881</us-gaap:FinanceLeaseLiability>
    <us-gaap:FinanceLeaseLiability contextRef="c-6" decimals="0" id="f-787" unitRef="usd">200187</us-gaap:FinanceLeaseLiability>
    <us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock contextRef="c-1" id="f-788">&lt;div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Future minimum lease commitments under non-cancellable operating and finance leases as of December&#160;31, 2024 were as follows:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:center;text-indent:36pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:429.00pt"&gt;&lt;tr&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:148.00pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.00pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:88.00pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.00pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:88.00pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.00pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:88.00pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Operating Leases&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Finance Leases&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Total&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2025&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;542,066&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;122,460&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;664,526&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2026&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;538,297&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;113,845&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;652,142&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2027&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;442,471&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;113,845&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;556,316&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2028&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;395,827&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;113,845&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;509,672&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2029&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;55,435&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;43,669&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;99,104&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Thereafter&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;61,569&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;61,569&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Total lease payments&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,035,665&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;507,664&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,543,329&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Less: imputed interest&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;263,494&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;96,783&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;360,277&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Total&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,772,171&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;410,881&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,183,052&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths contextRef="c-5" decimals="0" id="f-789" unitRef="usd">542066</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths>
    <us-gaap:FinanceLeaseLiabilityPaymentsDueNextTwelveMonths contextRef="c-5" decimals="0" id="f-790" unitRef="usd">122460</us-gaap:FinanceLeaseLiabilityPaymentsDueNextTwelveMonths>
    <tgen:OperatingAndFinanceLeaseLiabilityToBePaidYearOne contextRef="c-5" decimals="0" id="f-791" unitRef="usd">664526</tgen:OperatingAndFinanceLeaseLiabilityToBePaidYearOne>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo contextRef="c-5" decimals="0" id="f-792" unitRef="usd">538297</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo>
    <us-gaap:FinanceLeaseLiabilityPaymentsDueYearTwo contextRef="c-5" decimals="0" id="f-793" unitRef="usd">113845</us-gaap:FinanceLeaseLiabilityPaymentsDueYearTwo>
    <tgen:OperatingAndFinanceLeaseLiabilityToBePaidYearTwo contextRef="c-5" decimals="0" id="f-794" unitRef="usd">652142</tgen:OperatingAndFinanceLeaseLiabilityToBePaidYearTwo>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearThree contextRef="c-5" decimals="0" id="f-795" unitRef="usd">442471</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearThree>
    <us-gaap:FinanceLeaseLiabilityPaymentsDueYearThree contextRef="c-5" decimals="0" id="f-796" unitRef="usd">113845</us-gaap:FinanceLeaseLiabilityPaymentsDueYearThree>
    <tgen:OperatingAndFinanceLeaseLiabilityToBePaidYearThree contextRef="c-5" decimals="0" id="f-797" unitRef="usd">556316</tgen:OperatingAndFinanceLeaseLiabilityToBePaidYearThree>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFour contextRef="c-5" decimals="0" id="f-798" unitRef="usd">395827</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFour>
    <us-gaap:FinanceLeaseLiabilityPaymentsDueYearFour contextRef="c-5" decimals="0" id="f-799" unitRef="usd">113845</us-gaap:FinanceLeaseLiabilityPaymentsDueYearFour>
    <tgen:OperatingAndFinanceLeaseLiabilityToBePaidYearFour contextRef="c-5" decimals="0" id="f-800" unitRef="usd">509672</tgen:OperatingAndFinanceLeaseLiabilityToBePaidYearFour>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFive contextRef="c-5" decimals="0" id="f-801" unitRef="usd">55435</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFive>
    <us-gaap:FinanceLeaseLiabilityPaymentsDueYearFive contextRef="c-5" decimals="0" id="f-802" unitRef="usd">43669</us-gaap:FinanceLeaseLiabilityPaymentsDueYearFive>
    <tgen:OperatingAndFinanceLeaseLiabilityToBePaidYearFive contextRef="c-5" decimals="0" id="f-803" unitRef="usd">99104</tgen:OperatingAndFinanceLeaseLiabilityToBePaidYearFive>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive contextRef="c-5" decimals="0" id="f-804" unitRef="usd">61569</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive>
    <us-gaap:FinanceLeaseLiabilityPaymentsDueAfterYearFive contextRef="c-5" decimals="0" id="f-805" unitRef="usd">0</us-gaap:FinanceLeaseLiabilityPaymentsDueAfterYearFive>
    <tgen:OperatingAndFinanceLeaseLiabilityToBePaidAfterYearFive contextRef="c-5" decimals="0" id="f-806" unitRef="usd">61569</tgen:OperatingAndFinanceLeaseLiabilityToBePaidAfterYearFive>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue contextRef="c-5" decimals="0" id="f-807" unitRef="usd">2035665</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue>
    <us-gaap:FinanceLeaseLiabilityPaymentsDue contextRef="c-5" decimals="0" id="f-808" unitRef="usd">507664</us-gaap:FinanceLeaseLiabilityPaymentsDue>
    <tgen:OperatingAndFinanceLeaseLiabilityToBePaid contextRef="c-5" decimals="0" id="f-809" unitRef="usd">2543329</tgen:OperatingAndFinanceLeaseLiabilityToBePaid>
    <us-gaap:LesseeOperatingLeaseLiabilityUndiscountedExcessAmount contextRef="c-5" decimals="0" id="f-810" unitRef="usd">263494</us-gaap:LesseeOperatingLeaseLiabilityUndiscountedExcessAmount>
    <us-gaap:FinanceLeaseLiabilityUndiscountedExcessAmount contextRef="c-5" decimals="0" id="f-811" unitRef="usd">96783</us-gaap:FinanceLeaseLiabilityUndiscountedExcessAmount>
    <tgen:OperatingAndFinanceLeaseLiabilityUndiscountedExcessAmount contextRef="c-5" decimals="0" id="f-812" unitRef="usd">360277</tgen:OperatingAndFinanceLeaseLiabilityUndiscountedExcessAmount>
    <us-gaap:OperatingLeaseLiability contextRef="c-5" decimals="0" id="f-813" unitRef="usd">1772171</us-gaap:OperatingLeaseLiability>
    <us-gaap:FinanceLeaseLiability contextRef="c-5" decimals="0" id="f-814" unitRef="usd">410881</us-gaap:FinanceLeaseLiability>
    <tgen:OperatingAndFinanceLeaseLiability contextRef="c-5" decimals="0" id="f-815" unitRef="usd">2183052</tgen:OperatingAndFinanceLeaseLiability>
    <us-gaap:ShareholdersEquityAndShareBasedPaymentsTextBlock contextRef="c-1" id="f-816">Stockholders&#x2019; Equity&lt;div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Common Stock&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The holders of our Common Stock have the right to vote their interest on a per share basis.  At December&#160;31, 2024 and 2023, there were 24,950,261 and 24,850,261 shares, respectively, of our Common Stock outstanding.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Preferred Stock&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;On February 13, 2013, we authorized 10 million shares of preferred stock.  As of December&#160;31, 2024, no preferred shares were issued or outstanding.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Stock-Based Compensation&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We adopted the 2006 Stock Option and Incentive Plan (as amended, the &#x201c;2006 Plan&#x201d;), under which the board of directors may grant incentive or non-qualified stock options and stock grants to key employees, directors, advisors and our consultants. The 2006 Plan was amended at various dates by the Board of Directors to increase the reserved shares of common stock issuable under the 2006 Plan to 3,838,750 as of December&#160;31, 2024, and in June 2017 stockholders approved an amendment to extend the termination date of the 2006 Plan to January 1, 2026 and to ratify all of our option grants issued after January 1, 2016 (the &#x201c;Amended Plan&#x201d;). &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Stock options vest based upon the terms within the individual option grants, with an acceleration of the unvested portion of such options upon a change in control event, as defined in the 2006 Plan.  The options are not transferable except by will or domestic relations order.  The option price per share under the Amended Plan cannot be less than the fair market value of the underlying shares on the date of the grant.  The number of shares remaining available for future issuance under the Amended Plan as of December&#160;31, 2024 and 2023 was 1,108,168 and 243,818, respectively.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;During the years ended December&#160;31, 2024 and 2023, there were no options granted under the 2006 Plan.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We adopted the 2022 Stock Incentive Plan (the "2022 Plan") on March 1, 2022, under which the Board of Directors may grant incentive or non-qualified stock options and stock grants to key employees, directors, advisors and consultants. We have reserved 3,800,000 shares of our common stock for issuance pursuant to awards under the 2022 Plan. The adoption of the 2022 Plan was approved by our shareholders on June 9, 2022. The 2022 Plan expires ten years from its effective date or March 1, 2032.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Under the 2022 Plan, stock options vest based upon the terms within the individual option grants, with an acceleration of the unvested portion of such options upon a change in control event, as defined in the 2022 Plan.  The options are not transferable except by will or domestic relations order.  The option price per share under the 2022 Plan cannot be less than the fair market value of the underlying shares on the date of the grant. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;During the year ended December&#160;31, 2024, we granted nonqualified options to purchase an aggregate of 125,000 shares of common stock at $0.77 per share to directors. These options have a vesting schedule of &lt;span style="-sec-ix-hidden:f-831"&gt;P4Y years&lt;/span&gt; and expire in ten years. The fair value of the options issued in 2024 was $44,750. The weighted-average grant date fair value of stock options granted during 2024 was $0.36 per share.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;During the year ended December&#160;31, 2023, we granted nonqualified options under the 2022 Plan to purchase an aggregate of 575,000 shares of common stock at prices between $0.88 per share and $1.10 per share to certain directors, officers and employees. These options have a vesting schedule of &lt;span style="-sec-ix-hidden:f-838"&gt;two&lt;/span&gt; to four years and expire in ten years. The fair value of the options issued in 2024 was $244,625. The weighted-average grant date fair value of stock options granted during 2024 was &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$0.43 per share. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The number of shares remaining available for future issuance under the 2022 Plan as of December&#160;31, 2024 was 2,950,000.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;During the year December&#160;31, 2024, one option for 100,000 shares of common stock was exercised. During the year ended December&#160;31, 2023, there were no options exercised.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Stock option activity for the year ended December&#160;31, 2024 was as follows:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:center"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:96.491%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:35.415%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:9.960%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.557%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:6.172%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:2.224%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:6.930%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.557%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:8.445%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.557%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:9.960%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.557%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:9.966%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Common&#160;Stock&#160;Options&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Number&#160;of&lt;br/&gt;Options&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="9" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Exercise&lt;br/&gt;Price&lt;br/&gt;Per&lt;br/&gt;Share&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Weighted&lt;br/&gt;Average&lt;br/&gt;Exercise&lt;br/&gt;Price&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Weighted&lt;br/&gt;Average&lt;br/&gt;Remaining&lt;br/&gt;Life&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Aggregate&lt;br/&gt;Intrinsic&lt;br/&gt;Value&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Outstanding, December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;3,638,122&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;0.71&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;10.33&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1.49&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;6.70 years&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;127,811&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Granted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;125,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="9" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$0.77&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;0.77&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Exercised&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(100,000)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="9" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$0.71&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;0.71&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;75,500&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Canceled and forfeited&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(910,160)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;0.71&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;10.33&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2.54&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Outstanding, December 31, 2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,752,962&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;0.71&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;3.93&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1.14&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;6.70 years&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,348,684&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Exercisable, December 31, 2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,839,212&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1.25&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;838,184&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Vested and expected to vest, December 31, 2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,615,900&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1.15&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,272,109&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We used a forfeiture rate of 15% to calculate the expected to vest shares in the table above.  We use the Black-Scholes option pricing model to determine the fair value of stock options granted.  Use of a valuation model requires management to make certain assumptions with respect to selected model inputs.  Expected volatility was calculated based on the average volatility of four comparable publicly traded companies.  The average expected life was estimated using the simplified method to determine the expected life based on the vesting period and contractual terms, since we do not have the necessary historical exercise data to determine an expected life for stock options. We use a single weighted-average expected life to value option awards and recognize compensation on a straight-line basis over the requisite service period for each separately vesting portion of the awards.  The risk-free interest rate is based on U.S. Treasury zero-coupon issues with a remaining term which approximates the expected life assumed at the date of grant. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The weighted average assumptions used in the Black-Scholes option pricing model for options granted in 2024 and 2023 are as follows:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:center;text-indent:36pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:59.795%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:47.555%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.022%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:23.349%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.022%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:23.352%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Stock option award assumptions:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Expected dividend yield&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Expected life&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;6.25 years&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;6.25 years&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Risk-free interest rate&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4.28%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4.70%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Expected volatility&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;40.17%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;38.49%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;During the years ended December&#160;31, 2024 and 2023, we recognized stock-based compensation expense of $172,987 and $250,394, respectively, related to the issuance of stock options.  No tax benefit was recognized related to the stock-based compensation expense recorded during either of the years.  At December&#160;31, 2024 and 2023, the total compensation cost related to unvested stock option awards not yet recognized is $278,461  and $451,298, respectively.  The unvested stock compensation at December&#160;31, 2024 will be recognized over a weighted average period of 2.30 years.&lt;/span&gt;&lt;/div&gt;</us-gaap:ShareholdersEquityAndShareBasedPaymentsTextBlock>
    <us-gaap:CommonStockSharesOutstanding contextRef="c-5" decimals="0" id="f-817" unitRef="shares">24950261</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:CommonStockSharesOutstanding contextRef="c-6" decimals="0" id="f-818" unitRef="shares">24850261</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:PreferredStockSharesAuthorized
      contextRef="c-159"
      decimals="INF"
      id="f-819"
      unitRef="shares">10000000</us-gaap:PreferredStockSharesAuthorized>
    <us-gaap:PreferredStockSharesOutstanding contextRef="c-5" decimals="0" id="f-820" unitRef="shares">0</us-gaap:PreferredStockSharesOutstanding>
    <us-gaap:PreferredStockSharesIssued contextRef="c-5" decimals="0" id="f-821" unitRef="shares">0</us-gaap:PreferredStockSharesIssued>
    <us-gaap:CommonStockCapitalSharesReservedForFutureIssuance
      contextRef="c-160"
      decimals="INF"
      id="f-822"
      unitRef="shares">3838750</us-gaap:CommonStockCapitalSharesReservedForFutureIssuance>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant
      contextRef="c-160"
      decimals="INF"
      id="f-823"
      unitRef="shares">1108168</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant
      contextRef="c-161"
      decimals="INF"
      id="f-824"
      unitRef="shares">243818</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross contextRef="c-162" decimals="0" id="f-825" unitRef="shares">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross contextRef="c-163" decimals="0" id="f-826" unitRef="shares">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross>
    <us-gaap:CommonStockCapitalSharesReservedForFutureIssuance contextRef="c-164" decimals="0" id="f-827" unitRef="shares">3800000</us-gaap:CommonStockCapitalSharesReservedForFutureIssuance>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod contextRef="c-165" id="f-828">P10Y</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
      contextRef="c-166"
      decimals="INF"
      id="f-829"
      unitRef="shares">125000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross>
    <tgen:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantedInPeriodExercisePrice
      contextRef="c-166"
      decimals="INF"
      id="f-830"
      unitRef="usdPerShare">0.77</tgen:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantedInPeriodExercisePrice>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod contextRef="c-166" id="f-832">P10Y</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1 contextRef="c-166" decimals="0" id="f-833" unitRef="usd">44750</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="c-166"
      decimals="2"
      id="f-834"
      unitRef="usdPerShare">0.36</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
      contextRef="c-167"
      decimals="INF"
      id="f-835"
      unitRef="shares">575000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross>
    <tgen:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansGrantedExercisePriceRangeLowerRangeLimit
      contextRef="c-167"
      decimals="2"
      id="f-836"
      unitRef="usdPerShare">0.88</tgen:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansGrantedExercisePriceRangeLowerRangeLimit>
    <tgen:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansGrantedExercisePriceRangeUpperRangeLimit
      contextRef="c-167"
      decimals="2"
      id="f-837"
      unitRef="usdPerShare">1.10</tgen:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansGrantedExercisePriceRangeUpperRangeLimit>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1 contextRef="c-169" id="f-839">P4Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod contextRef="c-167" id="f-840">P10Y</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1 contextRef="c-167" decimals="0" id="f-841" unitRef="usd">244625</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="c-167"
      decimals="2"
      id="f-842"
      unitRef="usdPerShare">0.43</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:CommonStockCapitalSharesReservedForFutureIssuance
      contextRef="c-170"
      decimals="INF"
      id="f-843"
      unitRef="shares">2950000</us-gaap:CommonStockCapitalSharesReservedForFutureIssuance>
    <tgen:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfOptionsExercisedInPeriod contextRef="c-171" decimals="0" id="f-844" unitRef="option">1</tgen:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfOptionsExercisedInPeriod>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised contextRef="c-171" decimals="0" id="f-845" unitRef="shares">100000</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised contextRef="c-172" decimals="0" id="f-846" unitRef="shares">0</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock contextRef="c-171" id="f-847">&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Stock option activity for the year ended December&#160;31, 2024 was as follows:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:center"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:96.491%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:35.415%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:9.960%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.557%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:6.172%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:2.224%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:6.930%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.557%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:8.445%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.557%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:9.960%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.557%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:9.966%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Common&#160;Stock&#160;Options&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Number&#160;of&lt;br/&gt;Options&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="9" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Exercise&lt;br/&gt;Price&lt;br/&gt;Per&lt;br/&gt;Share&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Weighted&lt;br/&gt;Average&lt;br/&gt;Exercise&lt;br/&gt;Price&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Weighted&lt;br/&gt;Average&lt;br/&gt;Remaining&lt;br/&gt;Life&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Aggregate&lt;br/&gt;Intrinsic&lt;br/&gt;Value&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Outstanding, December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;3,638,122&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;0.71&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;10.33&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1.49&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;6.70 years&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;127,811&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Granted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;125,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="9" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$0.77&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;0.77&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Exercised&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(100,000)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="9" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$0.71&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;0.71&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;75,500&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Canceled and forfeited&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(910,160)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;0.71&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;10.33&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2.54&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Outstanding, December 31, 2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,752,962&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;0.71&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;3.93&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1.14&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;6.70 years&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,348,684&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Exercisable, December 31, 2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,839,212&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1.25&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;838,184&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Vested and expected to vest, December 31, 2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,615,900&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1.15&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,272,109&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
      contextRef="c-173"
      decimals="INF"
      id="f-848"
      unitRef="shares">3638122</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit
      contextRef="c-13"
      decimals="2"
      id="f-849"
      unitRef="usdPerShare">0.71</us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit>
    <tgen:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansGrantedExercisePriceRangeUpperRangeLimit
      contextRef="c-13"
      decimals="2"
      id="f-850"
      unitRef="usdPerShare">10.33</tgen:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansGrantedExercisePriceRangeUpperRangeLimit>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
      contextRef="c-173"
      decimals="2"
      id="f-851"
      unitRef="usdPerShare">1.49</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2 contextRef="c-174" id="f-852">P6Y8M12D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue contextRef="c-173" decimals="0" id="f-853" unitRef="usd">127811</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
      contextRef="c-171"
      decimals="INF"
      id="f-854"
      unitRef="shares">125000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross>
    <tgen:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansGrantedExercisePriceRangeLowerRangeLimit
      contextRef="c-1"
      decimals="2"
      id="f-855"
      unitRef="usdPerShare">0.77</tgen:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansGrantedExercisePriceRangeLowerRangeLimit>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
      contextRef="c-171"
      decimals="2"
      id="f-856"
      unitRef="usdPerShare">0.77</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised contextRef="c-171" decimals="0" id="f-857" unitRef="shares">100000</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <tgen:ShareBasedPaymentArrangementOptionExercisesInPeriodExercisePricePerShare
      contextRef="c-1"
      decimals="2"
      id="f-858"
      unitRef="usdPerShare">0.71</tgen:ShareBasedPaymentArrangementOptionExercisesInPeriodExercisePricePerShare>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice
      contextRef="c-171"
      decimals="2"
      id="f-859"
      unitRef="usdPerShare">0.71</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue contextRef="c-171" decimals="0" id="f-860" unitRef="usd">75500</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue>
    <tgen:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsCancellationsAndForfeituresInPeriod
      contextRef="c-171"
      decimals="INF"
      id="f-861"
      unitRef="shares">910160</tgen:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsCancellationsAndForfeituresInPeriod>
    <tgen:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansCancelledAndForfeitedExercisePriceRangeLowerRangeLimit
      contextRef="c-1"
      decimals="2"
      id="f-862"
      unitRef="usdPerShare">0.71</tgen:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansCancelledAndForfeitedExercisePriceRangeLowerRangeLimit>
    <tgen:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansCancelledAndForfeitedExercisePriceRangeUpperRangeLimit
      contextRef="c-1"
      decimals="2"
      id="f-863"
      unitRef="usdPerShare">10.33</tgen:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansCancelledAndForfeitedExercisePriceRangeUpperRangeLimit>
    <tgen:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsCancellationsAndForfeituresInPeriodWeightedAverageExercisePrice
      contextRef="c-171"
      decimals="2"
      id="f-864"
      unitRef="usdPerShare">2.54</tgen:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsCancellationsAndForfeituresInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
      contextRef="c-175"
      decimals="INF"
      id="f-865"
      unitRef="shares">2752962</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit
      contextRef="c-1"
      decimals="2"
      id="f-866"
      unitRef="usdPerShare">0.71</us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit>
    <us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit
      contextRef="c-1"
      decimals="2"
      id="f-867"
      unitRef="usdPerShare">3.93</us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
      contextRef="c-175"
      decimals="2"
      id="f-868"
      unitRef="usdPerShare">1.14</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2 contextRef="c-176" id="f-869">P6Y8M12D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue contextRef="c-175" decimals="0" id="f-870" unitRef="usd">1348684</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
      contextRef="c-175"
      decimals="INF"
      id="f-871"
      unitRef="shares">1839212</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice
      contextRef="c-175"
      decimals="2"
      id="f-872"
      unitRef="usdPerShare">1.25</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1 contextRef="c-175" decimals="0" id="f-873" unitRef="usd">838184</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber
      contextRef="c-175"
      decimals="INF"
      id="f-874"
      unitRef="shares">2615900</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice
      contextRef="c-175"
      decimals="2"
      id="f-875"
      unitRef="usdPerShare">1.15</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue contextRef="c-175" decimals="0" id="f-876" unitRef="usd">1272109</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue>
    <tgen:ShareBasedCompensationArrangementbyShareBasedPaymentAwardHistoricalForfeitureRate contextRef="c-1" decimals="2" id="f-877" unitRef="number">0.15</tgen:ShareBasedCompensationArrangementbyShareBasedPaymentAwardHistoricalForfeitureRate>
    <tgen:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfPubliclyTradedCompaniesUsedInExpectedVolatilityRateCalculation contextRef="c-1" decimals="0" id="f-878" unitRef="company">4</tgen:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfPubliclyTradedCompaniesUsedInExpectedVolatilityRateCalculation>
    <us-gaap:ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock contextRef="c-171" id="f-879">&lt;div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The weighted average assumptions used in the Black-Scholes option pricing model for options granted in 2024 and 2023 are as follows:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:center;text-indent:36pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:59.795%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:47.555%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.022%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:23.349%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.022%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:23.352%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Stock option award assumptions:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Expected dividend yield&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Expected life&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;6.25 years&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;6.25 years&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Risk-free interest rate&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4.28%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4.70%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Expected volatility&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;40.17%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;38.49%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate contextRef="c-176" decimals="4" id="f-880" unitRef="number">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate contextRef="c-176" decimals="4" id="f-881" unitRef="number">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1 contextRef="c-176" id="f-882">P6Y3M</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1 contextRef="c-174" id="f-883">P6Y3M</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate contextRef="c-176" decimals="4" id="f-884" unitRef="number">0.0428</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate contextRef="c-174" decimals="4" id="f-885" unitRef="number">0.0470</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate contextRef="c-176" decimals="4" id="f-886" unitRef="number">0.4017</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate contextRef="c-174" decimals="4" id="f-887" unitRef="number">0.3849</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate>
    <us-gaap:AllocatedShareBasedCompensationExpense contextRef="c-171" decimals="0" id="f-888" unitRef="usd">172987</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense contextRef="c-172" decimals="0" id="f-889" unitRef="usd">250394</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense contextRef="c-172" decimals="0" id="f-890" unitRef="usd">0</us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense>
    <us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense contextRef="c-171" decimals="0" id="f-891" unitRef="usd">0</us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized contextRef="c-175" decimals="0" id="f-892" unitRef="usd">278461</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized contextRef="c-173" decimals="0" id="f-893" unitRef="usd">451298</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1 contextRef="c-171" id="f-894">P2Y3M18D</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1>
    <us-gaap:FairValueDisclosuresTextBlock contextRef="c-1" id="f-895">Fair Value Measurements&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The fair value topic of the FASB Accounting Standards Codification defines fair value as the exchange price that would be received for an asset or paid to transfer a liability (an exit price) in the principal or most advantageous market for the asset or liability in an orderly transaction between market participants on the measurement date. The accounting guidance also establishes a fair value hierarchy which requires an entity to maximize the use of observable inputs, where available, and minimize the use of unobservable inputs when measuring fair value. There are three levels of inputs that may be used to measure fair value:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Level 1 - Unadjusted quoted prices in active markets for identical assets or liabilities. We currently do not have any Level 1 financial assets or liabilities.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#160;Level 2 - Observable inputs other than quoted prices included in Level 1. Level 2 inputs include quoted prices for identical assets or liabilities in non-active markets, quoted prices for similar assets or liabilities in active markets and inputs other than quoted prices that are observable for substantially the full term of the asset or liability. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Level 3 - Unobservable inputs reflecting management&#x2019;s own assumptions about the input used in pricing the asset or liability. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table presents the asset reported in the consolidated balance sheet measured at its fair value on a recurring basis as of December&#160;31, 2024 and 2023 by level within the fair value hierarchy:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:center;text-indent:36pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:503.25pt"&gt;&lt;tr&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:160.75pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:63.25pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.75pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:61.00pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.75pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:63.25pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.75pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:63.25pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:3.25pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:63.25pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:44pt"&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Quoted prices in active markets for identical assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Significant other observable inputs&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Significant unobservable inputs&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:21pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Total&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Level 1&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Level 2&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Level 3&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Unrealized gain (loss)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%;text-decoration:underline"&gt;December 31, 2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Recurring fair value measurements&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&#160;&#160;&#160;&#160;Available-for-sale equity securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;EuroSite Power Inc.&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;93,744&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;93,744&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:23pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Total recurring fair value measurements&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;93,744&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;93,744&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%;text-decoration:underline"&gt;December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Recurring fair value measurements&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&#160;&#160;&#160;&#160;Available-for-sale equity securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;EuroSite Power Inc.&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;93,744&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;93,744&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:23pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Total recurring fair value measurements&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;93,744&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;93,744&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We utilize a Level 2 category fair value measurement to value our investment in EuroSite Power Inc. as an available-for-sale security at period end. That measurement is equal to the quoted market closing price at period end. Since this security is not actively traded we are classifying as Level 2. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table summarizes changes in Level 2 assets which are comprised of marketable equity securities for the years ended December&#160;31, 2024 and 2023:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:center;text-indent:36pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:63.011%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:66.881%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:30.919%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Fair value at December 31, 2022&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;93,744&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Unrealized gain&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Fair value at December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;93,744&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Fair value at December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;93,744&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Unrealized gain&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Fair value at December 31, 2024&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;93,744&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table presents the liability reported in the consolidated balance sheet measured at its fair value on a recurring basis as of December&#160;31, 2024 and 2023 by level within the fair value hierarchy:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:center;text-indent:36pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:92.982%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:27.988%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.579%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.428%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.579%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.428%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.579%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.428%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.579%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.428%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.584%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Quoted prices in active markets for identical assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Significant other observable inputs&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Significant unobservable inputs&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Total&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Level 1&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Level 2&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Level 3&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Total gains (losses)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%;text-decoration:underline"&gt;December 31, 2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Recurring fair value measurements&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Contingent contract consideration&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Current&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;328,350&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;328,350&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Long-term&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,008,760&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,008,760&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Total recurring fair value measurements&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,337,110&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,337,110&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:12pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%;text-decoration:underline"&gt;December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Recurring fair value measurements&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Contingent contract consideration&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Current&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;200,639&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;200,639&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Long-term&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;994,743&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;994,743&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Total recurring fair value measurements&lt;/span&gt;&lt;/td&gt;&lt;td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,195,382&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,195,382&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We utilize a Level 3 category fair value measurement to value the contingent consideration liability at period end since there are no quoted prices for this liabilities in non-active markets, there are no quoted prices for similar liabilities in active markets and there are no inputs that are observable for substantially the full term of the the liability. The contingent consideration calculation requires management to make estimates and assumptions that affect the reported amount of the liability.The contingent consideration is payable each calendar quarter through the earlier of the expiration or termination of the relevant maintenance agreements, or the seventh (7th) anniversary of the acquisition date. The consideration is equal to the product of the revenues collected in a calendar quarter multiplied by an applicable percentage. The agreement stipulates quarterly aggregate revenue targets and an applicable percentage, and provides for a higher applicable percentage if revenues exceed the target revenues. The applicable percentage ranges from 5% to 10% over the agreement term. On the date of acquisition, the fair value of the contingent consideration was calculated using a weighted average cost of capital of 15%, discounting the future cash flows to present value.&lt;/span&gt;&lt;/div&gt;</us-gaap:FairValueDisclosuresTextBlock>
    <us-gaap:FairValueAssetsMeasuredOnRecurringBasisTextBlock contextRef="c-1" id="f-896">&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table presents the asset reported in the consolidated balance sheet measured at its fair value on a recurring basis as of December&#160;31, 2024 and 2023 by level within the fair value hierarchy:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:center;text-indent:36pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:503.25pt"&gt;&lt;tr&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:160.75pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:63.25pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.75pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:61.00pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.75pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:63.25pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.75pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:63.25pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:3.25pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:63.25pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:44pt"&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Quoted prices in active markets for identical assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Significant other observable inputs&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Significant unobservable inputs&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:21pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Total&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Level 1&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Level 2&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Level 3&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Unrealized gain (loss)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%;text-decoration:underline"&gt;December 31, 2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Recurring fair value measurements&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&#160;&#160;&#160;&#160;Available-for-sale equity securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;EuroSite Power Inc.&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;93,744&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;93,744&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:23pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Total recurring fair value measurements&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;93,744&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;93,744&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%;text-decoration:underline"&gt;December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Recurring fair value measurements&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&#160;&#160;&#160;&#160;Available-for-sale equity securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;EuroSite Power Inc.&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;93,744&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;93,744&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:23pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Total recurring fair value measurements&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;93,744&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;93,744&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table summarizes changes in Level 2 assets which are comprised of marketable equity securities for the years ended December&#160;31, 2024 and 2023:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:center;text-indent:36pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:63.011%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:66.881%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:30.919%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Fair value at December 31, 2022&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;93,744&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Unrealized gain&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Fair value at December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;93,744&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Fair value at December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;93,744&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Unrealized gain&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Fair value at December 31, 2024&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;93,744&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table presents the liability reported in the consolidated balance sheet measured at its fair value on a recurring basis as of December&#160;31, 2024 and 2023 by level within the fair value hierarchy:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:center;text-indent:36pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:92.982%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:27.988%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.579%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.428%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.579%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.428%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.579%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.428%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.579%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.428%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.584%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Quoted prices in active markets for identical assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Significant other observable inputs&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Significant unobservable inputs&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Total&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Level 1&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Level 2&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Level 3&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Total gains (losses)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%;text-decoration:underline"&gt;December 31, 2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Recurring fair value measurements&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Contingent contract consideration&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Current&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;328,350&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;328,350&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Long-term&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,008,760&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,008,760&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Total recurring fair value measurements&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,337,110&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,337,110&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:12pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%;text-decoration:underline"&gt;December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Recurring fair value measurements&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Contingent contract consideration&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Current&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;200,639&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;200,639&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Long-term&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;994,743&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;994,743&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Total recurring fair value measurements&lt;/span&gt;&lt;/td&gt;&lt;td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,195,382&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,195,382&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:FairValueAssetsMeasuredOnRecurringBasisTextBlock>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities contextRef="c-177" decimals="0" id="f-897" unitRef="usd">93744</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities contextRef="c-178" decimals="0" id="f-898" unitRef="usd">0</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities contextRef="c-179" decimals="0" id="f-899" unitRef="usd">93744</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities contextRef="c-180" decimals="0" id="f-900" unitRef="usd">0</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax contextRef="c-181" decimals="0" id="f-901" unitRef="usd">0</us-gaap:OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax>
    <us-gaap:AssetsFairValueDisclosure contextRef="c-182" decimals="0" id="f-902" unitRef="usd">93744</us-gaap:AssetsFairValueDisclosure>
    <us-gaap:AssetsFairValueDisclosure contextRef="c-183" decimals="0" id="f-903" unitRef="usd">0</us-gaap:AssetsFairValueDisclosure>
    <us-gaap:AssetsFairValueDisclosure contextRef="c-184" decimals="0" id="f-904" unitRef="usd">93744</us-gaap:AssetsFairValueDisclosure>
    <us-gaap:AssetsFairValueDisclosure contextRef="c-185" decimals="0" id="f-905" unitRef="usd">0</us-gaap:AssetsFairValueDisclosure>
    <us-gaap:OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax contextRef="c-186" decimals="0" id="f-906" unitRef="usd">0</us-gaap:OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities contextRef="c-187" decimals="0" id="f-907" unitRef="usd">93744</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities contextRef="c-188" decimals="0" id="f-908" unitRef="usd">0</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities contextRef="c-189" decimals="0" id="f-909" unitRef="usd">93744</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities contextRef="c-190" decimals="0" id="f-910" unitRef="usd">0</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax contextRef="c-191" decimals="0" id="f-911" unitRef="usd">0</us-gaap:OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax>
    <us-gaap:AssetsFairValueDisclosure contextRef="c-192" decimals="0" id="f-912" unitRef="usd">93744</us-gaap:AssetsFairValueDisclosure>
    <us-gaap:AssetsFairValueDisclosure contextRef="c-193" decimals="0" id="f-913" unitRef="usd">0</us-gaap:AssetsFairValueDisclosure>
    <us-gaap:AssetsFairValueDisclosure contextRef="c-194" decimals="0" id="f-914" unitRef="usd">93744</us-gaap:AssetsFairValueDisclosure>
    <us-gaap:AssetsFairValueDisclosure contextRef="c-195" decimals="0" id="f-915" unitRef="usd">0</us-gaap:AssetsFairValueDisclosure>
    <us-gaap:OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax contextRef="c-196" decimals="0" id="f-916" unitRef="usd">0</us-gaap:OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax>
    <us-gaap:AssetsFairValueDisclosure contextRef="c-197" decimals="0" id="f-917" unitRef="usd">93744</us-gaap:AssetsFairValueDisclosure>
    <us-gaap:AssetsFairValueDisclosure contextRef="c-192" decimals="0" id="f-918" unitRef="usd">93744</us-gaap:AssetsFairValueDisclosure>
    <us-gaap:AssetsFairValueDisclosure contextRef="c-192" decimals="0" id="f-919" unitRef="usd">93744</us-gaap:AssetsFairValueDisclosure>
    <us-gaap:AssetsFairValueDisclosure contextRef="c-182" decimals="0" id="f-920" unitRef="usd">93744</us-gaap:AssetsFairValueDisclosure>
    <us-gaap:AssetAcquisitionContingentConsiderationLiabilityCurrent contextRef="c-198" decimals="0" id="f-921" unitRef="usd">328350</us-gaap:AssetAcquisitionContingentConsiderationLiabilityCurrent>
    <us-gaap:AssetAcquisitionContingentConsiderationLiabilityCurrent contextRef="c-183" decimals="0" id="f-922" unitRef="usd">0</us-gaap:AssetAcquisitionContingentConsiderationLiabilityCurrent>
    <us-gaap:AssetAcquisitionContingentConsiderationLiabilityCurrent contextRef="c-184" decimals="0" id="f-923" unitRef="usd">0</us-gaap:AssetAcquisitionContingentConsiderationLiabilityCurrent>
    <us-gaap:AssetAcquisitionContingentConsiderationLiabilityCurrent contextRef="c-185" decimals="0" id="f-924" unitRef="usd">328350</us-gaap:AssetAcquisitionContingentConsiderationLiabilityCurrent>
    <us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings contextRef="c-199" decimals="0" id="f-925" unitRef="usd">0</us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings>
    <us-gaap:AssetAcquisitionContingentConsiderationLiabilityNoncurrent contextRef="c-198" decimals="0" id="f-926" unitRef="usd">1008760</us-gaap:AssetAcquisitionContingentConsiderationLiabilityNoncurrent>
    <us-gaap:AssetAcquisitionContingentConsiderationLiabilityNoncurrent contextRef="c-183" decimals="0" id="f-927" unitRef="usd">0</us-gaap:AssetAcquisitionContingentConsiderationLiabilityNoncurrent>
    <us-gaap:AssetAcquisitionContingentConsiderationLiabilityNoncurrent contextRef="c-184" decimals="0" id="f-928" unitRef="usd">0</us-gaap:AssetAcquisitionContingentConsiderationLiabilityNoncurrent>
    <us-gaap:AssetAcquisitionContingentConsiderationLiabilityNoncurrent contextRef="c-185" decimals="0" id="f-929" unitRef="usd">1008760</us-gaap:AssetAcquisitionContingentConsiderationLiabilityNoncurrent>
    <us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings contextRef="c-200" decimals="0" id="f-930" unitRef="usd">0</us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings>
    <us-gaap:LiabilitiesFairValueDisclosure contextRef="c-198" decimals="0" id="f-931" unitRef="usd">1337110</us-gaap:LiabilitiesFairValueDisclosure>
    <us-gaap:LiabilitiesFairValueDisclosure contextRef="c-183" decimals="0" id="f-932" unitRef="usd">0</us-gaap:LiabilitiesFairValueDisclosure>
    <us-gaap:LiabilitiesFairValueDisclosure contextRef="c-184" decimals="0" id="f-933" unitRef="usd">0</us-gaap:LiabilitiesFairValueDisclosure>
    <us-gaap:LiabilitiesFairValueDisclosure contextRef="c-185" decimals="0" id="f-934" unitRef="usd">1337110</us-gaap:LiabilitiesFairValueDisclosure>
    <us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings contextRef="c-1" decimals="0" id="f-935" unitRef="usd">0</us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings>
    <us-gaap:AssetAcquisitionContingentConsiderationLiabilityCurrent contextRef="c-201" decimals="0" id="f-936" unitRef="usd">200639</us-gaap:AssetAcquisitionContingentConsiderationLiabilityCurrent>
    <us-gaap:AssetAcquisitionContingentConsiderationLiabilityCurrent contextRef="c-193" decimals="0" id="f-937" unitRef="usd">0</us-gaap:AssetAcquisitionContingentConsiderationLiabilityCurrent>
    <us-gaap:AssetAcquisitionContingentConsiderationLiabilityCurrent contextRef="c-194" decimals="0" id="f-938" unitRef="usd">0</us-gaap:AssetAcquisitionContingentConsiderationLiabilityCurrent>
    <us-gaap:AssetAcquisitionContingentConsiderationLiabilityCurrent contextRef="c-195" decimals="0" id="f-939" unitRef="usd">200639</us-gaap:AssetAcquisitionContingentConsiderationLiabilityCurrent>
    <us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings contextRef="c-202" decimals="0" id="f-940" unitRef="usd">0</us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings>
    <us-gaap:AssetAcquisitionContingentConsiderationLiabilityNoncurrent contextRef="c-201" decimals="0" id="f-941" unitRef="usd">994743</us-gaap:AssetAcquisitionContingentConsiderationLiabilityNoncurrent>
    <us-gaap:AssetAcquisitionContingentConsiderationLiabilityNoncurrent contextRef="c-193" decimals="0" id="f-942" unitRef="usd">0</us-gaap:AssetAcquisitionContingentConsiderationLiabilityNoncurrent>
    <us-gaap:AssetAcquisitionContingentConsiderationLiabilityNoncurrent contextRef="c-194" decimals="0" id="f-943" unitRef="usd">0</us-gaap:AssetAcquisitionContingentConsiderationLiabilityNoncurrent>
    <us-gaap:AssetAcquisitionContingentConsiderationLiabilityNoncurrent contextRef="c-195" decimals="0" id="f-944" unitRef="usd">994743</us-gaap:AssetAcquisitionContingentConsiderationLiabilityNoncurrent>
    <us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings contextRef="c-203" decimals="0" id="f-945" unitRef="usd">0</us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings>
    <us-gaap:LiabilitiesFairValueDisclosure contextRef="c-201" decimals="0" id="f-946" unitRef="usd">1195382</us-gaap:LiabilitiesFairValueDisclosure>
    <us-gaap:LiabilitiesFairValueDisclosure contextRef="c-193" decimals="0" id="f-947" unitRef="usd">0</us-gaap:LiabilitiesFairValueDisclosure>
    <us-gaap:LiabilitiesFairValueDisclosure contextRef="c-194" decimals="0" id="f-948" unitRef="usd">0</us-gaap:LiabilitiesFairValueDisclosure>
    <us-gaap:LiabilitiesFairValueDisclosure contextRef="c-195" decimals="0" id="f-949" unitRef="usd">1195382</us-gaap:LiabilitiesFairValueDisclosure>
    <us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings contextRef="c-13" decimals="0" id="f-950" unitRef="usd">0</us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings>
    <tgen:MaintenanceAgreementsApplicablePercentage contextRef="c-204" decimals="2" id="f-951" unitRef="number">0.05</tgen:MaintenanceAgreementsApplicablePercentage>
    <tgen:MaintenanceAgreementsApplicablePercentage contextRef="c-205" decimals="2" id="f-952" unitRef="number">0.10</tgen:MaintenanceAgreementsApplicablePercentage>
    <tgen:IntangibleAssetsMeasurementInput contextRef="c-69" decimals="2" id="f-953" unitRef="number">0.15</tgen:IntangibleAssetsMeasurementInput>
    <us-gaap:CompensationAndEmployeeBenefitPlansTextBlock contextRef="c-1" id="f-954">Retirement Plans&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We have a defined contribution retirement plan (the &#x201c;Plan&#x201d;), which qualifies under Section 401(k) of the Internal Revenue Code (IRC). Under the Plan, employees meeting certain requirements may elect to contribute a percentage of their salary up to the maximum allowed by the IRC. We matched a variable amount based on participant contributions up to a maximum of 4.5% of each participant&#x2019;s salary until May 2020 when we discontinued the matching of employee contributions for those employees not covered under a collective bargaining agreement. Effective July 1, 2023, we reinstituted the employer match based on participant contributions which are capped at a maximum of $250 per quarter and $1,000 per fiscal year, per participant. We contributed approximately $86,827 and $65,705 in matching contributions to the Plan in 2024 and 2023, respectively.&lt;/span&gt;&lt;/div&gt;</us-gaap:CompensationAndEmployeeBenefitPlansTextBlock>
    <us-gaap:DefinedContributionPlanEmployerMatchingContributionPercent contextRef="c-1" decimals="INF" id="f-955" unitRef="number">0.045</us-gaap:DefinedContributionPlanEmployerMatchingContributionPercent>
    <tgen:DefinedContributionPlanMaximumQuarterlyEmployerMatchingContributionPerParticipant contextRef="c-206" decimals="0" id="f-956" unitRef="usd">250</tgen:DefinedContributionPlanMaximumQuarterlyEmployerMatchingContributionPerParticipant>
    <tgen:DefinedContributionPlanMaximumAnnualEmployerMatchingContributionPerParticipant contextRef="c-206" decimals="0" id="f-957" unitRef="usd">1000</tgen:DefinedContributionPlanMaximumAnnualEmployerMatchingContributionPerParticipant>
    <us-gaap:DefinedContributionPlanCostRecognized contextRef="c-1" decimals="0" id="f-958" unitRef="usd">86827</us-gaap:DefinedContributionPlanCostRecognized>
    <us-gaap:DefinedContributionPlanCostRecognized contextRef="c-13" decimals="0" id="f-959" unitRef="usd">65705</us-gaap:DefinedContributionPlanCostRecognized>
    <us-gaap:SegmentReportingDisclosureTextBlock contextRef="c-1" id="f-960">Segments&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Our Chief Executive Officer, who is our Chief Operating Decision Maker ("CODM") manages our business through three operating segments, consistent with how our CODM: (i) accessed operating performance on a periodic basis, (ii) makes resource allocation decisions and (iii) designates responsibilities of his direct reports. As of December&#160;31, 2024, we were organized into three operating segments through which senior management evaluates our business. These segments, as described in more detail in Note 1. "Nature of Business and Operations", are organized around the products, services and energy production provided to customers and represent our reportable segments. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Our CODM uses segment profit, based on operating income after the elimination of intercompany transactions and segment identifiable assets to assess segment operating performance and to make resource allocation decisions. Certain costs such as other income (expense) are not included in the measure of segment profit and are excluded from managements's assessment of segment financial performance.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Corporate includes finance, treasury, certain research and development costs, tax and legal costs and certain other costs which are not allocated to the reportable segments. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table presents information by reportable segment for the years ended December&#160;31, 2024 and 2023:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:center;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; &lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:534.00pt"&gt;&lt;tr&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:171.25pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.00pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:66.25pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.75pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:66.25pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.75pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:66.25pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.75pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:66.25pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:3.25pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:66.25pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:30pt"&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Products&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Services&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Energy Production&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Corporate&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Total&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:12pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Year ended December 31, 2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Revenues&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4,443,996&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;16,074,870&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,100,670&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;22,619,536&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Cost of sales&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;3,014,655&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;8,432,876&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,301,832&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;12,749,363&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Gross profit&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,429,341&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;7,641,994&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;798,838&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;9,870,173&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Operating expenses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,947,426&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;6,625,965&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;319,514&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;5,511,355&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;14,404,260&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Loss (profit) from operations&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(518,085)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,016,029&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;479,324&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(5,511,355)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(4,534,087)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Identifiable assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;9,487,422&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;11,695,370&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,855,386&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;7,054,081&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;31,092,259&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Year ended December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Revenues&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;8,859,946&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;14,523,054&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,756,419&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;25,139,419&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Cost of sales&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;5,923,096&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;7,909,202&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,105,503&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;14,937,801&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Gross profit&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,936,850&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;6,613,852&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;650,916&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;10,201,618&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Operating expenses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,429,400&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;6,992,221&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;66,190&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;6,127,419&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;14,615,230&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Loss (profit) from operations&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,507,450&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(378,369)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;584,726&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(6,127,419)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(4,413,612)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Identifiable assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;8,990,275&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;12,802,651&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;3,269,013&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,730,690&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;27,792,629&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:SegmentReportingDisclosureTextBlock>
    <us-gaap:NumberOfOperatingSegments contextRef="c-1" decimals="0" id="f-961" unitRef="segment">3</us-gaap:NumberOfOperatingSegments>
    <us-gaap:NumberOfOperatingSegments contextRef="c-1" decimals="0" id="f-962" unitRef="segment">3</us-gaap:NumberOfOperatingSegments>
    <us-gaap:ScheduleOfSegmentReportingInformationBySegmentTextBlock contextRef="c-1" id="f-963">&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table presents information by reportable segment for the years ended December&#160;31, 2024 and 2023:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:center;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; &lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:534.00pt"&gt;&lt;tr&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:171.25pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.00pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:66.25pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.75pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:66.25pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.75pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:66.25pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.75pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:66.25pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:3.25pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;td style="width:66.25pt"&gt;&lt;/td&gt;&lt;td style="width:1.0pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:30pt"&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Products&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Services&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Energy Production&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Corporate&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Total&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:12pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Year ended December 31, 2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Revenues&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4,443,996&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;16,074,870&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,100,670&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;22,619,536&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Cost of sales&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;3,014,655&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;8,432,876&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,301,832&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;12,749,363&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Gross profit&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,429,341&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;7,641,994&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;798,838&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;9,870,173&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Operating expenses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,947,426&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;6,625,965&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;319,514&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;5,511,355&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;14,404,260&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Loss (profit) from operations&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(518,085)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,016,029&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;479,324&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(5,511,355)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(4,534,087)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Identifiable assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;9,487,422&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;11,695,370&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,855,386&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;7,054,081&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;31,092,259&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Year ended December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Revenues&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;8,859,946&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;14,523,054&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,756,419&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;25,139,419&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Cost of sales&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;5,923,096&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;7,909,202&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,105,503&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;14,937,801&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Gross profit&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,936,850&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;6,613,852&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;650,916&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;10,201,618&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Operating expenses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,429,400&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;6,992,221&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;66,190&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;6,127,419&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;14,615,230&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Loss (profit) from operations&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,507,450&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(378,369)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;584,726&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(6,127,419)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(4,413,612)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Identifiable assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;8,990,275&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;12,802,651&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;3,269,013&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,730,690&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;27,792,629&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfSegmentReportingInformationBySegmentTextBlock>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-207" decimals="0" id="f-964" unitRef="usd">4443996</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-208" decimals="0" id="f-965" unitRef="usd">16074870</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-209" decimals="0" id="f-966" unitRef="usd">2100670</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-210" decimals="0" id="f-967" unitRef="usd">0</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-211" decimals="0" id="f-968" unitRef="usd">22619536</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:CostOfGoodsAndServicesSold contextRef="c-207" decimals="0" id="f-969" unitRef="usd">3014655</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:CostOfGoodsAndServicesSold contextRef="c-208" decimals="0" id="f-970" unitRef="usd">8432876</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:CostOfGoodsAndServicesSold contextRef="c-209" decimals="0" id="f-971" unitRef="usd">1301832</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:CostOfGoodsAndServicesSold contextRef="c-210" decimals="0" id="f-972" unitRef="usd">0</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:CostOfGoodsAndServicesSold contextRef="c-211" decimals="0" id="f-973" unitRef="usd">12749363</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:GrossProfit contextRef="c-46" decimals="0" id="f-974" unitRef="usd">1429341</us-gaap:GrossProfit>
    <us-gaap:GrossProfit contextRef="c-212" decimals="0" id="f-975" unitRef="usd">7641994</us-gaap:GrossProfit>
    <us-gaap:GrossProfit contextRef="c-120" decimals="0" id="f-976" unitRef="usd">798838</us-gaap:GrossProfit>
    <us-gaap:GrossProfit contextRef="c-213" decimals="0" id="f-977" unitRef="usd">0</us-gaap:GrossProfit>
    <us-gaap:GrossProfit contextRef="c-1" decimals="0" id="f-978" unitRef="usd">9870173</us-gaap:GrossProfit>
    <us-gaap:OperatingExpenses contextRef="c-46" decimals="0" id="f-979" unitRef="usd">1947426</us-gaap:OperatingExpenses>
    <us-gaap:OperatingExpenses contextRef="c-212" decimals="0" id="f-980" unitRef="usd">6625965</us-gaap:OperatingExpenses>
    <us-gaap:OperatingExpenses contextRef="c-120" decimals="0" id="f-981" unitRef="usd">319514</us-gaap:OperatingExpenses>
    <us-gaap:OperatingExpenses contextRef="c-213" decimals="0" id="f-982" unitRef="usd">5511355</us-gaap:OperatingExpenses>
    <us-gaap:OperatingExpenses contextRef="c-1" decimals="0" id="f-983" unitRef="usd">14404260</us-gaap:OperatingExpenses>
    <us-gaap:OperatingIncomeLoss contextRef="c-46" decimals="0" id="f-984" unitRef="usd">-518085</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss contextRef="c-212" decimals="0" id="f-985" unitRef="usd">1016029</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss contextRef="c-120" decimals="0" id="f-986" unitRef="usd">479324</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss contextRef="c-213" decimals="0" id="f-987" unitRef="usd">-5511355</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss contextRef="c-1" decimals="0" id="f-988" unitRef="usd">-4534087</us-gaap:OperatingIncomeLoss>
    <us-gaap:Assets contextRef="c-121" decimals="0" id="f-989" unitRef="usd">9487422</us-gaap:Assets>
    <us-gaap:Assets contextRef="c-214" decimals="0" id="f-990" unitRef="usd">11695370</us-gaap:Assets>
    <us-gaap:Assets contextRef="c-123" decimals="0" id="f-991" unitRef="usd">2855386</us-gaap:Assets>
    <us-gaap:Assets contextRef="c-215" decimals="0" id="f-992" unitRef="usd">7054081</us-gaap:Assets>
    <us-gaap:Assets contextRef="c-5" decimals="0" id="f-993" unitRef="usd">31092259</us-gaap:Assets>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-216" decimals="0" id="f-994" unitRef="usd">8859946</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-217" decimals="0" id="f-995" unitRef="usd">14523054</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-218" decimals="0" id="f-996" unitRef="usd">1756419</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-219" decimals="0" id="f-997" unitRef="usd">0</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-220" decimals="0" id="f-998" unitRef="usd">25139419</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:CostOfGoodsAndServicesSold contextRef="c-216" decimals="0" id="f-999" unitRef="usd">5923096</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:CostOfGoodsAndServicesSold contextRef="c-217" decimals="0" id="f-1000" unitRef="usd">7909202</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:CostOfGoodsAndServicesSold contextRef="c-218" decimals="0" id="f-1001" unitRef="usd">1105503</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:CostOfGoodsAndServicesSold contextRef="c-219" decimals="0" id="f-1002" unitRef="usd">0</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:CostOfGoodsAndServicesSold contextRef="c-220" decimals="0" id="f-1003" unitRef="usd">14937801</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:GrossProfit contextRef="c-47" decimals="0" id="f-1004" unitRef="usd">2936850</us-gaap:GrossProfit>
    <us-gaap:GrossProfit contextRef="c-221" decimals="0" id="f-1005" unitRef="usd">6613852</us-gaap:GrossProfit>
    <us-gaap:GrossProfit contextRef="c-116" decimals="0" id="f-1006" unitRef="usd">650916</us-gaap:GrossProfit>
    <us-gaap:GrossProfit contextRef="c-222" decimals="0" id="f-1007" unitRef="usd">0</us-gaap:GrossProfit>
    <us-gaap:GrossProfit contextRef="c-13" decimals="0" id="f-1008" unitRef="usd">10201618</us-gaap:GrossProfit>
    <us-gaap:OperatingExpenses contextRef="c-47" decimals="0" id="f-1009" unitRef="usd">1429400</us-gaap:OperatingExpenses>
    <us-gaap:OperatingExpenses contextRef="c-221" decimals="0" id="f-1010" unitRef="usd">6992221</us-gaap:OperatingExpenses>
    <us-gaap:OperatingExpenses contextRef="c-116" decimals="0" id="f-1011" unitRef="usd">66190</us-gaap:OperatingExpenses>
    <us-gaap:OperatingExpenses contextRef="c-222" decimals="0" id="f-1012" unitRef="usd">6127419</us-gaap:OperatingExpenses>
    <us-gaap:OperatingExpenses contextRef="c-13" decimals="0" id="f-1013" unitRef="usd">14615230</us-gaap:OperatingExpenses>
    <us-gaap:OperatingIncomeLoss contextRef="c-47" decimals="0" id="f-1014" unitRef="usd">1507450</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss contextRef="c-221" decimals="0" id="f-1015" unitRef="usd">-378369</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss contextRef="c-116" decimals="0" id="f-1016" unitRef="usd">584726</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss contextRef="c-222" decimals="0" id="f-1017" unitRef="usd">-6127419</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss contextRef="c-13" decimals="0" id="f-1018" unitRef="usd">-4413612</us-gaap:OperatingIncomeLoss>
    <us-gaap:Assets contextRef="c-117" decimals="0" id="f-1019" unitRef="usd">8990275</us-gaap:Assets>
    <us-gaap:Assets contextRef="c-223" decimals="0" id="f-1020" unitRef="usd">12802651</us-gaap:Assets>
    <us-gaap:Assets contextRef="c-119" decimals="0" id="f-1021" unitRef="usd">3269013</us-gaap:Assets>
    <us-gaap:Assets contextRef="c-224" decimals="0" id="f-1022" unitRef="usd">2730690</us-gaap:Assets>
    <us-gaap:Assets contextRef="c-6" decimals="0" id="f-1023" unitRef="usd">27792629</us-gaap:Assets>
    <us-gaap:IncomeTaxDisclosureTextBlock contextRef="c-1" id="f-1024">Income Taxes&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;A reconciliation of the federal statutory income tax provision to our actual provision for the years ended December&#160;31, 2024 and 2023 is as follows:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:center;text-indent:36pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:81.286%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:5.914%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:58.792%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.699%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:14.547%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.699%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:14.549%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="6" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Pre-tax book income (loss)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(4,651,205)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(4,490,665)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="6" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Expected tax at 21% &lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(976,753)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(943,040)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:9pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="6" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Permanent differences:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Goodwill impairment&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;45,632&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Intangible amortization &lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(37,003)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(46,373)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Other&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;5,169&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;6,474&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:9pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="6" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;State taxes:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Current&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;22,565&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;32,491&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Deferred&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(234,928)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(264,759)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:9pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="6" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Other items:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Expired net operating losses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;324,799&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Federal research and development credits&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(84,592)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Deferred tax past year true-ups&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(91,289)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(63,440)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Change in valuation allowance&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;920,794&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;980,342&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Capitalized research and development expenses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;334,120&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Other&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;43,579&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;81,268&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="6" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Income tax provision&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;22,565&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;32,491&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The components of net deferred tax assets recognized in the accompanying consolidated balance sheets at December&#160;31, 2024 and 2023 are as follows:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:center;text-indent:36pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:80.555%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:5.978%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:59.335%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:14.689%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.707%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:14.691%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Net operating loss carryforwards&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;12,025,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;10,840,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;R&amp;amp;D and ITC credit carryforwards&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;396,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;403,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Accrued expenses and other&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;267,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;381,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Intangibles&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;370,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;499,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Leases&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;8,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Accounts receivable&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;76,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;39,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Stock options&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;486,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;450,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Inventory&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;279,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;427,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Property, plant and equipment&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;578,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;650,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Other&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;464,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;323,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Deferred tax assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;14,941,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;14,020,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Valuation allowance&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(14,941,000)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(14,020,000)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Deferred tax assets, net&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;At December&#160;31, 2024, we had approximately $41,147,000 of  Federal net operating loss carryforwards ("NOL") of which $623,000 expired as of December&#160;31, 2024, $19,240,000 expire beginning in 2024 through 2039 and $21,907,000 have an indefinite carryforward.  In addition, we have $32,285,000 of state net operating losses, expiring at various dates starting in 2024 through 2042. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Tax Cuts and Jobs Act was enacted on December 22, 2017. A significant provision of the act was to reduce the statutory Federal tax rate from 34% to 21%.  During 2024, our valuation allowance increased by $921,000 and  $324,799 of net operating loss carryforwards expired. This increase is affected by the absorption of deferred tax attributes associated with its acquisition of American DG Energy, Inc. along with permanent book to tax differences and provision to return adjustments. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In accordance with the provisions of the Income Taxes topic of the Codification, we have evaluated the positive and negative evidence bearing upon the realizability of our deferred tax assets, which are comprised principally of net operating losses. Management has determined that it is more likely than not that we will not recognize the benefits of federal and state deferred tax assets and, as a result, a full valuation allowance has been established for 2023 and 2024, respectively.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#160;&#160;&#160;&#160;Utilization of the NOL and research and development credit carryforwards are subject to a substantial annual limitation due to ownership changes, as provided by Section 382 of the Internal Revenue Code of 1986, as well as similar state provisions. Ownership changes may limit the amount of NOL and tax credit carryforwards that can be utilized to offset future taxable income and tax, respectively. In general, an ownership change, as defined by Section 382, results from transactions increasing the ownership of certain shareholders or public groups in the stock of a corporation by more than 50 percentage points over a three-year period. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#160;&#160;&#160;&#160;We acquired American DG Energy, Inc. during 2017, by acquiring 100 percent of the company's stock. Accordingly, utilization of their consolidated and/or separately computed NOL and/or tax credit carryforwards will be subject to an annual limitation under Internal Revenue Code Section 382. Any such limitation may result in expiration of a portion of the NOL or tax credit carryforwards before utilization. The extent of the limitation, and related allocation and impact upon the NOL and credit carryforwards has been determined to be $391,940 per year for a 20 year period at the ADGE level. However, we have sufficient pre-merger NOLs to offset anticipated taxable income for the taxable year ended December&#160;31, 2024 and do not expected to be limited in NOL utilization for the period.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;A full valuation allowance has been provided against our loss carryforwards and, if an adjustment is required under Section 382, it would be offset by a corresponding adjustment to the valuation allowance. Thus, there would be no impact to the balance sheet or statement of operations if an adjustment were required.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We have not recorded any amounts for unrecognized tax benefits as of December&#160;31, 2024 or 2023.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We file tax returns as prescribed by the tax laws of the jurisdiction in which we operate. In the normal course of business, we are subject to examination by federal and state jurisdictions, where applicable.  There are currently no pending tax examinations.  Our tax returns from tax year 2021 are still open for examination for both federal and state jurisdictions.&lt;/span&gt;&lt;/div&gt;</us-gaap:IncomeTaxDisclosureTextBlock>
    <us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock contextRef="c-1" id="f-1025">&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;A reconciliation of the federal statutory income tax provision to our actual provision for the years ended December&#160;31, 2024 and 2023 is as follows:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:center;text-indent:36pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:81.286%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:5.914%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:58.792%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.699%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:14.547%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.699%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:14.549%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="6" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Pre-tax book income (loss)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(4,651,205)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(4,490,665)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="6" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Expected tax at 21% &lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(976,753)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(943,040)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:9pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="6" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Permanent differences:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Goodwill impairment&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;45,632&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Intangible amortization &lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(37,003)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(46,373)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Other&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;5,169&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;6,474&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:9pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="6" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;State taxes:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Current&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;22,565&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;32,491&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Deferred&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(234,928)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(264,759)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:9pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="6" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Other items:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Expired net operating losses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;324,799&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Federal research and development credits&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(84,592)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Deferred tax past year true-ups&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(91,289)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(63,440)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Change in valuation allowance&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;920,794&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;980,342&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Capitalized research and development expenses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;334,120&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Other&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;43,579&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;81,268&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="6" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Income tax provision&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;22,565&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;32,491&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest contextRef="c-1" decimals="0" id="f-1026" unitRef="usd">-4651205</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest contextRef="c-13" decimals="0" id="f-1027" unitRef="usd">-4490665</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
      contextRef="c-1"
      decimals="INF"
      id="f-1028"
      unitRef="number">0.21</us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate>
    <us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate contextRef="c-225" decimals="0" id="f-1029" unitRef="usd">-976753</us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate>
    <us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate contextRef="c-226" decimals="0" id="f-1030" unitRef="usd">-943040</us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate>
    <us-gaap:IncomeTaxReconciliationNondeductibleExpenseImpairmentLosses contextRef="c-1" decimals="0" id="f-1031" unitRef="usd">45632</us-gaap:IncomeTaxReconciliationNondeductibleExpenseImpairmentLosses>
    <us-gaap:IncomeTaxReconciliationNondeductibleExpenseImpairmentLosses contextRef="c-13" decimals="0" id="f-1032" unitRef="usd">0</us-gaap:IncomeTaxReconciliationNondeductibleExpenseImpairmentLosses>
    <us-gaap:IncomeTaxReconciliationNondeductibleExpenseAmortization contextRef="c-225" decimals="0" id="f-1033" unitRef="usd">-37003</us-gaap:IncomeTaxReconciliationNondeductibleExpenseAmortization>
    <us-gaap:IncomeTaxReconciliationNondeductibleExpenseAmortization contextRef="c-226" decimals="0" id="f-1034" unitRef="usd">-46373</us-gaap:IncomeTaxReconciliationNondeductibleExpenseAmortization>
    <us-gaap:IncomeTaxReconciliationNondeductibleExpenseOther contextRef="c-225" decimals="0" id="f-1035" unitRef="usd">5169</us-gaap:IncomeTaxReconciliationNondeductibleExpenseOther>
    <us-gaap:IncomeTaxReconciliationNondeductibleExpenseOther contextRef="c-226" decimals="0" id="f-1036" unitRef="usd">6474</us-gaap:IncomeTaxReconciliationNondeductibleExpenseOther>
    <tgen:EffectiveIncomeTaxRateReconciliationStateandLocalIncomeTaxesAmountCurrent contextRef="c-225" decimals="0" id="f-1037" unitRef="usd">22565</tgen:EffectiveIncomeTaxRateReconciliationStateandLocalIncomeTaxesAmountCurrent>
    <tgen:EffectiveIncomeTaxRateReconciliationStateandLocalIncomeTaxesAmountCurrent contextRef="c-226" decimals="0" id="f-1038" unitRef="usd">32491</tgen:EffectiveIncomeTaxRateReconciliationStateandLocalIncomeTaxesAmountCurrent>
    <tgen:EffectiveIncomeTaxRateReconciliationStateandLocalIncomeTaxesAmountDeferred contextRef="c-225" decimals="0" id="f-1039" unitRef="usd">-234928</tgen:EffectiveIncomeTaxRateReconciliationStateandLocalIncomeTaxesAmountDeferred>
    <tgen:EffectiveIncomeTaxRateReconciliationStateandLocalIncomeTaxesAmountDeferred contextRef="c-226" decimals="0" id="f-1040" unitRef="usd">-264759</tgen:EffectiveIncomeTaxRateReconciliationStateandLocalIncomeTaxesAmountDeferred>
    <tgen:EffectiveIncomeTaxRateReconciliationOperatingLossCarryforwardExpired contextRef="c-1" decimals="0" id="f-1041" unitRef="usd">324799</tgen:EffectiveIncomeTaxRateReconciliationOperatingLossCarryforwardExpired>
    <tgen:EffectiveIncomeTaxRateReconciliationOperatingLossCarryforwardExpired contextRef="c-13" decimals="0" id="f-1042" unitRef="usd">0</tgen:EffectiveIncomeTaxRateReconciliationOperatingLossCarryforwardExpired>
    <us-gaap:IncomeTaxReconciliationTaxCreditsResearch contextRef="c-225" decimals="0" id="f-1043" unitRef="usd">0</us-gaap:IncomeTaxReconciliationTaxCreditsResearch>
    <us-gaap:IncomeTaxReconciliationTaxCreditsResearch contextRef="c-226" decimals="0" id="f-1044" unitRef="usd">84592</us-gaap:IncomeTaxReconciliationTaxCreditsResearch>
    <us-gaap:IncomeTaxReconciliationPriorYearIncomeTaxes contextRef="c-225" decimals="0" id="f-1045" unitRef="usd">-91289</us-gaap:IncomeTaxReconciliationPriorYearIncomeTaxes>
    <us-gaap:IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance contextRef="c-226" decimals="0" id="f-1046" unitRef="usd">-63440</us-gaap:IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance>
    <us-gaap:IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance contextRef="c-225" decimals="0" id="f-1047" unitRef="usd">920794</us-gaap:IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance>
    <us-gaap:IncomeTaxReconciliationPriorYearIncomeTaxes contextRef="c-13" decimals="0" id="f-1048" unitRef="usd">980342</us-gaap:IncomeTaxReconciliationPriorYearIncomeTaxes>
    <us-gaap:IncomeTaxReconciliationNondeductibleExpenseResearchAndDevelopment contextRef="c-225" decimals="0" id="f-1049" unitRef="usd">0</us-gaap:IncomeTaxReconciliationNondeductibleExpenseResearchAndDevelopment>
    <us-gaap:IncomeTaxReconciliationNondeductibleExpenseResearchAndDevelopment contextRef="c-226" decimals="0" id="f-1050" unitRef="usd">334120</us-gaap:IncomeTaxReconciliationNondeductibleExpenseResearchAndDevelopment>
    <tgen:IncomeTaxReconciliationUnbenefitedOperatingLosses contextRef="c-225" decimals="0" id="f-1051" unitRef="usd">43579</tgen:IncomeTaxReconciliationUnbenefitedOperatingLosses>
    <tgen:IncomeTaxReconciliationUnbenefitedOperatingLosses contextRef="c-226" decimals="0" id="f-1052" unitRef="usd">81268</tgen:IncomeTaxReconciliationUnbenefitedOperatingLosses>
    <us-gaap:IncomeTaxExpenseBenefit contextRef="c-1" decimals="0" id="f-1053" unitRef="usd">22565</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit contextRef="c-13" decimals="0" id="f-1054" unitRef="usd">32491</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock contextRef="c-1" id="f-1055">&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The components of net deferred tax assets recognized in the accompanying consolidated balance sheets at December&#160;31, 2024 and 2023 are as follows:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:center;text-indent:36pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:80.555%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:5.978%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:59.335%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:14.689%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.707%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:14.691%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Net operating loss carryforwards&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;12,025,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;10,840,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;R&amp;amp;D and ITC credit carryforwards&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;396,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;403,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Accrued expenses and other&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;267,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;381,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Intangibles&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;370,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;499,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Leases&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;8,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Accounts receivable&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;76,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;39,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Stock options&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;486,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;450,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Inventory&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;279,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;427,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Property, plant and equipment&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;578,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;650,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Other&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;464,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;323,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Deferred tax assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;14,941,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;14,020,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Valuation allowance&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(14,941,000)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(14,020,000)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Deferred tax assets, net&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock>
    <us-gaap:DeferredTaxAssetsOperatingLossCarryforwards contextRef="c-5" decimals="0" id="f-1056" unitRef="usd">12025000</us-gaap:DeferredTaxAssetsOperatingLossCarryforwards>
    <us-gaap:DeferredTaxAssetsOperatingLossCarryforwards contextRef="c-6" decimals="0" id="f-1057" unitRef="usd">10840000</us-gaap:DeferredTaxAssetsOperatingLossCarryforwards>
    <us-gaap:DeferredTaxAssetsTaxCreditCarryforwards contextRef="c-5" decimals="0" id="f-1058" unitRef="usd">396000</us-gaap:DeferredTaxAssetsTaxCreditCarryforwards>
    <us-gaap:DeferredTaxAssetsTaxCreditCarryforwards contextRef="c-6" decimals="0" id="f-1059" unitRef="usd">403000</us-gaap:DeferredTaxAssetsTaxCreditCarryforwards>
    <tgen:DeferredTaxAssetTaxDeferredExpenseReservesAndAccrualsAccruedLiabilitiesAndOther contextRef="c-5" decimals="0" id="f-1060" unitRef="usd">267000</tgen:DeferredTaxAssetTaxDeferredExpenseReservesAndAccrualsAccruedLiabilitiesAndOther>
    <tgen:DeferredTaxAssetTaxDeferredExpenseReservesAndAccrualsAccruedLiabilitiesAndOther contextRef="c-6" decimals="0" id="f-1061" unitRef="usd">381000</tgen:DeferredTaxAssetTaxDeferredExpenseReservesAndAccrualsAccruedLiabilitiesAndOther>
    <us-gaap:DeferredTaxAssetsGoodwillAndIntangibleAssets contextRef="c-5" decimals="0" id="f-1062" unitRef="usd">370000</us-gaap:DeferredTaxAssetsGoodwillAndIntangibleAssets>
    <us-gaap:DeferredTaxAssetsGoodwillAndIntangibleAssets contextRef="c-6" decimals="0" id="f-1063" unitRef="usd">499000</us-gaap:DeferredTaxAssetsGoodwillAndIntangibleAssets>
    <tgen:DeferredTaxAssetLeases contextRef="c-5" decimals="0" id="f-1064" unitRef="usd">0</tgen:DeferredTaxAssetLeases>
    <tgen:DeferredTaxAssetLeases contextRef="c-6" decimals="0" id="f-1065" unitRef="usd">8000</tgen:DeferredTaxAssetLeases>
    <us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts contextRef="c-5" decimals="0" id="f-1066" unitRef="usd">76000</us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts>
    <us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts contextRef="c-6" decimals="0" id="f-1067" unitRef="usd">39000</us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts>
    <us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefits contextRef="c-5" decimals="0" id="f-1068" unitRef="usd">486000</us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefits>
    <us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefits contextRef="c-6" decimals="0" id="f-1069" unitRef="usd">450000</us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefits>
    <us-gaap:DeferredTaxAssetsInventory contextRef="c-5" decimals="0" id="f-1070" unitRef="usd">279000</us-gaap:DeferredTaxAssetsInventory>
    <us-gaap:DeferredTaxAssetsInventory contextRef="c-6" decimals="0" id="f-1071" unitRef="usd">427000</us-gaap:DeferredTaxAssetsInventory>
    <us-gaap:DeferredTaxAssetsPropertyPlantAndEquipment contextRef="c-5" decimals="0" id="f-1072" unitRef="usd">578000</us-gaap:DeferredTaxAssetsPropertyPlantAndEquipment>
    <us-gaap:DeferredTaxAssetsPropertyPlantAndEquipment contextRef="c-6" decimals="0" id="f-1073" unitRef="usd">650000</us-gaap:DeferredTaxAssetsPropertyPlantAndEquipment>
    <us-gaap:DeferredTaxAssetsOther contextRef="c-5" decimals="0" id="f-1074" unitRef="usd">464000</us-gaap:DeferredTaxAssetsOther>
    <us-gaap:DeferredTaxAssetsOther contextRef="c-6" decimals="0" id="f-1075" unitRef="usd">323000</us-gaap:DeferredTaxAssetsOther>
    <us-gaap:DeferredTaxAssetsGross contextRef="c-5" decimals="0" id="f-1076" unitRef="usd">14941000</us-gaap:DeferredTaxAssetsGross>
    <us-gaap:DeferredTaxAssetsGross contextRef="c-6" decimals="0" id="f-1077" unitRef="usd">14020000</us-gaap:DeferredTaxAssetsGross>
    <us-gaap:DeferredTaxAssetsValuationAllowance contextRef="c-5" decimals="0" id="f-1078" unitRef="usd">14941000</us-gaap:DeferredTaxAssetsValuationAllowance>
    <us-gaap:DeferredTaxAssetsValuationAllowance contextRef="c-6" decimals="0" id="f-1079" unitRef="usd">14020000</us-gaap:DeferredTaxAssetsValuationAllowance>
    <us-gaap:DeferredTaxLiabilities contextRef="c-5" decimals="0" id="f-1080" unitRef="usd">0</us-gaap:DeferredTaxLiabilities>
    <us-gaap:DeferredTaxLiabilities contextRef="c-6" decimals="0" id="f-1081" unitRef="usd">0</us-gaap:DeferredTaxLiabilities>
    <us-gaap:OperatingLossCarryforwards contextRef="c-227" decimals="0" id="f-1082" unitRef="usd">41147000</us-gaap:OperatingLossCarryforwards>
    <tgen:OperatingLossCarryforwardsExpired contextRef="c-227" decimals="0" id="f-1083" unitRef="usd">623000</tgen:OperatingLossCarryforwardsExpired>
    <us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsSubjectToExpiration contextRef="c-5" decimals="0" id="f-1084" unitRef="usd">19240000</us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsSubjectToExpiration>
    <us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsNotSubjectToExpiration contextRef="c-5" decimals="0" id="f-1085" unitRef="usd">21907000</us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsNotSubjectToExpiration>
    <us-gaap:OperatingLossCarryforwards contextRef="c-228" decimals="0" id="f-1086" unitRef="usd">32285000</us-gaap:OperatingLossCarryforwards>
    <us-gaap:IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance contextRef="c-1" decimals="0" id="f-1087" unitRef="usd">921000</us-gaap:IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance>
    <tgen:EffectiveIncomeTaxRateReconciliationOperatingLossCarryforwardExpired contextRef="c-1" decimals="0" id="f-1088" unitRef="usd">324799</tgen:EffectiveIncomeTaxRateReconciliationOperatingLossCarryforwardExpired>
    <us-gaap:SubsidiaryOrEquityMethodInvesteeCumulativePercentageOwnershipAfterAllTransactions
      contextRef="c-229"
      decimals="INF"
      id="f-1089"
      unitRef="number">1</us-gaap:SubsidiaryOrEquityMethodInvesteeCumulativePercentageOwnershipAfterAllTransactions>
    <tgen:AcquisitionAnnualNOLLimitationAmount contextRef="c-230" decimals="0" id="f-1090" unitRef="usd">391940</tgen:AcquisitionAnnualNOLLimitationAmount>
    <tgen:AcquisitionNetOperatingLossLimitationPeriod contextRef="c-230" id="f-1091">P20Y</tgen:AcquisitionNetOperatingLossLimitationPeriod>
    <us-gaap:SubsequentEventsTextBlock contextRef="c-1" id="f-1092">Subsequent Events&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We have evaluated events through the date of this filing, and, except as described below, have determined that no material subsequent events occurred that would require recognition in the consolidated financial statements or disclosure in the notes thereto for the period ended December 31, 2024.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Settlement of Litigation Regarding Fire at Milton Sports Centre&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;On January 13, 2025, Tecogen and our insurers entered into a Settlement Agreement and Full and Final Release from any and all claims, obligations and liabilities, arising from the July 10, 2022 fire with the plaintiff's in the amount of CDN $400,000, of which we are responsible for CDN $100,000. On February 7, 2025, we remitted CDN $100,000, or $70,994, representing payment in full of our liability. We will recognize a benefit of $79,006 in our consolidated financial statements in the first quarter of fiscal 2025.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Vertiv Sales and Marketing Agreement - Data Center Cooling Market&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;On February 28, 2025, we entered into a Sales and Marketing Agreement with Vertiv Corporation (&#x201c;Vertiv&#x201d;) relating to sales of Tecogen DTx chillers for data center cooling applications (the &#x201c;Vertiv Agreement&#x201d;). The Vertiv Agreement has a term of two years and provides that Vertiv will establish a budget for marketing activities and use commercially reasonable efforts to sell our DTx chillers for cooling applications in data centers. The Vertiv Agreement also provides the basis for the negotiation of a definitive supply agreement between us and Vertiv. We have agreed to provide Vertiv with reasonable discounts for purchases of significant volumes of our chillers, and Vertiv has agreed to use commercially reasonable efforts to assist us in securing favorable terms for engineering components and supplies for manufacturing our chillers. Pursuant to the Vertiv Agreement we have granted Vertiv the exclusive right to market and sell our DTx chillers for data center cooling applications outside the United States, and the non-exclusive right to market and sell our DTx chillers within the United States.  We have also agreed to grant Vertiv the exclusive right to market and sell our DTx chillers for data center cooling applications in the United States if Vertiv achieves and maintains agreed sales levels of DTx chillers. The foregoing description of the Vertiv Agreement is not complete and is qualified in its entirety by reference to the full text thereof, a copy of which is filed as Exhibit &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;99.01 to our Current Report on Form 8-K filed with the Securities and Exchange Commission on February 28, 2025, and incorporated by reference as Exhibit 10.30 hereto.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Related Party Notes&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;On January 14, 2025 we agreed to permit Mr. Lewis to either receive repayment of his note in cash or, at his discretion, convert the balance of the promissory note into shares of our common stock.  &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;On February 18, 2025 we amended the promissory notes with Mr. Hatsopoulos to extend the maturity dates for both promissory notes to July 31, 2026.  We also agreed to permit Mr. Hatsopoulos to either receive repayment of his notes in cash, or at his discretion, convert the balance(s) due of one or both of the promissory notes into shares of our common stock. &lt;/span&gt;&lt;/div&gt;In the event of such a conversion by Mr. Hatsopoulos or Mr. Lewis, the number of shares we will be required to issue will be determined by dividing the balance(s) due under the promissory note(s) by the average closing price per share of our shares during the thirty-day period prior to the date of conversion.</us-gaap:SubsequentEventsTextBlock>
    <us-gaap:LossContingencyDamagesAwardedValue contextRef="c-142" decimals="0" id="f-1093" unitRef="cad">400000</us-gaap:LossContingencyDamagesAwardedValue>
    <us-gaap:LossContingencyDamagesPaidValue contextRef="c-143" decimals="0" id="f-1094" unitRef="cad">100000</us-gaap:LossContingencyDamagesPaidValue>
    <us-gaap:LossContingencyDamagesPaidValue contextRef="c-143" decimals="0" id="f-1095" unitRef="cad">100000</us-gaap:LossContingencyDamagesPaidValue>
    <us-gaap:LossContingencyDamagesPaidValue contextRef="c-143" decimals="0" id="f-1096" unitRef="usd">70994</us-gaap:LossContingencyDamagesPaidValue>
    <tgen:LitigationSettlementFeeExpenseBenefit contextRef="c-231" decimals="0" id="f-1097" unitRef="usd">79006</tgen:LitigationSettlementFeeExpenseBenefit>
    <tgen:SalesAndMarketingAgreementTerm contextRef="c-232" id="f-1098">P2Y</tgen:SalesAndMarketingAgreementTerm>
    <tgen:RelatedPartyTransactionPeriod contextRef="c-135" id="f-1099">P30D</tgen:RelatedPartyTransactionPeriod>
    <tgen:RelatedPartyTransactionPeriod contextRef="c-134" id="f-1100">P30D</tgen:RelatedPartyTransactionPeriod>
    <link:footnoteLink
      xlink:role="http://www.xbrl.org/2003/role/link"
      xlink:type="extended">
        <link:loc
          xlink:href="#f-626"
          xlink:label="f-626"
          xlink:type="locator"/>
        <link:loc
          xlink:href="#f-627"
          xlink:label="f-627"
          xlink:type="locator"/>
        <link:footnote id="fn-1" xlink:label="fn-1" xlink:role="http://www.xbrl.org/2003/role/footnote" xlink:type="resource" xml:lang="en-US">Lesser of estimated useful life of asset or lease term</link:footnote>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="f-626"
          xlink:to="fn-1"
          xlink:type="arc"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="f-627"
          xlink:to="fn-1"
          xlink:type="arc"/>
    </link:footnoteLink>
</xbrl>
</XML>
</TEXT>
</DOCUMENT>
</SEC-DOCUMENT>
